mastra 0.10.23 → 0.10.24-alpha.0

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 (337) hide show
  1. package/dist/analytics/index.js +0 -1
  2. package/dist/commands/create/create.js +0 -1
  3. package/dist/commands/dev/telemetry-resolver.js +0 -2
  4. package/dist/commands/dev/telemetry-resolver.js.map +1 -1
  5. package/dist/index.js +3 -17
  6. package/dist/index.js.map +1 -1
  7. package/{src/playground/dist/assets/index-Bqqs_ZO7.js → dist/playground/assets/index-CChet0p9.js} +1 -1
  8. package/{src/playground/dist/assets/index-CLw80blc.js → dist/playground/assets/index-Df3-3BlT.js} +1 -1
  9. package/dist/playground/assets/index-Dz1vptpM.js +832 -0
  10. package/{src/playground/dist → dist/playground}/index.html +1 -1
  11. package/package.json +10 -27
  12. package/dist/answer-relevancy-scorer-CTIL35GQ.js +0 -22
  13. package/dist/answer-relevancy-scorer-CTIL35GQ.js.map +0 -1
  14. package/dist/bias-detection-scorer-IWHTLHDC.js +0 -23
  15. package/dist/bias-detection-scorer-IWHTLHDC.js.map +0 -1
  16. package/dist/chunk-QKQ47GQZ.js +0 -9
  17. package/dist/chunk-QKQ47GQZ.js.map +0 -1
  18. package/dist/completeness-scorer-KH4LU4BW.js +0 -23
  19. package/dist/completeness-scorer-KH4LU4BW.js.map +0 -1
  20. package/dist/content-similarity-scorer-NB76ISB5.js +0 -22
  21. package/dist/content-similarity-scorer-NB76ISB5.js.map +0 -1
  22. package/dist/faithfulness-scorer-F6GLSRTV.js +0 -28
  23. package/dist/faithfulness-scorer-F6GLSRTV.js.map +0 -1
  24. package/dist/hallucination-scorer-NJW7PTKD.js +0 -28
  25. package/dist/hallucination-scorer-NJW7PTKD.js.map +0 -1
  26. package/dist/keyword-coverage-scorer-63AEWDTL.js +0 -22
  27. package/dist/keyword-coverage-scorer-63AEWDTL.js.map +0 -1
  28. package/dist/starter-files/tools.d.ts +0 -79
  29. package/dist/starter-files/tools.d.ts.map +0 -1
  30. package/dist/templates/dev.entry.d.ts +0 -2
  31. package/dist/templates/dev.entry.d.ts.map +0 -1
  32. package/dist/templates/scorers/answer-relevancy-scorer.d.ts +0 -2
  33. package/dist/templates/scorers/answer-relevancy-scorer.d.ts.map +0 -1
  34. package/dist/templates/scorers/bias-detection-scorer.d.ts +0 -2
  35. package/dist/templates/scorers/bias-detection-scorer.d.ts.map +0 -1
  36. package/dist/templates/scorers/completeness-scorer.d.ts +0 -2
  37. package/dist/templates/scorers/completeness-scorer.d.ts.map +0 -1
  38. package/dist/templates/scorers/content-similarity-scorer.d.ts +0 -2
  39. package/dist/templates/scorers/content-similarity-scorer.d.ts.map +0 -1
  40. package/dist/templates/scorers/faithfulness-scorer.d.ts +0 -2
  41. package/dist/templates/scorers/faithfulness-scorer.d.ts.map +0 -1
  42. package/dist/templates/scorers/hallucination-scorer.d.ts +0 -2
  43. package/dist/templates/scorers/hallucination-scorer.d.ts.map +0 -1
  44. package/dist/templates/scorers/keyword-coverage-scorer.d.ts +0 -2
  45. package/dist/templates/scorers/keyword-coverage-scorer.d.ts.map +0 -1
  46. package/dist/templates/scorers/textual-difference-scorer.d.ts +0 -2
  47. package/dist/templates/scorers/textual-difference-scorer.d.ts.map +0 -1
  48. package/dist/templates/scorers/tone-consistency-scorer.d.ts +0 -2
  49. package/dist/templates/scorers/tone-consistency-scorer.d.ts.map +0 -1
  50. package/dist/templates/scorers/toxicity-detection-scorer.d.ts +0 -2
  51. package/dist/templates/scorers/toxicity-detection-scorer.d.ts.map +0 -1
  52. package/dist/textual-difference-scorer-2MUWQ22U.js +0 -23
  53. package/dist/textual-difference-scorer-2MUWQ22U.js.map +0 -1
  54. package/dist/tone-consistency-scorer-ZEXVRFCP.js +0 -23
  55. package/dist/tone-consistency-scorer-ZEXVRFCP.js.map +0 -1
  56. package/dist/toxicity-detection-scorer-RMTLQCHI.js +0 -23
  57. package/dist/toxicity-detection-scorer-RMTLQCHI.js.map +0 -1
  58. package/src/playground/dist/assets/index-tfkIaYpR.js +0 -812
  59. /package/{src/playground/dist → dist/playground}/assets/GeistMonoVF-BHyMa335.woff +0 -0
  60. /package/{src/playground/dist → dist/playground}/assets/InterVariable-H_M6nIbt.ttf +0 -0
  61. /package/{src/playground/dist → dist/playground}/assets/TASAExplorerVF-FO8P5krV.woff2 +0 -0
  62. /package/{src/playground/dist → dist/playground}/assets/abap-DsBKuouk.js +0 -0
  63. /package/{src/playground/dist → dist/playground}/assets/actionscript-3-D_z4Izcz.js +0 -0
  64. /package/{src/playground/dist → dist/playground}/assets/ada-727ZlQH0.js +0 -0
  65. /package/{src/playground/dist → dist/playground}/assets/andromeeda-C3khCPGq.js +0 -0
  66. /package/{src/playground/dist → dist/playground}/assets/angular-html-LfdN0zeE.js +0 -0
  67. /package/{src/playground/dist → dist/playground}/assets/angular-ts-CKsD7JZE.js +0 -0
  68. /package/{src/playground/dist → dist/playground}/assets/apache-Dn00JSTd.js +0 -0
  69. /package/{src/playground/dist → dist/playground}/assets/apex-COJ4H7py.js +0 -0
  70. /package/{src/playground/dist → dist/playground}/assets/apl-BBq3IX1j.js +0 -0
  71. /package/{src/playground/dist → dist/playground}/assets/applescript-Bu5BbsvL.js +0 -0
  72. /package/{src/playground/dist → dist/playground}/assets/ara-7O62HKoU.js +0 -0
  73. /package/{src/playground/dist → dist/playground}/assets/asciidoc-BPT9niGB.js +0 -0
  74. /package/{src/playground/dist → dist/playground}/assets/asm-Dhn9LcZ4.js +0 -0
  75. /package/{src/playground/dist → dist/playground}/assets/astro-CqkE3fuf.js +0 -0
  76. /package/{src/playground/dist → dist/playground}/assets/aurora-x-D-2ljcwZ.js +0 -0
  77. /package/{src/playground/dist → dist/playground}/assets/awk-eg146-Ew.js +0 -0
  78. /package/{src/playground/dist → dist/playground}/assets/ayu-dark-Cv9koXgw.js +0 -0
  79. /package/{src/playground/dist → dist/playground}/assets/ballerina-Du268qiB.js +0 -0
  80. /package/{src/playground/dist → dist/playground}/assets/bat-fje9CFhw.js +0 -0
  81. /package/{src/playground/dist → dist/playground}/assets/beancount-BwXTMy5W.js +0 -0
  82. /package/{src/playground/dist → dist/playground}/assets/berry-3xVqZejG.js +0 -0
  83. /package/{src/playground/dist → dist/playground}/assets/bibtex-xW4inM5L.js +0 -0
  84. /package/{src/playground/dist → dist/playground}/assets/bicep-DHo0CJ0O.js +0 -0
  85. /package/{src/playground/dist → dist/playground}/assets/blade-a8OxSdnT.js +0 -0
  86. /package/{src/playground/dist → dist/playground}/assets/bsl-Dgyn0ogV.js +0 -0
  87. /package/{src/playground/dist → dist/playground}/assets/c-C3t2pwGQ.js +0 -0
  88. /package/{src/playground/dist → dist/playground}/assets/cadence-DNquZEk8.js +0 -0
  89. /package/{src/playground/dist → dist/playground}/assets/cairo--RitsXJZ.js +0 -0
  90. /package/{src/playground/dist → dist/playground}/assets/catppuccin-frappe-CD_QflpE.js +0 -0
  91. /package/{src/playground/dist → dist/playground}/assets/catppuccin-latte-DRW-0cLl.js +0 -0
  92. /package/{src/playground/dist → dist/playground}/assets/catppuccin-macchiato-C-_shW-Y.js +0 -0
  93. /package/{src/playground/dist → dist/playground}/assets/catppuccin-mocha-LGGdnPYs.js +0 -0
  94. /package/{src/playground/dist → dist/playground}/assets/clarity-BHOwM8T6.js +0 -0
  95. /package/{src/playground/dist → dist/playground}/assets/clojure-DxSadP1t.js +0 -0
  96. /package/{src/playground/dist → dist/playground}/assets/cmake-DbXoA79R.js +0 -0
  97. /package/{src/playground/dist → dist/playground}/assets/cobol-PTqiYgYu.js +0 -0
  98. /package/{src/playground/dist → dist/playground}/assets/codeowners-Bp6g37R7.js +0 -0
  99. /package/{src/playground/dist → dist/playground}/assets/codeql-sacFqUAJ.js +0 -0
  100. /package/{src/playground/dist → dist/playground}/assets/coffee-dyiR41kL.js +0 -0
  101. /package/{src/playground/dist → dist/playground}/assets/common-lisp-C7gG9l05.js +0 -0
  102. /package/{src/playground/dist → dist/playground}/assets/coq-Dsg_Bt_b.js +0 -0
  103. /package/{src/playground/dist → dist/playground}/assets/cpp-BksuvNSY.js +0 -0
  104. /package/{src/playground/dist → dist/playground}/assets/crystal-DtDmRg-F.js +0 -0
  105. /package/{src/playground/dist → dist/playground}/assets/csharp-D9R-vmeu.js +0 -0
  106. /package/{src/playground/dist → dist/playground}/assets/css-BPhBrDlE.js +0 -0
  107. /package/{src/playground/dist → dist/playground}/assets/csv-B0qRVHPH.js +0 -0
  108. /package/{src/playground/dist → dist/playground}/assets/cue-DtFQj3wx.js +0 -0
  109. /package/{src/playground/dist → dist/playground}/assets/cypher-m2LEI-9-.js +0 -0
  110. /package/{src/playground/dist → dist/playground}/assets/d-BoXegm-a.js +0 -0
  111. /package/{src/playground/dist → dist/playground}/assets/dark-plus-C3mMm8J8.js +0 -0
  112. /package/{src/playground/dist → dist/playground}/assets/dart-B9wLZaAG.js +0 -0
  113. /package/{src/playground/dist → dist/playground}/assets/dax-ClGRhx96.js +0 -0
  114. /package/{src/playground/dist → dist/playground}/assets/desktop-DEIpsLCJ.js +0 -0
  115. /package/{src/playground/dist → dist/playground}/assets/diff-BgYniUM_.js +0 -0
  116. /package/{src/playground/dist → dist/playground}/assets/docker-COcR7UxN.js +0 -0
  117. /package/{src/playground/dist → dist/playground}/assets/dotenv-BjQB5zDj.js +0 -0
  118. /package/{src/playground/dist → dist/playground}/assets/dracula-BzJJZx-M.js +0 -0
  119. /package/{src/playground/dist → dist/playground}/assets/dracula-soft-BXkSAIEj.js +0 -0
  120. /package/{src/playground/dist → dist/playground}/assets/dream-maker-C-nORZOA.js +0 -0
  121. /package/{src/playground/dist → dist/playground}/assets/edge-D5gP-w-T.js +0 -0
  122. /package/{src/playground/dist → dist/playground}/assets/elixir-CLiX3zqd.js +0 -0
  123. /package/{src/playground/dist → dist/playground}/assets/elm-CmHSxxaM.js +0 -0
  124. /package/{src/playground/dist → dist/playground}/assets/emacs-lisp-BX77sIaO.js +0 -0
  125. /package/{src/playground/dist → dist/playground}/assets/erb-BYTLMnw6.js +0 -0
  126. /package/{src/playground/dist → dist/playground}/assets/erlang-B-DoSBHF.js +0 -0
  127. /package/{src/playground/dist → dist/playground}/assets/everforest-dark-BgDCqdQA.js +0 -0
  128. /package/{src/playground/dist → dist/playground}/assets/everforest-light-C8M2exoo.js +0 -0
  129. /package/{src/playground/dist → dist/playground}/assets/fennel-bCA53EVm.js +0 -0
  130. /package/{src/playground/dist → dist/playground}/assets/fish-w-ucz2PV.js +0 -0
  131. /package/{src/playground/dist → dist/playground}/assets/fluent-Dayu4EKP.js +0 -0
  132. /package/{src/playground/dist → dist/playground}/assets/fortran-fixed-form-TqA4NnZg.js +0 -0
  133. /package/{src/playground/dist → dist/playground}/assets/fortran-free-form-DKXYxT9g.js +0 -0
  134. /package/{src/playground/dist → dist/playground}/assets/fsharp-XplgxFYe.js +0 -0
  135. /package/{src/playground/dist → dist/playground}/assets/gdresource-BHYsBjWJ.js +0 -0
  136. /package/{src/playground/dist → dist/playground}/assets/gdscript-DfxzS6Rs.js +0 -0
  137. /package/{src/playground/dist → dist/playground}/assets/gdshader-SKMF96pI.js +0 -0
  138. /package/{src/playground/dist → dist/playground}/assets/genie-ajMbGru0.js +0 -0
  139. /package/{src/playground/dist → dist/playground}/assets/gherkin--30QC5Em.js +0 -0
  140. /package/{src/playground/dist → dist/playground}/assets/git-commit-i4q6IMui.js +0 -0
  141. /package/{src/playground/dist → dist/playground}/assets/git-rebase-B-v9cOL2.js +0 -0
  142. /package/{src/playground/dist → dist/playground}/assets/github-dark-DHJKELXO.js +0 -0
  143. /package/{src/playground/dist → dist/playground}/assets/github-dark-default-Cuk6v7N8.js +0 -0
  144. /package/{src/playground/dist → dist/playground}/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
  145. /package/{src/playground/dist → dist/playground}/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
  146. /package/{src/playground/dist → dist/playground}/assets/github-light-DAi9KRSo.js +0 -0
  147. /package/{src/playground/dist → dist/playground}/assets/github-light-default-D7oLnXFd.js +0 -0
  148. /package/{src/playground/dist → dist/playground}/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
  149. /package/{src/playground/dist → dist/playground}/assets/gleam-B430Bg39.js +0 -0
  150. /package/{src/playground/dist → dist/playground}/assets/glimmer-js-D-cwc0-E.js +0 -0
  151. /package/{src/playground/dist → dist/playground}/assets/glimmer-ts-pgjy16dm.js +0 -0
  152. /package/{src/playground/dist → dist/playground}/assets/glsl-DBO2IWDn.js +0 -0
  153. /package/{src/playground/dist → dist/playground}/assets/gnuplot-CM8KxXT1.js +0 -0
  154. /package/{src/playground/dist → dist/playground}/assets/go-B1SYOhNW.js +0 -0
  155. /package/{src/playground/dist → dist/playground}/assets/graphql-cDcHW_If.js +0 -0
  156. /package/{src/playground/dist → dist/playground}/assets/groovy-DkBy-JyN.js +0 -0
  157. /package/{src/playground/dist → dist/playground}/assets/hack-D1yCygmZ.js +0 -0
  158. /package/{src/playground/dist → dist/playground}/assets/haml-B2EZWmdv.js +0 -0
  159. /package/{src/playground/dist → dist/playground}/assets/handlebars-BQGss363.js +0 -0
  160. /package/{src/playground/dist → dist/playground}/assets/haskell-BILxekzW.js +0 -0
  161. /package/{src/playground/dist → dist/playground}/assets/haxe-C5wWYbrZ.js +0 -0
  162. /package/{src/playground/dist → dist/playground}/assets/hcl-HzYwdGDm.js +0 -0
  163. /package/{src/playground/dist → dist/playground}/assets/hjson-T-Tgc4AT.js +0 -0
  164. /package/{src/playground/dist → dist/playground}/assets/hlsl-ifBTmRxC.js +0 -0
  165. /package/{src/playground/dist → dist/playground}/assets/houston-DnULxvSX.js +0 -0
  166. /package/{src/playground/dist → dist/playground}/assets/html-C2L_23MC.js +0 -0
  167. /package/{src/playground/dist → dist/playground}/assets/html-derivative-CSfWNPLT.js +0 -0
  168. /package/{src/playground/dist → dist/playground}/assets/http-FRrOvY1W.js +0 -0
  169. /package/{src/playground/dist → dist/playground}/assets/hxml-TIA70rKU.js +0 -0
  170. /package/{src/playground/dist → dist/playground}/assets/hy-BMj5Y0dO.js +0 -0
  171. /package/{src/playground/dist → dist/playground}/assets/imba-bv_oIlVt.js +0 -0
  172. /package/{src/playground/dist → dist/playground}/assets/ini-BjABl1g7.js +0 -0
  173. /package/{src/playground/dist → dist/playground}/assets/java-xI-RfyKK.js +0 -0
  174. /package/{src/playground/dist → dist/playground}/assets/javascript-ySlJ1b_l.js +0 -0
  175. /package/{src/playground/dist → dist/playground}/assets/jinja-DGy0s7-h.js +0 -0
  176. /package/{src/playground/dist → dist/playground}/assets/jison-BqZprYcd.js +0 -0
  177. /package/{src/playground/dist → dist/playground}/assets/json-BQoSv7ci.js +0 -0
  178. /package/{src/playground/dist → dist/playground}/assets/json5-w8dY5SsB.js +0 -0
  179. /package/{src/playground/dist → dist/playground}/assets/jsonc-TU54ms6u.js +0 -0
  180. /package/{src/playground/dist → dist/playground}/assets/jsonl-DREVFZK8.js +0 -0
  181. /package/{src/playground/dist → dist/playground}/assets/jsonnet-BfivnA6A.js +0 -0
  182. /package/{src/playground/dist → dist/playground}/assets/jssm-P4WzXJd0.js +0 -0
  183. /package/{src/playground/dist → dist/playground}/assets/jsx-BAng5TT0.js +0 -0
  184. /package/{src/playground/dist → dist/playground}/assets/julia-BBuGR-5E.js +0 -0
  185. /package/{src/playground/dist → dist/playground}/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
  186. /package/{src/playground/dist → dist/playground}/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
  187. /package/{src/playground/dist → dist/playground}/assets/kanagawa-wave-DWedfzmr.js +0 -0
  188. /package/{src/playground/dist → dist/playground}/assets/kotlin-B5lbUyaz.js +0 -0
  189. /package/{src/playground/dist → dist/playground}/assets/kusto-mebxcVVE.js +0 -0
  190. /package/{src/playground/dist → dist/playground}/assets/laserwave-DUszq2jm.js +0 -0
  191. /package/{src/playground/dist → dist/playground}/assets/latex-C-cWTeAZ.js +0 -0
  192. /package/{src/playground/dist → dist/playground}/assets/lean-XBlWyCtg.js +0 -0
  193. /package/{src/playground/dist → dist/playground}/assets/less-BfCpw3nA.js +0 -0
  194. /package/{src/playground/dist → dist/playground}/assets/light-plus-B7mTdjB0.js +0 -0
  195. /package/{src/playground/dist → dist/playground}/assets/liquid-D3W5UaiH.js +0 -0
  196. /package/{src/playground/dist → dist/playground}/assets/log-Cc5clBb7.js +0 -0
  197. /package/{src/playground/dist → dist/playground}/assets/logo-IuBKFhSY.js +0 -0
  198. /package/{src/playground/dist → dist/playground}/assets/lua-CvWAzNxB.js +0 -0
  199. /package/{src/playground/dist → dist/playground}/assets/luau-Du5NY7AG.js +0 -0
  200. /package/{src/playground/dist → dist/playground}/assets/make-Bvotw-X0.js +0 -0
  201. /package/{src/playground/dist → dist/playground}/assets/markdown-UIAJJxZW.js +0 -0
  202. /package/{src/playground/dist → dist/playground}/assets/marko-z0MBrx5-.js +0 -0
  203. /package/{src/playground/dist → dist/playground}/assets/material-theme-D5KoaKCx.js +0 -0
  204. /package/{src/playground/dist → dist/playground}/assets/material-theme-darker-BfHTSMKl.js +0 -0
  205. /package/{src/playground/dist → dist/playground}/assets/material-theme-lighter-B0m2ddpp.js +0 -0
  206. /package/{src/playground/dist → dist/playground}/assets/material-theme-ocean-CyktbL80.js +0 -0
  207. /package/{src/playground/dist → dist/playground}/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
  208. /package/{src/playground/dist → dist/playground}/assets/matlab-D9-PGadD.js +0 -0
  209. /package/{src/playground/dist → dist/playground}/assets/mdc-DB_EDNY_.js +0 -0
  210. /package/{src/playground/dist → dist/playground}/assets/mdx-sdHcTMYB.js +0 -0
  211. /package/{src/playground/dist → dist/playground}/assets/mermaid-Ci6OQyBP.js +0 -0
  212. /package/{src/playground/dist → dist/playground}/assets/min-dark-CafNBF8u.js +0 -0
  213. /package/{src/playground/dist → dist/playground}/assets/min-light-CTRr51gU.js +0 -0
  214. /package/{src/playground/dist → dist/playground}/assets/mipsasm-BC5c_5Pe.js +0 -0
  215. /package/{src/playground/dist → dist/playground}/assets/mojo-Tz6hzZYG.js +0 -0
  216. /package/{src/playground/dist → dist/playground}/assets/monokai-D4h5O-jR.js +0 -0
  217. /package/{src/playground/dist → dist/playground}/assets/move-DB_GagMm.js +0 -0
  218. /package/{src/playground/dist → dist/playground}/assets/narrat-DLbgOhZU.js +0 -0
  219. /package/{src/playground/dist → dist/playground}/assets/nextflow-B0XVJmRM.js +0 -0
  220. /package/{src/playground/dist → dist/playground}/assets/nginx-D_VnBJ67.js +0 -0
  221. /package/{src/playground/dist → dist/playground}/assets/night-owl-C39BiMTA.js +0 -0
  222. /package/{src/playground/dist → dist/playground}/assets/nim-ZlGxZxc3.js +0 -0
  223. /package/{src/playground/dist → dist/playground}/assets/nix-shcSOmrb.js +0 -0
  224. /package/{src/playground/dist → dist/playground}/assets/nord-Ddv68eIx.js +0 -0
  225. /package/{src/playground/dist → dist/playground}/assets/nushell-D4Tzg5kh.js +0 -0
  226. /package/{src/playground/dist → dist/playground}/assets/objective-c-Deuh7S70.js +0 -0
  227. /package/{src/playground/dist → dist/playground}/assets/objective-cpp-BUEGK8hf.js +0 -0
  228. /package/{src/playground/dist → dist/playground}/assets/ocaml-BNioltXt.js +0 -0
  229. /package/{src/playground/dist → dist/playground}/assets/one-dark-pro-GBQ2dnAY.js +0 -0
  230. /package/{src/playground/dist → dist/playground}/assets/one-light-PoHY5YXO.js +0 -0
  231. /package/{src/playground/dist → dist/playground}/assets/pascal-JqZropPD.js +0 -0
  232. /package/{src/playground/dist → dist/playground}/assets/perl-CHQXSrWU.js +0 -0
  233. /package/{src/playground/dist → dist/playground}/assets/php-B5ebYQev.js +0 -0
  234. /package/{src/playground/dist → dist/playground}/assets/plastic-3e1v2bzS.js +0 -0
  235. /package/{src/playground/dist → dist/playground}/assets/plsql-LKU2TuZ1.js +0 -0
  236. /package/{src/playground/dist → dist/playground}/assets/po-BFLt1xDp.js +0 -0
  237. /package/{src/playground/dist → dist/playground}/assets/poimandres-CS3Unz2-.js +0 -0
  238. /package/{src/playground/dist → dist/playground}/assets/polar-DKykz6zU.js +0 -0
  239. /package/{src/playground/dist → dist/playground}/assets/postcss-B3ZDOciz.js +0 -0
  240. /package/{src/playground/dist → dist/playground}/assets/powerquery-CSHBycmS.js +0 -0
  241. /package/{src/playground/dist → dist/playground}/assets/powershell-BIEUsx6d.js +0 -0
  242. /package/{src/playground/dist → dist/playground}/assets/prisma-B48N-Iqd.js +0 -0
  243. /package/{src/playground/dist → dist/playground}/assets/prolog-BY-TUvya.js +0 -0
  244. /package/{src/playground/dist → dist/playground}/assets/proto-zocC4JxJ.js +0 -0
  245. /package/{src/playground/dist → dist/playground}/assets/pug-CM9l7STV.js +0 -0
  246. /package/{src/playground/dist → dist/playground}/assets/puppet-Cza_XSSt.js +0 -0
  247. /package/{src/playground/dist → dist/playground}/assets/purescript-Bg-kzb6g.js +0 -0
  248. /package/{src/playground/dist → dist/playground}/assets/python-DhUJRlN_.js +0 -0
  249. /package/{src/playground/dist → dist/playground}/assets/qml-D8XfuvdV.js +0 -0
  250. /package/{src/playground/dist → dist/playground}/assets/qmldir-C8lEn-DE.js +0 -0
  251. /package/{src/playground/dist → dist/playground}/assets/qss-DhMKtDLN.js +0 -0
  252. /package/{src/playground/dist → dist/playground}/assets/r-CwjWoCRV.js +0 -0
  253. /package/{src/playground/dist → dist/playground}/assets/racket-CzouJOBO.js +0 -0
  254. /package/{src/playground/dist → dist/playground}/assets/raku-B1bQXN8T.js +0 -0
  255. /package/{src/playground/dist → dist/playground}/assets/razor-CNLDkMZG.js +0 -0
  256. /package/{src/playground/dist → dist/playground}/assets/red-bN70gL4F.js +0 -0
  257. /package/{src/playground/dist → dist/playground}/assets/reg-5LuOXUq_.js +0 -0
  258. /package/{src/playground/dist → dist/playground}/assets/regexp-DWJ3fJO_.js +0 -0
  259. /package/{src/playground/dist → dist/playground}/assets/rel-DJlmqQ1C.js +0 -0
  260. /package/{src/playground/dist → dist/playground}/assets/riscv-QhoSD0DR.js +0 -0
  261. /package/{src/playground/dist → dist/playground}/assets/rose-pine-CmCqftbK.js +0 -0
  262. /package/{src/playground/dist → dist/playground}/assets/rose-pine-dawn-Ds-gbosJ.js +0 -0
  263. /package/{src/playground/dist → dist/playground}/assets/rose-pine-moon-CjDtw9vr.js +0 -0
  264. /package/{src/playground/dist → dist/playground}/assets/rst-4NLicBqY.js +0 -0
  265. /package/{src/playground/dist → dist/playground}/assets/ruby-DeZ3UC14.js +0 -0
  266. /package/{src/playground/dist → dist/playground}/assets/rust-Be6lgOlo.js +0 -0
  267. /package/{src/playground/dist → dist/playground}/assets/sas-BmTFh92c.js +0 -0
  268. /package/{src/playground/dist → dist/playground}/assets/sass-BJ4Li9vH.js +0 -0
  269. /package/{src/playground/dist → dist/playground}/assets/scala-DQVVAn-B.js +0 -0
  270. /package/{src/playground/dist → dist/playground}/assets/scheme-BJGe-b2p.js +0 -0
  271. /package/{src/playground/dist → dist/playground}/assets/scss-C31hgJw-.js +0 -0
  272. /package/{src/playground/dist → dist/playground}/assets/sdbl-BLhTXw86.js +0 -0
  273. /package/{src/playground/dist → dist/playground}/assets/shaderlab-B7qAK45m.js +0 -0
  274. /package/{src/playground/dist → dist/playground}/assets/shellscript-atvbtKCR.js +0 -0
  275. /package/{src/playground/dist → dist/playground}/assets/shellsession-C_rIy8kc.js +0 -0
  276. /package/{src/playground/dist → dist/playground}/assets/slack-dark-BthQWCQV.js +0 -0
  277. /package/{src/playground/dist → dist/playground}/assets/slack-ochin-DqwNpetd.js +0 -0
  278. /package/{src/playground/dist → dist/playground}/assets/smalltalk-DkLiglaE.js +0 -0
  279. /package/{src/playground/dist → dist/playground}/assets/snazzy-light-Bw305WKR.js +0 -0
  280. /package/{src/playground/dist → dist/playground}/assets/solarized-dark-DXbdFlpD.js +0 -0
  281. /package/{src/playground/dist → dist/playground}/assets/solarized-light-L9t79GZl.js +0 -0
  282. /package/{src/playground/dist → dist/playground}/assets/solidity-C1w2a3ep.js +0 -0
  283. /package/{src/playground/dist → dist/playground}/assets/soy-C-lX7w71.js +0 -0
  284. /package/{src/playground/dist → dist/playground}/assets/sparql-bYkjHRlG.js +0 -0
  285. /package/{src/playground/dist → dist/playground}/assets/splunk-Cf8iN4DR.js +0 -0
  286. /package/{src/playground/dist → dist/playground}/assets/sql-COK4E0Yg.js +0 -0
  287. /package/{src/playground/dist → dist/playground}/assets/ssh-config-BknIz3MU.js +0 -0
  288. /package/{src/playground/dist → dist/playground}/assets/stata-DorPZHa4.js +0 -0
  289. /package/{src/playground/dist → dist/playground}/assets/style-D60lMPLr.css +0 -0
  290. /package/{src/playground/dist → dist/playground}/assets/stylus-BeQkCIfX.js +0 -0
  291. /package/{src/playground/dist → dist/playground}/assets/svelte-MSaWC3Je.js +0 -0
  292. /package/{src/playground/dist → dist/playground}/assets/swift-BSxZ-RaX.js +0 -0
  293. /package/{src/playground/dist → dist/playground}/assets/synthwave-84-CbfX1IO0.js +0 -0
  294. /package/{src/playground/dist → dist/playground}/assets/system-verilog-C7L56vO4.js +0 -0
  295. /package/{src/playground/dist → dist/playground}/assets/systemd-CUnW07Te.js +0 -0
  296. /package/{src/playground/dist → dist/playground}/assets/talonscript-C1XDQQGZ.js +0 -0
  297. /package/{src/playground/dist → dist/playground}/assets/tasl-CQjiPCtT.js +0 -0
  298. /package/{src/playground/dist → dist/playground}/assets/tcl-DQ1-QYvQ.js +0 -0
  299. /package/{src/playground/dist → dist/playground}/assets/templ-dwX3ZSMB.js +0 -0
  300. /package/{src/playground/dist → dist/playground}/assets/terraform-BbSNqyBO.js +0 -0
  301. /package/{src/playground/dist → dist/playground}/assets/tex-rYs2v40G.js +0 -0
  302. /package/{src/playground/dist → dist/playground}/assets/tokyo-night-DBQeEorK.js +0 -0
  303. /package/{src/playground/dist → dist/playground}/assets/toml-CB2ApiWb.js +0 -0
  304. /package/{src/playground/dist → dist/playground}/assets/ts-tags-CipyTH0X.js +0 -0
  305. /package/{src/playground/dist → dist/playground}/assets/tsv-B_m7g4N7.js +0 -0
  306. /package/{src/playground/dist → dist/playground}/assets/tsx-B6W0miNI.js +0 -0
  307. /package/{src/playground/dist → dist/playground}/assets/turtle-BMR_PYu6.js +0 -0
  308. /package/{src/playground/dist → dist/playground}/assets/twig-NC5TFiHP.js +0 -0
  309. /package/{src/playground/dist → dist/playground}/assets/typescript-Dj6nwHGl.js +0 -0
  310. /package/{src/playground/dist → dist/playground}/assets/typespec-BpWG_bgh.js +0 -0
  311. /package/{src/playground/dist → dist/playground}/assets/typst-BVUVsWT6.js +0 -0
  312. /package/{src/playground/dist → dist/playground}/assets/v-CAQ2eGtk.js +0 -0
  313. /package/{src/playground/dist → dist/playground}/assets/vala-BFOHcciG.js +0 -0
  314. /package/{src/playground/dist → dist/playground}/assets/vb-CdO5JTpU.js +0 -0
  315. /package/{src/playground/dist → dist/playground}/assets/verilog-CJaU5se_.js +0 -0
  316. /package/{src/playground/dist → dist/playground}/assets/vesper-BEBZ7ncR.js +0 -0
  317. /package/{src/playground/dist → dist/playground}/assets/vhdl-DYoNaHQp.js +0 -0
  318. /package/{src/playground/dist → dist/playground}/assets/viml-m4uW47V2.js +0 -0
  319. /package/{src/playground/dist → dist/playground}/assets/vitesse-black-Bkuqu6BP.js +0 -0
  320. /package/{src/playground/dist → dist/playground}/assets/vitesse-dark-D0r3Knsf.js +0 -0
  321. /package/{src/playground/dist → dist/playground}/assets/vitesse-light-CVO1_9PV.js +0 -0
  322. /package/{src/playground/dist → dist/playground}/assets/vue-BuYVFjOK.js +0 -0
  323. /package/{src/playground/dist → dist/playground}/assets/vue-html-xdeiXROB.js +0 -0
  324. /package/{src/playground/dist → dist/playground}/assets/vyper-nyqBNV6O.js +0 -0
  325. /package/{src/playground/dist → dist/playground}/assets/wasm-C6j12Q_x.js +0 -0
  326. /package/{src/playground/dist → dist/playground}/assets/wasm-CG6Dc4jp.js +0 -0
  327. /package/{src/playground/dist → dist/playground}/assets/wenyan-7A4Fjokl.js +0 -0
  328. /package/{src/playground/dist → dist/playground}/assets/wgsl-CB0Krxn9.js +0 -0
  329. /package/{src/playground/dist → dist/playground}/assets/wikitext-DCE3LsBG.js +0 -0
  330. /package/{src/playground/dist → dist/playground}/assets/wolfram-C3FkfJm5.js +0 -0
  331. /package/{src/playground/dist → dist/playground}/assets/xml-e3z08dGr.js +0 -0
  332. /package/{src/playground/dist → dist/playground}/assets/xsl-Dd0NUgwM.js +0 -0
  333. /package/{src/playground/dist → dist/playground}/assets/yaml-CVw76BM1.js +0 -0
  334. /package/{src/playground/dist → dist/playground}/assets/zenscript-HnGAYVZD.js +0 -0
  335. /package/{src/playground/dist → dist/playground}/assets/zig-BVz_zdnA.js +0 -0
  336. /package/{src/playground/dist → dist/playground}/favicon.ico +0 -0
  337. /package/{src/playground/dist → dist/playground}/mastra.svg +0 -0
@@ -1,4 +1,3 @@
1
1
  export { PosthogAnalytics, getAnalytics, setAnalytics } from '../chunk-OQQFOUQW.js';
2
- import '../chunk-QKQ47GQZ.js';
3
2
  //# sourceMappingURL=index.js.map
4
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,4 @@
1
1
  export { create } from '../../chunk-Q7EUFCXR.js';
2
2
  import '../../chunk-OQQFOUQW.js';
3
- import '../../chunk-QKQ47GQZ.js';
4
3
  //# sourceMappingURL=create.js.map
5
4
  //# sourceMappingURL=create.js.map
@@ -1,5 +1,3 @@
1
- import '../../chunk-QKQ47GQZ.js';
2
-
3
1
  // src/commands/dev/telemetry-resolver.ts
4
2
  async function resolve(specifier, context, nextResolve) {
5
3
  if (!specifier.startsWith("@opentelemetry")) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/dev/telemetry-resolver.ts"],"names":[],"mappings":";;;AAEA,eAAsB,OAAA,CACpB,SAAA,EACA,OAAA,EACA,WAAA,EACA;AACA,EAAA,IAAI,CAAC,SAAA,CAAU,UAAA,CAAW,gBAAgB,CAAA,EAAG;AAC3C,IAAA,OAAO,WAAA,CAAY,WAAW,OAAO,CAAA;AAAA,EACvC;AAEA,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,QAAA,CAAS,qBAAqB,CAAA,EAAG;AACvD,IAAA,OAAO,WAAA,CAAY,WAAW,OAAO,CAAA;AAAA,EACvC;AAEA,EAAA,OAAO,YAAY,SAAA,EAAW;AAAA,IAC5B,GAAG,OAAA;AAAA,IACH,WAAW,MAAA,CAAA,IAAA,CAAY;AAAA,GACxB,CAAA;AACH","file":"telemetry-resolver.js","sourcesContent":["import type { ResolveHookContext } from 'node:module';\n\nexport async function resolve(\n specifier: string,\n context: ResolveHookContext,\n nextResolve: (specifier: string, context: ResolveHookContext) => Promise<{ url: string }>,\n) {\n if (!specifier.startsWith('@opentelemetry')) {\n return nextResolve(specifier, context);\n }\n\n if (!context.parentURL?.endsWith('instrumentation.mjs')) {\n return nextResolve(specifier, context);\n }\n\n return nextResolve(specifier, {\n ...context,\n parentURL: import.meta.url,\n });\n}\n"]}
1
+ {"version":3,"sources":["../../../src/commands/dev/telemetry-resolver.ts"],"names":[],"mappings":";AAEA,eAAsB,OAAA,CACpB,SAAA,EACA,OAAA,EACA,WAAA,EACA;AACA,EAAA,IAAI,CAAC,SAAA,CAAU,UAAA,CAAW,gBAAgB,CAAA,EAAG;AAC3C,IAAA,OAAO,WAAA,CAAY,WAAW,OAAO,CAAA;AAAA,EACvC;AAEA,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,QAAA,CAAS,qBAAqB,CAAA,EAAG;AACvD,IAAA,OAAO,WAAA,CAAY,WAAW,OAAO,CAAA;AAAA,EACvC;AAEA,EAAA,OAAO,YAAY,SAAA,EAAW;AAAA,IAC5B,GAAG,OAAA;AAAA,IACH,WAAW,MAAA,CAAA,IAAA,CAAY;AAAA,GACxB,CAAA;AACH","file":"telemetry-resolver.js","sourcesContent":["import type { ResolveHookContext } from 'node:module';\n\nexport async function resolve(\n specifier: string,\n context: ResolveHookContext,\n nextResolve: (specifier: string, context: ResolveHookContext) => Promise<{ url: string }>,\n) {\n if (!specifier.startsWith('@opentelemetry')) {\n return nextResolve(specifier, context);\n }\n\n if (!context.parentURL?.endsWith('instrumentation.mjs')) {\n return nextResolve(specifier, context);\n }\n\n return nextResolve(specifier, {\n ...context,\n parentURL: import.meta.url,\n });\n}\n"]}
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@ import { DepsService, create, checkPkgJson, checkAndInstallCoreDeps, interactive
3
3
  export { create } from './chunk-Q7EUFCXR.js';
4
4
  import { PosthogAnalytics, setAnalytics } from './chunk-OQQFOUQW.js';
5
5
  export { PosthogAnalytics } from './chunk-OQQFOUQW.js';
6
- import { __glob } from './chunk-QKQ47GQZ.js';
7
6
  import { Command } from 'commander';
8
7
  import color from 'picocolors';
9
8
  import * as p2 from '@clack/prompts';
@@ -130,20 +129,6 @@ function writeScorer(filename, content, customPath) {
130
129
  }
131
130
  }
132
131
 
133
- // import("../../templates/scorers/**/*") in src/commands/scorers/add-new-scorer.ts
134
- var globImport_templates_scorers = __glob({
135
- "../../templates/scorers/answer-relevancy-scorer.ts": () => import('./answer-relevancy-scorer-CTIL35GQ.js'),
136
- "../../templates/scorers/bias-detection-scorer.ts": () => import('./bias-detection-scorer-IWHTLHDC.js'),
137
- "../../templates/scorers/completeness-scorer.ts": () => import('./completeness-scorer-KH4LU4BW.js'),
138
- "../../templates/scorers/content-similarity-scorer.ts": () => import('./content-similarity-scorer-NB76ISB5.js'),
139
- "../../templates/scorers/faithfulness-scorer.ts": () => import('./faithfulness-scorer-F6GLSRTV.js'),
140
- "../../templates/scorers/hallucination-scorer.ts": () => import('./hallucination-scorer-NJW7PTKD.js'),
141
- "../../templates/scorers/keyword-coverage-scorer.ts": () => import('./keyword-coverage-scorer-63AEWDTL.js'),
142
- "../../templates/scorers/textual-difference-scorer.ts": () => import('./textual-difference-scorer-2MUWQ22U.js'),
143
- "../../templates/scorers/tone-consistency-scorer.ts": () => import('./tone-consistency-scorer-ZEXVRFCP.js'),
144
- "../../templates/scorers/toxicity-detection-scorer.ts": () => import('./toxicity-detection-scorer-RMTLQCHI.js')
145
- });
146
-
147
132
  // src/commands/scorers/add-new-scorer.ts
148
133
  async function selectScorer() {
149
134
  const options = [];
@@ -204,7 +189,8 @@ async function addNewScorer(scorerId, customDir) {
204
189
  }
205
190
  async function initializeScorer(scorerId, filename, customPath) {
206
191
  try {
207
- const templateModule = await globImport_templates_scorers(`../../templates/scorers/${filename}`);
192
+ const templatePath = `../../templates/scorers/${filename}`;
193
+ const templateModule = await import(templatePath);
208
194
  const key = `${toCamelCase(scorerId)}Scorer`;
209
195
  const templateContent = templateModule[key];
210
196
  const res = writeScorer(filename, templateContent, customPath);
@@ -800,7 +786,7 @@ var DevBundler = class extends Bundler {
800
786
  const __filename = fileURLToPath(import.meta.url);
801
787
  const __dirname = dirname(__filename);
802
788
  const playgroundServePath = join(outputDirectory, this.outputDir, "playground");
803
- await fsExtra.copy(join(dirname(__dirname), "src/playground/dist"), playgroundServePath, {
789
+ await fsExtra.copy(join(dirname(__dirname), "dist/playground"), playgroundServePath, {
804
790
  overwrite: true
805
791
  });
806
792
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/string.ts","../src/commands/scorers/available-scorers.ts","../src/commands/scorers/file-utils.ts","../src/commands/scorers/add-new-scorer.ts","../src/commands/actions/add-scorer.ts","../src/commands/build/BuildBundler.ts","../src/commands/build/build.ts","../src/commands/actions/build-project.ts","../src/commands/actions/create-project.ts","../src/commands/deploy/index.ts","../src/commands/actions/deploy-project.ts","../src/commands/actions/init-project.ts","../src/commands/lint/rules/mastraCoreRule.ts","../src/commands/lint/rules/nextConfigRule.ts","../src/commands/lint/rules/tsConfigRule.ts","../src/commands/lint/rules/index.ts","../src/commands/lint/index.ts","../src/commands/actions/lint-project.ts","../src/commands/scorers/list-all-scorers.ts","../src/commands/actions/list-scorers.ts","../src/commands/dev/DevBundler.ts","../src/commands/dev/dev.ts","../src/commands/actions/start-dev-server.ts","../src/commands/start/start.ts","../src/commands/actions/start-project.ts","../src/index.ts"],"names":["p","pc","FileService","dir","fs","origin","join","getDeployer","nextConfigPath","readFileSync","version","p3","Bundler","process","isWebContainer"],"mappings":"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","file":"index.js","sourcesContent":["export const toCamelCase = (str: string) => {\n return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n};\n","import type { ScorerTemplate } from './types';\n\nexport const AVAILABLE_SCORERS: Array<ScorerTemplate> = [\n // Accuracy and Reliability scorers\n {\n id: 'answer-relevancy',\n name: 'Answer Relevancy',\n description: 'Evaluates how well responses address the input query using LLM',\n category: 'accuracy-and-reliability',\n filename: 'answer-relevancy-scorer.ts',\n },\n {\n id: 'faithfulness',\n name: 'Faithfulness',\n description: 'Measures how accurately responses represent provided context',\n category: 'accuracy-and-reliability',\n filename: 'faithfulness-scorer.ts',\n },\n {\n id: 'hallucination',\n name: 'Hallucination Detection',\n description: 'Detects facts or claims not present in provided context',\n category: 'accuracy-and-reliability',\n filename: 'hallucination-scorer.ts',\n },\n {\n id: 'completeness',\n name: 'Completeness',\n description: 'Checks if responses include all necessary information',\n category: 'accuracy-and-reliability',\n filename: 'completeness-scorer.ts',\n },\n {\n id: 'content-similarity',\n name: 'Content Similarity',\n description: 'Evaluates consistency of information across different phrasings',\n category: 'accuracy-and-reliability',\n filename: 'content-similarity-scorer.ts',\n },\n {\n id: 'textual-difference',\n name: 'Textual Difference',\n description: 'Measures textual differences between strings',\n category: 'accuracy-and-reliability',\n filename: 'textual-difference-scorer.ts',\n },\n\n // Output Quality scorers\n {\n id: 'tone-consistency',\n name: 'Tone Consistency',\n description: 'Measures consistency in formality, complexity, and style',\n category: 'output-quality',\n filename: 'tone-consistency-scorer.ts',\n },\n {\n id: 'toxicity-detection',\n name: 'Toxicity Detection',\n description: 'Detects harmful or inappropriate content in responses',\n category: 'output-quality',\n filename: 'toxicity-detection-scorer.ts',\n },\n {\n id: 'bias-detection',\n name: 'Bias Detection',\n description: 'Detects potential biases in output',\n category: 'output-quality',\n filename: 'bias-detection-scorer.ts',\n },\n {\n id: 'keyword-coverage',\n name: 'Keyword Coverage',\n description: 'Assesses how well output covers important keywords from input',\n category: 'output-quality',\n filename: 'keyword-coverage-scorer.ts',\n },\n];\n","import fs from 'fs';\nimport path from 'path';\nimport * as p from '@clack/prompts';\n\nconst DEFAULT_SCORERS_DIR = 'src/mastra/scorers';\n\nexport function writeScorer(filename: string, content: string, customPath?: string): { ok: true; message: string } {\n const rootDir = process.cwd();\n const scorersPath = customPath || DEFAULT_SCORERS_DIR;\n const fullPath = path.join(rootDir, scorersPath);\n\n if (!fs.existsSync(fullPath)) {\n try {\n fs.mkdirSync(fullPath, { recursive: true });\n p.log.success(`Created scorers directory at ${scorersPath}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to create directory: ${errorMessage}`);\n }\n }\n\n const filePath = path.join(fullPath, filename);\n\n if (fs.existsSync(filePath)) {\n throw new Error(`Skipped: Scorer ${filename} already exists at ${scorersPath}`);\n }\n\n try {\n fs.writeFileSync(filePath, content);\n\n return { ok: true, message: `Created scorer at ${path.relative(rootDir, filePath)}` };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to write scorer: ${errorMessage}`);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { DepsService } from '../../services/service.deps';\nimport { toCamelCase } from '../../utils/string';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport { writeScorer } from './file-utils';\nimport type { ScorerTemplate } from './types';\n\nexport async function selectScorer(): Promise<ScorerTemplate[] | null> {\n const options = [];\n\n for (const scorer of AVAILABLE_SCORERS) {\n options.push({\n value: scorer.id,\n label: `${scorer.name}`,\n hint: `${scorer.description}`,\n });\n }\n\n const selectedIds = await p.multiselect({\n message: 'Choose a scorer to add:',\n options,\n });\n\n if (p.isCancel(selectedIds) || typeof selectedIds !== 'object') {\n p.log.info('Scorer selection cancelled.');\n return null;\n }\n\n if (!Array.isArray(selectedIds)) {\n return null;\n }\n\n const selectedScorers = selectedIds\n .map(scorerId => {\n const foundScorer = AVAILABLE_SCORERS.find(s => s.id === scorerId);\n return foundScorer;\n })\n .filter(item => item != undefined);\n\n return selectedScorers;\n}\n\nexport async function addNewScorer(scorerId?: string, customDir?: string) {\n const depService = new DepsService();\n const needsEvals = (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n\n if (needsEvals) {\n await depService.installPackages(['@mastra/evals']);\n }\n\n if (!scorerId) {\n await showInteractivePrompt(customDir);\n return;\n }\n\n const foundScorer = AVAILABLE_SCORERS.find(scorer => scorer.id === scorerId.toLowerCase());\n if (!foundScorer) {\n p.log.error(`Scorer for ${scorerId} not available`);\n return;\n }\n\n const { id, filename } = foundScorer;\n\n try {\n const res = await initializeScorer(id, filename, customDir);\n if (!res.ok) {\n return;\n }\n p.log.success(res.message);\n showSuccessNote();\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes('Skipped')) {\n return p.log.warning(errorMessage);\n }\n p.log.error(errorMessage);\n }\n}\n\nasync function initializeScorer(scorerId: string, filename: string, customPath?: string) {\n try {\n const templateModule = await import(`../../templates/scorers/${filename}`);\n const key = `${toCamelCase(scorerId)}Scorer`;\n const templateContent = templateModule[key];\n const res = writeScorer(filename, templateContent, customPath);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nfunction showSuccessNote() {\n p.note(`\n ${pc.green('To use: Add the Scorer to your workflow or agent!')}\n `);\n}\n\nasync function showInteractivePrompt(providedCustomDir?: string) {\n let selectedScorers = await selectScorer();\n if (!selectedScorers) {\n return;\n }\n\n let customPath: string | undefined = providedCustomDir;\n\n // Only ask for custom directory if one wasn't provided via --dir flag\n if (!providedCustomDir) {\n const useCustomDir = await p.confirm({\n message: `Would you like to use a custom directory?${pc.gray('(Default: src/mastra/scorers)')}`,\n initialValue: false,\n });\n\n if (p.isCancel(useCustomDir)) {\n p.log.info('Operation cancelled.');\n return;\n }\n\n if (useCustomDir) {\n const dirPath = await p.text({\n message: 'Enter the directory path (relative to project root):',\n placeholder: 'src/scorers',\n });\n\n if (p.isCancel(dirPath)) {\n p.log.info('Operation cancelled.');\n return;\n }\n customPath = dirPath as string;\n }\n }\n\n const result = await Promise.allSettled(\n selectedScorers.map(scorer => {\n const { id, filename } = scorer;\n return initializeScorer(id, filename, customPath);\n }),\n );\n\n result.forEach(op => {\n if (op.status === 'fulfilled') {\n p.log.success(op.value.message);\n return;\n }\n const errorMessage = String(op.reason);\n const coreError = errorMessage.replace('Error:', '').trim();\n if (coreError.includes('Skipped')) {\n return p.log.warning(coreError);\n }\n p.log.error(coreError);\n });\n\n const containsSuccessfulWrites = result.some(item => item.status === 'fulfilled');\n\n if (containsSuccessfulWrites) {\n showSuccessNote();\n }\n return;\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { addNewScorer } from '../scorers/add-new-scorer';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const addScorer = async (scorerName: string | undefined, args: any) => {\n await analytics.trackCommandExecution({\n command: 'scorers-add',\n args: { ...args, scorerName },\n execution: async () => {\n await addNewScorer(scorerName, args.dir);\n },\n origin,\n });\n};\n","import { FileService } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\n\nexport class BuildBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Build');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch (err) {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n }\n\n async bundle(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, outputDirectory, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n // @ts-ignore\n import { evaluate } from '@mastra/core/eval';\n import { AvailableHooks, registerHook } from '@mastra/core/hooks';\n import { TABLE_EVALS } from '@mastra/core/storage';\n import { checkEvalStorageFields } from '@mastra/core/utils';\n import { mastra } from '#mastra';\n import { createNodeServer, getToolExports } from '#server';\n import { tools } from '#tools';\n // @ts-ignore\n await createNodeServer(mastra, { tools: getToolExports(tools) });\n\n registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {\n evaluate({\n agentName,\n input,\n metric,\n output,\n runId,\n globalRunId: runId,\n instructions,\n });\n });\n\n if (mastra.getStorage()) {\n // start storage init in the background\n mastra.getStorage().init();\n }\n\n registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n const storage = mastra.getStorage();\n if (storage) {\n // Check for required fields\n const logger = mastra?.getLogger();\n const areFieldsValid = checkEvalStorageFields(traceObject, logger);\n if (!areFieldsValid) return;\n\n await storage.insert({\n tableName: TABLE_EVALS,\n record: {\n input: traceObject.input,\n output: traceObject.output,\n result: JSON.stringify(traceObject.result || {}),\n agent_name: traceObject.agentName,\n metric_name: traceObject.metricName,\n instructions: traceObject.instructions,\n test_info: null,\n global_run_id: traceObject.globalRunId,\n run_id: traceObject.runId,\n created_at: new Date().toISOString(),\n },\n });\n }\n });\n `;\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n }\n}\n","import { join } from 'node:path';\n\nimport { FileService } from '../../services/service.file';\n\nimport { BuildBundler } from './BuildBundler';\nimport { getDeployer } from '@mastra/deployer';\nimport { logger } from '../../utils/logger';\n\nexport async function build({\n dir,\n tools,\n root,\n env,\n}: {\n dir?: string;\n tools?: string[];\n root?: string;\n env?: string;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler(env);\n deployer.__setLogger(logger);\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info(`Build successful, you can now deploy the .mastra/output directory to your target platform.`);\n logger.info(\n `To start the server, run: node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs`,\n );\n return;\n }\n\n logger.info('Deployer found, preparing deployer build...');\n\n platformDeployer.__setLogger(logger);\n await platformDeployer.prepare(outputDirectory);\n await platformDeployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info('You can now deploy the .mastra/output directory to your target platform.');\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Mastra Build failed`, { error });\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { build } from '../build/build';\n\nexport const buildProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'mastra build',\n args,\n execution: async () => {\n await build({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { create } from '../create/create';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const createProject = async (projectNameArg: any, args: any) => {\n const projectName = projectNameArg || args.projectName;\n await analytics.trackCommandExecution({\n command: 'create',\n args: { ...args, projectName },\n execution: async () => {\n const timeout = args?.timeout ? (args?.timeout === true ? 60000 : parseInt(args?.timeout, 10)) : undefined;\n if (args.default) {\n await create({\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n timeout,\n mcpServer: args.mcp,\n template: args.template,\n });\n return;\n }\n await create({\n components: args.components ? args.components.split(',') : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n timeout,\n projectName,\n directory: args.dir,\n mcpServer: args.mcp,\n template: args.template,\n });\n },\n origin,\n });\n};\n","import { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\n\nimport { FileService } from '../../services/service.file';\nimport { logger } from '../../utils/logger';\n\nexport async function deploy({ dir }: { dir?: string }) {\n let mastraDir = dir || join(process.cwd(), 'src/mastra');\n try {\n const outputDirectory = join(process.cwd(), '.mastra');\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n const deployer = await getDeployer(mastraEntryFile, outputDirectory);\n\n if (!deployer) {\n logger.warn('No deployer found.');\n return;\n }\n\n try {\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, []);\n try {\n await deployer.deploy(outputDirectory);\n } catch (error) {\n console.error('[Mastra Deploy] - Error deploying:', error);\n }\n } catch (err) {\n if (err instanceof Error) {\n logger.debug(`error: ${err.message}`, { error: err });\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n logger.debug(`error: ${error.message}`, { error });\n }\n logger.warn('No deployer found.');\n }\n}\n","import { config } from 'dotenv';\nimport { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { deploy } from '../deploy';\n\nexport const deployProject = async (args: any) => {\n config({ path: ['.env', '.env.production'] });\n await analytics.trackCommandExecution({\n command: 'mastra deploy',\n args,\n execution: async () => {\n logger.warn(`DEPRECATED: The deploy command is deprecated.\n Please use the mastra build command instead.\n Then deploy .mastra/output to your target platform.\n `);\n await deploy({ dir: args.dir });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { init } from '../init/init';\nimport { checkAndInstallCoreDeps, checkPkgJson, interactivePrompt } from '../init/utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const initProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'init',\n args,\n execution: async () => {\n await checkPkgJson();\n await checkAndInstallCoreDeps(args?.example || args?.default);\n\n if (!Object.keys(args).length) {\n const result = await interactivePrompt();\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n });\n return;\n }\n\n if (args?.default) {\n await init({\n directory: 'src/',\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n }\n\n const componentsArr = args.components ? args.components.split(',') : [];\n await init({\n directory: args.dir,\n components: componentsArr,\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n },\n origin,\n });\n};\n","import { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nexport const mastraCoreRule: LintRule = {\n name: 'mastra-core',\n description: 'Checks if @mastra/core is installed',\n async run(context: LintContext): Promise<boolean> {\n const hasCore = context.mastraPackages.some(pkg => pkg.name === '@mastra/core');\n if (!hasCore) {\n logger.error('@mastra/core is not installed. This package is required for Mastra to work properly.');\n return false;\n }\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readNextConfig(dir: string) {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n const nextConfigContent = readFileSync(nextConfigPath, 'utf-8');\n const configMatch = nextConfigContent.match(/const nextConfig = ({[\\s\\S]*?});/);\n if (!configMatch?.[1]) {\n return null;\n }\n const configStr = configMatch[1].replace(/\\n/g, '').replace(/\\s+/g, ' ');\n return eval(`(${configStr})`);\n } catch {\n return null;\n }\n}\n\nfunction isNextJsProject(dir: string): boolean {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n readFileSync(nextConfigPath, 'utf-8');\n return true;\n } catch {\n return false;\n }\n}\n// TODO: Move to babel\nexport const nextConfigRule: LintRule = {\n name: 'next-config',\n description: 'Checks if Next.js config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n if (!isNextJsProject(context.rootDir)) {\n return true;\n }\n\n const nextConfig = readNextConfig(context.rootDir);\n if (!nextConfig) {\n return false;\n }\n\n const serverExternals = nextConfig.serverExternalPackages || [];\n const hasMastraExternals = serverExternals.some(\n (pkg: string) => pkg === '@mastra/*' || pkg === '@mastra/core' || pkg.startsWith('@mastra/'),\n );\n\n if (!hasMastraExternals) {\n logger.error('next.config.js is missing Mastra packages in serverExternalPackages');\n logger.error('Please add the following to your next.config.js:');\n logger.error(' serverExternalPackages: [\"@mastra/*\"],');\n return false;\n }\n\n logger.info('Next.js config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport stripJsonComments from 'strip-json-comments';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readTsConfig(dir: string) {\n const tsConfigPath = join(dir, 'tsconfig.json');\n try {\n const tsConfigContent = readFileSync(tsConfigPath, 'utf-8');\n const cleanTsConfigContent = stripJsonComments(tsConfigContent);\n return JSON.parse(cleanTsConfigContent);\n } catch {\n return null;\n }\n}\n\nexport const tsConfigRule: LintRule = {\n name: 'ts-config',\n description: 'Checks if TypeScript config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n const tsConfig = readTsConfig(context.rootDir);\n if (!tsConfig) {\n logger.warn('No tsconfig.json found. This might cause issues with Mastra packages.');\n return true; // Not a critical error, just a warning\n }\n\n const { module, moduleResolution } = tsConfig.compilerOptions || {};\n\n // Check if either moduleResolution is 'bundler' or module is 'CommonJS'\n const isValidConfig = moduleResolution === 'bundler' || module === 'CommonJS';\n if (!isValidConfig) {\n logger.error('tsconfig.json has invalid configuration');\n logger.error('Please set either:');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"moduleResolution\": \"bundler\"');\n logger.error(' }');\n logger.error('or');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"module\": \"CommonJS\"');\n logger.error(' }');\n logger.error('For the recommended TypeScript configuration, see:');\n logger.error('https://mastra.ai/en/docs/getting-started/installation#initialize-typescript');\n return false;\n }\n\n logger.info('TypeScript config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { mastraCoreRule } from './mastraCoreRule.js';\nimport { nextConfigRule } from './nextConfigRule.js';\nimport { tsConfigRule } from './tsConfigRule.js';\nimport type { LintRule } from './types.js';\n\nexport const rules: LintRule[] = [nextConfigRule, tsConfigRule, mastraCoreRule];\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\nimport { FileService } from '../../services/service.file.js';\nimport { logger } from '../../utils/logger.js';\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { rules } from './rules/index.js';\nimport type { LintContext } from './rules/types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface MastraPackage {\n name: string;\n version: string;\n isAlpha: boolean;\n}\n\nfunction readPackageJson(dir: string): PackageJson {\n const packageJsonPath = join(dir, 'package.json');\n try {\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(packageJsonContent);\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Failed to read package.json: ${error.message}`);\n }\n throw error;\n }\n}\n\nfunction getMastraPackages(packageJson: PackageJson): MastraPackage[] {\n const allDependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n const mastraPackages = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n return mastraPackages.map(([name, version]) => ({\n name,\n version,\n isAlpha: version.includes('alpha'),\n }));\n}\n\nexport async function lint({ dir, root, tools }: { dir?: string; root?: string; tools?: string[] }): Promise<boolean> {\n try {\n const rootDir = root || process.cwd();\n const mastraDir = dir\n ? dir.startsWith('/')\n ? dir\n : join(process.cwd(), dir)\n : join(process.cwd(), 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n const defaultToolsPath = join(mastraDir, 'tools');\n const discoveredTools = [defaultToolsPath, ...(tools ?? [])];\n\n const packageJson = readPackageJson(rootDir);\n const mastraPackages = getMastraPackages(packageJson);\n\n const context: LintContext = {\n rootDir,\n mastraDir,\n outputDirectory,\n discoveredTools,\n packageJson,\n mastraPackages,\n };\n\n // Run all rules\n const results = await Promise.all(rules.map(rule => rule.run(context)));\n const allRulesPassed = results.every(result => result);\n\n // Run deployer lint if all rules passed\n if (allRulesPassed) {\n const fileService = new FileService();\n const mastraEntryFile = fileService.getFirstExistingFile([\n join(mastraDir, 'index.ts'),\n join(mastraDir, 'index.js'),\n ]);\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler();\n await deployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n } else {\n await platformDeployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n }\n }\n\n return allRulesPassed;\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Lint check failed: ${error.message}`);\n }\n return false;\n }\n}\n","import { analytics, origin } from '../..';\nimport { lint } from '../lint';\n\nexport const lintProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'lint',\n args,\n execution: async () => {\n await lint({ dir: args.dir, root: args.root, tools: args.tools ? args.tools.split(',') : [] });\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport type { ScorerTemplate } from './types';\n\nexport function listAllScorers(): void {\n p.intro(color.inverse(' Available Scorers '));\n\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, scorer) => {\n if (!acc[scorer.category]) {\n acc[scorer.category] = [];\n }\n acc[scorer.category]!.push(scorer);\n return acc;\n },\n {} as Record<string, ScorerTemplate[]>,\n );\n\n for (const [category, scorers] of Object.entries(groupedScorers)) {\n const categoryLabel = category === 'accuracy-and-reliability' ? 'Accuracy and Reliability' : 'Output Quality';\n\n p.log.info(`${color.bold(color.cyan(categoryLabel))} Scorers:`);\n\n for (const scorer of scorers) {\n p.log.message(` ${color.bold(scorer.name)} ${color.dim(`(${scorer.id})`)}\n ${color.dim(scorer.description)}\n `);\n }\n }\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { listAllScorers } from '../scorers/list-all-scorers';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const listScorers = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'scorers-list',\n args,\n execution: async () => {\n await listAllScorers();\n },\n origin,\n });\n};\n","import { writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { FileService } from '@mastra/deployer';\nimport { createWatcher, getWatcherInputOptions, writeTelemetryConfig, getBundlerOptions } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport * as fsExtra from 'fs-extra';\nimport type { RollupWatcherEvent } from 'rollup';\n\nexport class DevBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Dev');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const playgroundServePath = join(outputDirectory, this.outputDir, 'playground');\n await fsExtra.copy(join(dirname(__dirname), 'src/playground/dist'), playgroundServePath, {\n overwrite: true,\n });\n }\n\n async watch(\n entryFile: string,\n outputDirectory: string,\n toolsPaths: (string | string[])[],\n ): ReturnType<typeof createWatcher> {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const envFiles = await this.getEnvFiles();\n\n let sourcemapEnabled = false;\n let transpilePackages: string[] = [];\n try {\n const bundlerOptions = await getBundlerOptions(entryFile, outputDirectory);\n sourcemapEnabled = !!bundlerOptions?.sourcemap;\n transpilePackages = bundlerOptions?.transpilePackages ?? [];\n } catch (error) {\n this.logger.debug('Failed to get bundler options, sourcemap will be disabled', { error });\n }\n\n const inputOptions = await getWatcherInputOptions(\n entryFile,\n 'node',\n {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),\n },\n { sourcemap: sourcemapEnabled, transpilePackages },\n );\n const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);\n\n const outputDir = join(outputDirectory, this.outputDir);\n await writeTelemetryConfig(entryFile, outputDir, this.logger);\n\n const mastraFolder = dirname(entryFile);\n const fileService = new FileService();\n const customInstrumentation = fileService.getFirstExistingFileOrUndefined([\n join(mastraFolder, 'instrumentation.js'),\n join(mastraFolder, 'instrumentation.ts'),\n join(mastraFolder, 'instrumentation.mjs'),\n ]);\n\n await this.writeInstrumentationFile(outputDir, customInstrumentation);\n\n await this.writePackageJson(outputDir, new Map(), {});\n\n const copyPublic = this.copyPublic.bind(this);\n\n const watcher = await createWatcher(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn(`Circular dependency found:\n\\t${warning.message.replace('Circular dependency: ', '')}`);\n }\n },\n plugins: [\n // @ts-ignore - types are good\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n ...inputOptions.plugins,\n {\n name: 'env-watcher',\n buildStart() {\n for (const envFile of envFiles) {\n this.addWatchFile(envFile);\n }\n },\n },\n {\n name: 'public-dir-watcher',\n buildStart() {\n this.addWatchFile(join(dirname(entryFile), 'public'));\n },\n buildEnd() {\n return copyPublic(dirname(entryFile), outputDirectory);\n },\n },\n {\n name: 'tools-watcher',\n async buildEnd() {\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(toolsInputOptions || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(outputDir, 'tools.mjs'),\n `${toolImports.join('\\n')}\n \n export const tools = [${toolsExports.join(', ')}]`,\n );\n },\n },\n ],\n input: {\n index: join(__dirname, 'templates', 'dev.entry.js'),\n ...toolsInputOptions,\n },\n },\n {\n dir: outputDir,\n sourcemap: sourcemapEnabled,\n },\n );\n\n this.logger.info('Starting watcher...');\n return new Promise((resolve, reject) => {\n const cb = (event: RollupWatcherEvent) => {\n if (event.code === 'BUNDLE_END') {\n this.logger.info('Bundling finished, starting server...');\n watcher.off('event', cb);\n resolve(watcher);\n }\n\n if (event.code === 'ERROR') {\n console.log(event);\n this.logger.error('Bundling failed, stopping watcher...');\n watcher.off('event', cb);\n reject(event);\n }\n };\n\n watcher.on('event', cb);\n });\n }\n\n async bundle(): Promise<void> {\n // Do nothing\n }\n}\n","import type { ChildProcess } from 'child_process';\nimport process from 'node:process';\nimport { join } from 'path';\nimport { FileService } from '@mastra/deployer';\nimport { getServerOptions } from '@mastra/deployer/build';\nimport { isWebContainer } from '@webcontainer/env';\nimport { execa } from 'execa';\nimport getPort from 'get-port';\n\nimport { logger } from '../../utils/logger.js';\n\nimport { DevBundler } from './DevBundler';\n\nlet currentServerProcess: ChildProcess | undefined;\nlet isRestarting = false;\nconst ON_ERROR_MAX_RESTARTS = 3;\n\nconst startServer = async (\n dotMastraPath: string,\n port: number,\n env: Map<string, string>,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n errorRestartCount = 0,\n) => {\n let serverIsReady = false;\n try {\n // Restart server\n logger.info('[Mastra Dev] - Starting server...');\n\n const commands = [];\n\n if (startOptions.inspect) {\n commands.push('--inspect');\n }\n\n if (startOptions.inspectBrk) {\n commands.push('--inspect-brk'); //stops at beginning of script\n }\n\n if (startOptions.customArgs) {\n commands.push(...startOptions.customArgs);\n }\n\n if (!isWebContainer()) {\n const instrumentation = import.meta.resolve('@opentelemetry/instrumentation/hook.mjs');\n commands.push(\n `--import=${import.meta.resolve('mastra/telemetry-loader')}`,\n '--import=./instrumentation.mjs',\n `--import=${instrumentation}`,\n );\n }\n commands.push('index.mjs');\n\n currentServerProcess = execa(process.execPath, commands, {\n cwd: dotMastraPath,\n env: {\n NODE_ENV: 'production',\n ...Object.fromEntries(env),\n MASTRA_DEV: 'true',\n PORT: port.toString(),\n MASTRA_DEFAULT_STORAGE_URL: `file:${join(dotMastraPath, '..', 'mastra.db')}`,\n },\n stdio: ['inherit', 'inherit', 'inherit', 'ipc'],\n reject: false,\n }) as any as ChildProcess;\n\n if (currentServerProcess?.exitCode && currentServerProcess?.exitCode !== 0) {\n if (!currentServerProcess) {\n throw new Error(`Server failed to start`);\n }\n throw new Error(\n `Server failed to start with error: ${currentServerProcess.stderr || currentServerProcess.stdout}`,\n );\n }\n\n currentServerProcess.on('message', async (message: any) => {\n if (message?.type === 'server-ready') {\n serverIsReady = true;\n\n // Send refresh signal\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Ignore retry errors\n }\n }\n }\n });\n } catch (err) {\n const execaError = err as { stderr?: string; stdout?: string };\n if (execaError.stderr) logger.error('Server error output:', { stderr: execaError.stderr });\n if (execaError.stdout) logger.debug('Server output:', { stdout: execaError.stdout });\n\n if (!serverIsReady) {\n throw err;\n }\n\n // Attempt to restart on error after a delay\n setTimeout(() => {\n if (!isRestarting) {\n errorRestartCount++;\n if (errorRestartCount > ON_ERROR_MAX_RESTARTS) {\n logger.error(`Server failed to start after ${ON_ERROR_MAX_RESTARTS} error attempts. Giving up.`);\n process.exit(1);\n }\n logger.error(\n `Attempting to restart server after error... (Attempt ${errorRestartCount}/${ON_ERROR_MAX_RESTARTS})`,\n );\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startServer(dotMastraPath, port, env, startOptions, errorRestartCount);\n }\n }, 1000);\n }\n};\n\nasync function rebundleAndRestart(\n dotMastraPath: string,\n port: number,\n bundler: DevBundler,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n) {\n if (isRestarting) {\n return;\n }\n\n isRestarting = true;\n try {\n // If current server process is running, stop it\n if (currentServerProcess) {\n logger.debug('Stopping current server...');\n currentServerProcess.kill('SIGINT');\n }\n\n const env = await bundler.loadEnvVars();\n\n await startServer(join(dotMastraPath, 'output'), port, env, startOptions);\n } finally {\n isRestarting = false;\n }\n}\n\nexport async function dev({\n port,\n dir,\n root,\n tools,\n env,\n inspect,\n inspectBrk,\n customArgs,\n}: {\n dir?: string;\n root?: string;\n port: number | null;\n tools?: string[];\n env?: string;\n inspect?: boolean;\n inspectBrk?: boolean;\n customArgs?: string[];\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(process.cwd(), dir)) : join(process.cwd(), 'src', 'mastra');\n const dotMastraPath = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n const startOptions = { inspect, inspectBrk, customArgs };\n\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new DevBundler(env);\n bundler.__setLogger(logger);\n\n // Get the port to use before prepare to set environment variables\n const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n let portToUse = port ?? serverOptions?.port ?? process.env.PORT;\n if (!portToUse || isNaN(Number(portToUse))) {\n const portList = Array.from({ length: 21 }, (_, i) => 4111 + i);\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\n }\n\n await bundler.prepare(dotMastraPath);\n\n const watcher = await bundler.watch(entryFile, dotMastraPath, discoveredTools);\n\n const loadedEnv = await bundler.loadEnvVars();\n\n // spread loadedEnv into process.env\n for (const [key, value] of loadedEnv.entries()) {\n process.env[key] = value;\n }\n\n await startServer(join(dotMastraPath, 'output'), Number(portToUse), loadedEnv, startOptions);\n watcher.on('event', (event: { code: string }) => {\n if (event.code === 'BUNDLE_END') {\n logger.info('[Mastra Dev] - Bundling finished, restarting server...');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n rebundleAndRestart(dotMastraPath, Number(portToUse), bundler, startOptions);\n }\n });\n\n process.on('SIGINT', () => {\n logger.info('[Mastra Dev] - Stopping server...');\n if (currentServerProcess) {\n currentServerProcess.kill();\n }\n\n watcher\n .close()\n .catch(() => {})\n .finally(() => {\n process.exit(0);\n });\n });\n}\n","import { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { dev } from '../dev/dev';\n\nexport const startDevServer = async (args: any) => {\n analytics.trackCommand({\n command: 'dev',\n origin,\n });\n\n if (args?.port) {\n logger.warn('The --port option is deprecated. Use the server key in the Mastra instance instead.');\n }\n\n dev({\n port: args?.port ? parseInt(args.port) : null,\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n inspect: args?.inspect && !args?.inspectBrk,\n inspectBrk: args?.inspectBrk,\n customArgs: args?.customArgs ? args.customArgs.split(',') : [],\n }).catch(err => {\n logger.error(err.message);\n });\n};\n","import { spawn } from 'child_process';\nimport fs from 'fs';\nimport { join } from 'path';\nimport { isWebContainer } from '@webcontainer/env';\nimport { logger } from '../../utils/logger';\ninterface StartOptions {\n dir?: string;\n telemetry?: boolean;\n}\n\nexport async function start(options: StartOptions = {}) {\n const outputDir = options.dir || '.mastra/output';\n const telemetry = options.telemetry ?? true;\n\n try {\n // Check if the output directory exist\n const outputPath = join(process.cwd(), outputDir);\n if (!fs.existsSync(outputPath)) {\n throw new Error(`Output directory ${outputPath} does not exist`);\n }\n\n const commands = [];\n\n if (telemetry && !isWebContainer()) {\n const instrumentation = '@opentelemetry/instrumentation/hook.mjs';\n commands.push('--import=./instrumentation.mjs', `--import=${instrumentation}`);\n }\n\n commands.push('index.mjs');\n\n // Start the server using node\n const server = spawn('node', commands, {\n cwd: outputPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n NODE_ENV: 'production',\n },\n });\n\n server.on('error', err => {\n logger.error(`Failed to start server: ${err.message}`);\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n server.kill('SIGINT');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n server.kill('SIGTERM');\n process.exit(0);\n });\n } catch (error: any) {\n logger.error(`Failed to start Mastra server: ${error.message}`);\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { start } from '../start';\n\nexport const startProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'start',\n args,\n execution: async () => {\n await start({\n dir: args.dir,\n telemetry: !args.noTelemetry,\n });\n },\n origin,\n });\n};\n","#! /usr/bin/env node\nimport { Command } from 'commander';\nimport pc from 'picocolors';\n\nimport type { CLI_ORIGIN } from './analytics/index';\nimport { PosthogAnalytics, setAnalytics } from './analytics/index';\nimport { addScorer } from './commands/actions/add-scorer';\nimport { buildProject } from './commands/actions/build-project';\nimport { createProject } from './commands/actions/create-project';\nimport { deployProject } from './commands/actions/deploy-project';\nimport { initProject } from './commands/actions/init-project';\nimport { lintProject } from './commands/actions/lint-project';\nimport { listScorers } from './commands/actions/list-scorers';\nimport { startDevServer } from './commands/actions/start-dev-server';\nimport { startProject } from './commands/actions/start-project';\nimport { DepsService } from './services/service.deps';\n\nconst depsService = new DepsService();\nconst version = await depsService.getPackageVersion();\n\nexport const analytics = new PosthogAnalytics({\n apiKey: 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT',\n host: 'https://us.posthog.com',\n version: version!,\n});\n\nsetAnalytics(analytics);\n\nconst program = new Command();\n\nexport const origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nprogram\n .name('mastra')\n .version(`${version}`, '-v, --version')\n .addHelpText(\n 'before',\n `\n${pc.bold(pc.cyan('Mastra'))} is a typescript framework for building AI applications, agents, and workflows.\n`,\n )\n .action(() => {\n program.help();\n });\n\nprogram\n .command('create [project-name]')\n .description('Create a new Mastra project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google, or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-t, --timeout [timeout]', 'Configurable timeout for package installation, defaults to 60000 ms')\n .option('-d, --dir <directory>', 'Target directory for Mastra source code (default: src/)')\n .option(\n '-p, --project-name <string>',\n 'Project name that will be used in package.json and as the project directory name.',\n )\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .option(\n '--template [template-name]',\n 'Create project from a template (use template name, public GitHub URL, or leave blank to select from list)',\n )\n .action(createProject);\n\nprogram\n .command('init')\n .description('Initialize Mastra in your project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-d, --dir <directory>', 'Directory for Mastra files to (defaults to src/)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .action(initProject);\n\nprogram\n .command('lint')\n .description('Lint your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .action(lintProject);\n\nprogram\n .command('dev')\n .description('Start mastra server')\n .option('-d, --dir <dir>', 'Path to your mastra folder')\n .option('-r, --root <root>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-p, --port <port>', 'deprecated: Port number for the development server (defaults to 4111)')\n .option('-e, --env <env>', 'Custom env file to include in the dev server')\n .option('-i, --inspect', 'Start the dev server in inspect mode')\n .option('-b, --inspect-brk', 'Start the dev server in inspect mode and break at the beginning of the script')\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types',\n )\n .action(startDevServer);\n\nprogram\n .command('build')\n .description('Build your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra Folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-e, --env <env>', 'Custom env file to include in the build')\n .action(buildProject);\n\nprogram\n .command('deploy')\n .description('Deploy your Mastra project')\n .option('-d, --dir <path>', 'Path to directory')\n .action(deployProject);\n\nprogram\n .command('start')\n .description('Start your built Mastra application')\n .option('-d, --dir <path>', 'Path to your built Mastra output directory (default: .mastra/output)')\n .option('-nt, --no-telemetry', 'Disable telemetry on start')\n .action(startProject);\n\nconst scorersCommand = program.command('scorers').description('Manage scorers for evaluating AI outputs');\n\nscorersCommand\n .command('add [scorer-name]')\n .description('Add a new scorer to your project')\n .option('-d, --dir <path>', 'Path to your Mastra directory (default: auto-detect)')\n .action(addScorer);\n\nscorersCommand.command('list').description('List available scorer templates').action(listScorers);\n\nprogram.parse(process.argv);\n\nexport { PosthogAnalytics } from './analytics/index';\nexport { create } from './commands/create/create';\n"]}
1
+ {"version":3,"sources":["../src/utils/string.ts","../src/commands/scorers/available-scorers.ts","../src/commands/scorers/file-utils.ts","../src/commands/scorers/add-new-scorer.ts","../src/commands/actions/add-scorer.ts","../src/commands/build/BuildBundler.ts","../src/commands/build/build.ts","../src/commands/actions/build-project.ts","../src/commands/actions/create-project.ts","../src/commands/deploy/index.ts","../src/commands/actions/deploy-project.ts","../src/commands/actions/init-project.ts","../src/commands/lint/rules/mastraCoreRule.ts","../src/commands/lint/rules/nextConfigRule.ts","../src/commands/lint/rules/tsConfigRule.ts","../src/commands/lint/rules/index.ts","../src/commands/lint/index.ts","../src/commands/actions/lint-project.ts","../src/commands/scorers/list-all-scorers.ts","../src/commands/actions/list-scorers.ts","../src/commands/dev/DevBundler.ts","../src/commands/dev/dev.ts","../src/commands/actions/start-dev-server.ts","../src/commands/start/start.ts","../src/commands/actions/start-project.ts","../src/index.ts"],"names":["p","pc","FileService","dir","fs","origin","join","getDeployer","nextConfigPath","readFileSync","version","p3","Bundler","process","isWebContainer"],"mappings":"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","file":"index.js","sourcesContent":["export const toCamelCase = (str: string) => {\n return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n};\n","import type { ScorerTemplate } from './types';\n\nexport const AVAILABLE_SCORERS: Array<ScorerTemplate> = [\n // Accuracy and Reliability scorers\n {\n id: 'answer-relevancy',\n name: 'Answer Relevancy',\n description: 'Evaluates how well responses address the input query using LLM',\n category: 'accuracy-and-reliability',\n filename: 'answer-relevancy-scorer.ts',\n },\n {\n id: 'faithfulness',\n name: 'Faithfulness',\n description: 'Measures how accurately responses represent provided context',\n category: 'accuracy-and-reliability',\n filename: 'faithfulness-scorer.ts',\n },\n {\n id: 'hallucination',\n name: 'Hallucination Detection',\n description: 'Detects facts or claims not present in provided context',\n category: 'accuracy-and-reliability',\n filename: 'hallucination-scorer.ts',\n },\n {\n id: 'completeness',\n name: 'Completeness',\n description: 'Checks if responses include all necessary information',\n category: 'accuracy-and-reliability',\n filename: 'completeness-scorer.ts',\n },\n {\n id: 'content-similarity',\n name: 'Content Similarity',\n description: 'Evaluates consistency of information across different phrasings',\n category: 'accuracy-and-reliability',\n filename: 'content-similarity-scorer.ts',\n },\n {\n id: 'textual-difference',\n name: 'Textual Difference',\n description: 'Measures textual differences between strings',\n category: 'accuracy-and-reliability',\n filename: 'textual-difference-scorer.ts',\n },\n\n // Output Quality scorers\n {\n id: 'tone-consistency',\n name: 'Tone Consistency',\n description: 'Measures consistency in formality, complexity, and style',\n category: 'output-quality',\n filename: 'tone-consistency-scorer.ts',\n },\n {\n id: 'toxicity-detection',\n name: 'Toxicity Detection',\n description: 'Detects harmful or inappropriate content in responses',\n category: 'output-quality',\n filename: 'toxicity-detection-scorer.ts',\n },\n {\n id: 'bias-detection',\n name: 'Bias Detection',\n description: 'Detects potential biases in output',\n category: 'output-quality',\n filename: 'bias-detection-scorer.ts',\n },\n {\n id: 'keyword-coverage',\n name: 'Keyword Coverage',\n description: 'Assesses how well output covers important keywords from input',\n category: 'output-quality',\n filename: 'keyword-coverage-scorer.ts',\n },\n];\n","import fs from 'fs';\nimport path from 'path';\nimport * as p from '@clack/prompts';\n\nconst DEFAULT_SCORERS_DIR = 'src/mastra/scorers';\n\nexport function writeScorer(filename: string, content: string, customPath?: string): { ok: true; message: string } {\n const rootDir = process.cwd();\n const scorersPath = customPath || DEFAULT_SCORERS_DIR;\n const fullPath = path.join(rootDir, scorersPath);\n\n if (!fs.existsSync(fullPath)) {\n try {\n fs.mkdirSync(fullPath, { recursive: true });\n p.log.success(`Created scorers directory at ${scorersPath}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to create directory: ${errorMessage}`);\n }\n }\n\n const filePath = path.join(fullPath, filename);\n\n if (fs.existsSync(filePath)) {\n throw new Error(`Skipped: Scorer ${filename} already exists at ${scorersPath}`);\n }\n\n try {\n fs.writeFileSync(filePath, content);\n\n return { ok: true, message: `Created scorer at ${path.relative(rootDir, filePath)}` };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`Failed to write scorer: ${errorMessage}`);\n }\n}\n","import * as p from '@clack/prompts';\nimport pc from 'picocolors';\nimport { DepsService } from '../../services/service.deps';\nimport { toCamelCase } from '../../utils/string';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport { writeScorer } from './file-utils';\nimport type { ScorerTemplate } from './types';\n\nexport async function selectScorer(): Promise<ScorerTemplate[] | null> {\n const options = [];\n\n for (const scorer of AVAILABLE_SCORERS) {\n options.push({\n value: scorer.id,\n label: `${scorer.name}`,\n hint: `${scorer.description}`,\n });\n }\n\n const selectedIds = await p.multiselect({\n message: 'Choose a scorer to add:',\n options,\n });\n\n if (p.isCancel(selectedIds) || typeof selectedIds !== 'object') {\n p.log.info('Scorer selection cancelled.');\n return null;\n }\n\n if (!Array.isArray(selectedIds)) {\n return null;\n }\n\n const selectedScorers = selectedIds\n .map(scorerId => {\n const foundScorer = AVAILABLE_SCORERS.find(s => s.id === scorerId);\n return foundScorer;\n })\n .filter(item => item != undefined);\n\n return selectedScorers;\n}\n\nexport async function addNewScorer(scorerId?: string, customDir?: string) {\n const depService = new DepsService();\n const needsEvals = (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n\n if (needsEvals) {\n await depService.installPackages(['@mastra/evals']);\n }\n\n if (!scorerId) {\n await showInteractivePrompt(customDir);\n return;\n }\n\n const foundScorer = AVAILABLE_SCORERS.find(scorer => scorer.id === scorerId.toLowerCase());\n if (!foundScorer) {\n p.log.error(`Scorer for ${scorerId} not available`);\n return;\n }\n\n const { id, filename } = foundScorer;\n\n try {\n const res = await initializeScorer(id, filename, customDir);\n if (!res.ok) {\n return;\n }\n p.log.success(res.message);\n showSuccessNote();\n } catch (error: unknown) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes('Skipped')) {\n return p.log.warning(errorMessage);\n }\n p.log.error(errorMessage);\n }\n}\n\nasync function initializeScorer(scorerId: string, filename: string, customPath?: string) {\n try {\n const templatePath = `../../templates/scorers/${filename}`;\n const templateModule = await import(templatePath);\n const key = `${toCamelCase(scorerId)}Scorer`;\n const templateContent = templateModule[key];\n const res = writeScorer(filename, templateContent, customPath);\n return res;\n } catch (error) {\n throw error;\n }\n}\n\nfunction showSuccessNote() {\n p.note(`\n ${pc.green('To use: Add the Scorer to your workflow or agent!')}\n `);\n}\n\nasync function showInteractivePrompt(providedCustomDir?: string) {\n let selectedScorers = await selectScorer();\n if (!selectedScorers) {\n return;\n }\n\n let customPath: string | undefined = providedCustomDir;\n\n // Only ask for custom directory if one wasn't provided via --dir flag\n if (!providedCustomDir) {\n const useCustomDir = await p.confirm({\n message: `Would you like to use a custom directory?${pc.gray('(Default: src/mastra/scorers)')}`,\n initialValue: false,\n });\n\n if (p.isCancel(useCustomDir)) {\n p.log.info('Operation cancelled.');\n return;\n }\n\n if (useCustomDir) {\n const dirPath = await p.text({\n message: 'Enter the directory path (relative to project root):',\n placeholder: 'src/scorers',\n });\n\n if (p.isCancel(dirPath)) {\n p.log.info('Operation cancelled.');\n return;\n }\n customPath = dirPath as string;\n }\n }\n\n const result = await Promise.allSettled(\n selectedScorers.map(scorer => {\n const { id, filename } = scorer;\n return initializeScorer(id, filename, customPath);\n }),\n );\n\n result.forEach(op => {\n if (op.status === 'fulfilled') {\n p.log.success(op.value.message);\n return;\n }\n const errorMessage = String(op.reason);\n const coreError = errorMessage.replace('Error:', '').trim();\n if (coreError.includes('Skipped')) {\n return p.log.warning(coreError);\n }\n p.log.error(coreError);\n });\n\n const containsSuccessfulWrites = result.some(item => item.status === 'fulfilled');\n\n if (containsSuccessfulWrites) {\n showSuccessNote();\n }\n return;\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { addNewScorer } from '../scorers/add-new-scorer';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const addScorer = async (scorerName: string | undefined, args: any) => {\n await analytics.trackCommandExecution({\n command: 'scorers-add',\n args: { ...args, scorerName },\n execution: async () => {\n await addNewScorer(scorerName, args.dir);\n },\n origin,\n });\n};\n","import { FileService } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\n\nexport class BuildBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Build');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.production', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch (err) {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n }\n\n async bundle(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n return this._bundle(this.getEntry(), entryFile, outputDirectory, toolsPaths);\n }\n\n protected getEntry(): string {\n return `\n // @ts-ignore\n import { evaluate } from '@mastra/core/eval';\n import { AvailableHooks, registerHook } from '@mastra/core/hooks';\n import { TABLE_EVALS } from '@mastra/core/storage';\n import { checkEvalStorageFields } from '@mastra/core/utils';\n import { mastra } from '#mastra';\n import { createNodeServer, getToolExports } from '#server';\n import { tools } from '#tools';\n // @ts-ignore\n await createNodeServer(mastra, { tools: getToolExports(tools) });\n\n registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {\n evaluate({\n agentName,\n input,\n metric,\n output,\n runId,\n globalRunId: runId,\n instructions,\n });\n });\n\n if (mastra.getStorage()) {\n // start storage init in the background\n mastra.getStorage().init();\n }\n\n registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n const storage = mastra.getStorage();\n if (storage) {\n // Check for required fields\n const logger = mastra?.getLogger();\n const areFieldsValid = checkEvalStorageFields(traceObject, logger);\n if (!areFieldsValid) return;\n\n await storage.insert({\n tableName: TABLE_EVALS,\n record: {\n input: traceObject.input,\n output: traceObject.output,\n result: JSON.stringify(traceObject.result || {}),\n agent_name: traceObject.agentName,\n metric_name: traceObject.metricName,\n instructions: traceObject.instructions,\n test_info: null,\n global_run_id: traceObject.globalRunId,\n run_id: traceObject.runId,\n created_at: new Date().toISOString(),\n },\n });\n }\n });\n `;\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n }\n}\n","import { join } from 'node:path';\n\nimport { FileService } from '../../services/service.file';\n\nimport { BuildBundler } from './BuildBundler';\nimport { getDeployer } from '@mastra/deployer';\nimport { logger } from '../../utils/logger';\n\nexport async function build({\n dir,\n tools,\n root,\n env,\n}: {\n dir?: string;\n tools?: string[];\n root?: string;\n env?: string;\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(rootDir, dir)) : join(rootDir, 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n\n try {\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler(env);\n deployer.__setLogger(logger);\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info(`Build successful, you can now deploy the .mastra/output directory to your target platform.`);\n logger.info(\n `To start the server, run: node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs`,\n );\n return;\n }\n\n logger.info('Deployer found, preparing deployer build...');\n\n platformDeployer.__setLogger(logger);\n await platformDeployer.prepare(outputDirectory);\n await platformDeployer.bundle(mastraEntryFile, outputDirectory, discoveredTools);\n logger.info('You can now deploy the .mastra/output directory to your target platform.');\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Mastra Build failed`, { error });\n }\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { build } from '../build/build';\n\nexport const buildProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'mastra build',\n args,\n execution: async () => {\n await build({\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { create } from '../create/create';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const createProject = async (projectNameArg: any, args: any) => {\n const projectName = projectNameArg || args.projectName;\n await analytics.trackCommandExecution({\n command: 'create',\n args: { ...args, projectName },\n execution: async () => {\n const timeout = args?.timeout ? (args?.timeout === true ? 60000 : parseInt(args?.timeout, 10)) : undefined;\n if (args.default) {\n await create({\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n timeout,\n mcpServer: args.mcp,\n template: args.template,\n });\n return;\n }\n await create({\n components: args.components ? args.components.split(',') : [],\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n timeout,\n projectName,\n directory: args.dir,\n mcpServer: args.mcp,\n template: args.template,\n });\n },\n origin,\n });\n};\n","import { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\n\nimport { FileService } from '../../services/service.file';\nimport { logger } from '../../utils/logger';\n\nexport async function deploy({ dir }: { dir?: string }) {\n let mastraDir = dir || join(process.cwd(), 'src/mastra');\n try {\n const outputDirectory = join(process.cwd(), '.mastra');\n const fs = new FileService();\n const mastraEntryFile = fs.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n const deployer = await getDeployer(mastraEntryFile, outputDirectory);\n\n if (!deployer) {\n logger.warn('No deployer found.');\n return;\n }\n\n try {\n await deployer.prepare(outputDirectory);\n await deployer.bundle(mastraEntryFile, outputDirectory, []);\n try {\n await deployer.deploy(outputDirectory);\n } catch (error) {\n console.error('[Mastra Deploy] - Error deploying:', error);\n }\n } catch (err) {\n if (err instanceof Error) {\n logger.debug(`error: ${err.message}`, { error: err });\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n logger.debug(`error: ${error.message}`, { error });\n }\n logger.warn('No deployer found.');\n }\n}\n","import { config } from 'dotenv';\nimport { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { deploy } from '../deploy';\n\nexport const deployProject = async (args: any) => {\n config({ path: ['.env', '.env.production'] });\n await analytics.trackCommandExecution({\n command: 'mastra deploy',\n args,\n execution: async () => {\n logger.warn(`DEPRECATED: The deploy command is deprecated.\n Please use the mastra build command instead.\n Then deploy .mastra/output to your target platform.\n `);\n await deploy({ dir: args.dir });\n },\n origin,\n });\n};\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { init } from '../init/init';\nimport { checkAndInstallCoreDeps, checkPkgJson, interactivePrompt } from '../init/utils';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const initProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'init',\n args,\n execution: async () => {\n await checkPkgJson();\n await checkAndInstallCoreDeps(args?.example || args?.default);\n\n if (!Object.keys(args).length) {\n const result = await interactivePrompt();\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n });\n return;\n }\n\n if (args?.default) {\n await init({\n directory: 'src/',\n components: ['agents', 'tools', 'workflows'],\n llmProvider: 'openai',\n addExample: true,\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n }\n\n const componentsArr = args.components ? args.components.split(',') : [];\n await init({\n directory: args.dir,\n components: componentsArr,\n llmProvider: args.llm,\n addExample: args.example,\n llmApiKey: args['llm-api-key'],\n configureEditorWithDocsMCP: args.mcp,\n });\n return;\n },\n origin,\n });\n};\n","import { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nexport const mastraCoreRule: LintRule = {\n name: 'mastra-core',\n description: 'Checks if @mastra/core is installed',\n async run(context: LintContext): Promise<boolean> {\n const hasCore = context.mastraPackages.some(pkg => pkg.name === '@mastra/core');\n if (!hasCore) {\n logger.error('@mastra/core is not installed. This package is required for Mastra to work properly.');\n return false;\n }\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readNextConfig(dir: string) {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n const nextConfigContent = readFileSync(nextConfigPath, 'utf-8');\n const configMatch = nextConfigContent.match(/const nextConfig = ({[\\s\\S]*?});/);\n if (!configMatch?.[1]) {\n return null;\n }\n const configStr = configMatch[1].replace(/\\n/g, '').replace(/\\s+/g, ' ');\n return eval(`(${configStr})`);\n } catch {\n return null;\n }\n}\n\nfunction isNextJsProject(dir: string): boolean {\n const nextConfigPath = join(dir, 'next.config.js');\n try {\n readFileSync(nextConfigPath, 'utf-8');\n return true;\n } catch {\n return false;\n }\n}\n// TODO: Move to babel\nexport const nextConfigRule: LintRule = {\n name: 'next-config',\n description: 'Checks if Next.js config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n if (!isNextJsProject(context.rootDir)) {\n return true;\n }\n\n const nextConfig = readNextConfig(context.rootDir);\n if (!nextConfig) {\n return false;\n }\n\n const serverExternals = nextConfig.serverExternalPackages || [];\n const hasMastraExternals = serverExternals.some(\n (pkg: string) => pkg === '@mastra/*' || pkg === '@mastra/core' || pkg.startsWith('@mastra/'),\n );\n\n if (!hasMastraExternals) {\n logger.error('next.config.js is missing Mastra packages in serverExternalPackages');\n logger.error('Please add the following to your next.config.js:');\n logger.error(' serverExternalPackages: [\"@mastra/*\"],');\n return false;\n }\n\n logger.info('Next.js config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport stripJsonComments from 'strip-json-comments';\nimport { logger } from '../../../utils/logger.js';\nimport type { LintContext, LintRule } from './types.js';\n\nfunction readTsConfig(dir: string) {\n const tsConfigPath = join(dir, 'tsconfig.json');\n try {\n const tsConfigContent = readFileSync(tsConfigPath, 'utf-8');\n const cleanTsConfigContent = stripJsonComments(tsConfigContent);\n return JSON.parse(cleanTsConfigContent);\n } catch {\n return null;\n }\n}\n\nexport const tsConfigRule: LintRule = {\n name: 'ts-config',\n description: 'Checks if TypeScript config is properly configured for Mastra packages',\n async run(context: LintContext): Promise<boolean> {\n const tsConfig = readTsConfig(context.rootDir);\n if (!tsConfig) {\n logger.warn('No tsconfig.json found. This might cause issues with Mastra packages.');\n return true; // Not a critical error, just a warning\n }\n\n const { module, moduleResolution } = tsConfig.compilerOptions || {};\n\n // Check if either moduleResolution is 'bundler' or module is 'CommonJS'\n const isValidConfig = moduleResolution === 'bundler' || module === 'CommonJS';\n if (!isValidConfig) {\n logger.error('tsconfig.json has invalid configuration');\n logger.error('Please set either:');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"moduleResolution\": \"bundler\"');\n logger.error(' }');\n logger.error('or');\n logger.error(' \"compilerOptions\": {');\n logger.error(' \"module\": \"CommonJS\"');\n logger.error(' }');\n logger.error('For the recommended TypeScript configuration, see:');\n logger.error('https://mastra.ai/en/docs/getting-started/installation#initialize-typescript');\n return false;\n }\n\n logger.info('TypeScript config is properly configured for Mastra packages');\n return true;\n },\n};\n","import { mastraCoreRule } from './mastraCoreRule.js';\nimport { nextConfigRule } from './nextConfigRule.js';\nimport { tsConfigRule } from './tsConfigRule.js';\nimport type { LintRule } from './types.js';\n\nexport const rules: LintRule[] = [nextConfigRule, tsConfigRule, mastraCoreRule];\n","import { readFileSync } from 'fs';\nimport { join } from 'path';\nimport { getDeployer } from '@mastra/deployer';\nimport { FileService } from '../../services/service.file.js';\nimport { logger } from '../../utils/logger.js';\nimport { BuildBundler } from '../build/BuildBundler.js';\nimport { rules } from './rules/index.js';\nimport type { LintContext } from './rules/types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\ninterface MastraPackage {\n name: string;\n version: string;\n isAlpha: boolean;\n}\n\nfunction readPackageJson(dir: string): PackageJson {\n const packageJsonPath = join(dir, 'package.json');\n try {\n const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');\n return JSON.parse(packageJsonContent);\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Failed to read package.json: ${error.message}`);\n }\n throw error;\n }\n}\n\nfunction getMastraPackages(packageJson: PackageJson): MastraPackage[] {\n const allDependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n\n const mastraPackages = Object.entries(allDependencies).filter(\n ([name]) => name.startsWith('@mastra/') || name === 'mastra',\n );\n\n return mastraPackages.map(([name, version]) => ({\n name,\n version,\n isAlpha: version.includes('alpha'),\n }));\n}\n\nexport async function lint({ dir, root, tools }: { dir?: string; root?: string; tools?: string[] }): Promise<boolean> {\n try {\n const rootDir = root || process.cwd();\n const mastraDir = dir\n ? dir.startsWith('/')\n ? dir\n : join(process.cwd(), dir)\n : join(process.cwd(), 'src', 'mastra');\n const outputDirectory = join(rootDir, '.mastra');\n\n const defaultToolsPath = join(mastraDir, 'tools');\n const discoveredTools = [defaultToolsPath, ...(tools ?? [])];\n\n const packageJson = readPackageJson(rootDir);\n const mastraPackages = getMastraPackages(packageJson);\n\n const context: LintContext = {\n rootDir,\n mastraDir,\n outputDirectory,\n discoveredTools,\n packageJson,\n mastraPackages,\n };\n\n // Run all rules\n const results = await Promise.all(rules.map(rule => rule.run(context)));\n const allRulesPassed = results.every(result => result);\n\n // Run deployer lint if all rules passed\n if (allRulesPassed) {\n const fileService = new FileService();\n const mastraEntryFile = fileService.getFirstExistingFile([\n join(mastraDir, 'index.ts'),\n join(mastraDir, 'index.js'),\n ]);\n const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);\n if (!platformDeployer) {\n const deployer = new BuildBundler();\n await deployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n } else {\n await platformDeployer.lint(mastraEntryFile, outputDirectory, discoveredTools);\n }\n }\n\n return allRulesPassed;\n } catch (error) {\n if (error instanceof Error) {\n logger.error(`Lint check failed: ${error.message}`);\n }\n return false;\n }\n}\n","import { analytics, origin } from '../..';\nimport { lint } from '../lint';\n\nexport const lintProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'lint',\n args,\n execution: async () => {\n await lint({ dir: args.dir, root: args.root, tools: args.tools ? args.tools.split(',') : [] });\n },\n origin,\n });\n};\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport { AVAILABLE_SCORERS } from './available-scorers';\nimport type { ScorerTemplate } from './types';\n\nexport function listAllScorers(): void {\n p.intro(color.inverse(' Available Scorers '));\n\n const groupedScorers = AVAILABLE_SCORERS.reduce(\n (acc, scorer) => {\n if (!acc[scorer.category]) {\n acc[scorer.category] = [];\n }\n acc[scorer.category]!.push(scorer);\n return acc;\n },\n {} as Record<string, ScorerTemplate[]>,\n );\n\n for (const [category, scorers] of Object.entries(groupedScorers)) {\n const categoryLabel = category === 'accuracy-and-reliability' ? 'Accuracy and Reliability' : 'Output Quality';\n\n p.log.info(`${color.bold(color.cyan(categoryLabel))} Scorers:`);\n\n for (const scorer of scorers) {\n p.log.message(` ${color.bold(scorer.name)} ${color.dim(`(${scorer.id})`)}\n ${color.dim(scorer.description)}\n `);\n }\n }\n}\n","import { analytics } from '../..';\nimport type { CLI_ORIGIN } from '../../analytics';\nimport { listAllScorers } from '../scorers/list-all-scorers';\n\nconst origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nexport const listScorers = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'scorers-list',\n args,\n execution: async () => {\n await listAllScorers();\n },\n origin,\n });\n};\n","import { writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { FileService } from '@mastra/deployer';\nimport { createWatcher, getWatcherInputOptions, writeTelemetryConfig, getBundlerOptions } from '@mastra/deployer/build';\nimport { Bundler } from '@mastra/deployer/bundler';\nimport * as fsExtra from 'fs-extra';\nimport type { RollupWatcherEvent } from 'rollup';\n\nexport class DevBundler extends Bundler {\n private customEnvFile?: string;\n\n constructor(customEnvFile?: string) {\n super('Dev');\n this.customEnvFile = customEnvFile;\n }\n\n getEnvFiles(): Promise<string[]> {\n const possibleFiles = ['.env.development', '.env.local', '.env'];\n if (this.customEnvFile) {\n possibleFiles.unshift(this.customEnvFile);\n }\n\n try {\n const fileService = new FileService();\n const envFile = fileService.getFirstExistingFile(possibleFiles);\n\n return Promise.resolve([envFile]);\n } catch {\n // ignore\n }\n\n return Promise.resolve([]);\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const playgroundServePath = join(outputDirectory, this.outputDir, 'playground');\n await fsExtra.copy(join(dirname(__dirname), 'dist/playground'), playgroundServePath, {\n overwrite: true,\n });\n }\n\n async watch(\n entryFile: string,\n outputDirectory: string,\n toolsPaths: (string | string[])[],\n ): ReturnType<typeof createWatcher> {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const envFiles = await this.getEnvFiles();\n\n let sourcemapEnabled = false;\n let transpilePackages: string[] = [];\n try {\n const bundlerOptions = await getBundlerOptions(entryFile, outputDirectory);\n sourcemapEnabled = !!bundlerOptions?.sourcemap;\n transpilePackages = bundlerOptions?.transpilePackages ?? [];\n } catch (error) {\n this.logger.debug('Failed to get bundler options, sourcemap will be disabled', { error });\n }\n\n const inputOptions = await getWatcherInputOptions(\n entryFile,\n 'node',\n {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),\n },\n { sourcemap: sourcemapEnabled, transpilePackages },\n );\n const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);\n\n const outputDir = join(outputDirectory, this.outputDir);\n await writeTelemetryConfig(entryFile, outputDir, this.logger);\n\n const mastraFolder = dirname(entryFile);\n const fileService = new FileService();\n const customInstrumentation = fileService.getFirstExistingFileOrUndefined([\n join(mastraFolder, 'instrumentation.js'),\n join(mastraFolder, 'instrumentation.ts'),\n join(mastraFolder, 'instrumentation.mjs'),\n ]);\n\n await this.writeInstrumentationFile(outputDir, customInstrumentation);\n\n await this.writePackageJson(outputDir, new Map(), {});\n\n const copyPublic = this.copyPublic.bind(this);\n\n const watcher = await createWatcher(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn(`Circular dependency found:\n\\t${warning.message.replace('Circular dependency: ', '')}`);\n }\n },\n plugins: [\n // @ts-ignore - types are good\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n ...inputOptions.plugins,\n {\n name: 'env-watcher',\n buildStart() {\n for (const envFile of envFiles) {\n this.addWatchFile(envFile);\n }\n },\n },\n {\n name: 'public-dir-watcher',\n buildStart() {\n this.addWatchFile(join(dirname(entryFile), 'public'));\n },\n buildEnd() {\n return copyPublic(dirname(entryFile), outputDirectory);\n },\n },\n {\n name: 'tools-watcher',\n async buildEnd() {\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(toolsInputOptions || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(outputDir, 'tools.mjs'),\n `${toolImports.join('\\n')}\n \n export const tools = [${toolsExports.join(', ')}]`,\n );\n },\n },\n ],\n input: {\n index: join(__dirname, 'templates', 'dev.entry.js'),\n ...toolsInputOptions,\n },\n },\n {\n dir: outputDir,\n sourcemap: sourcemapEnabled,\n },\n );\n\n this.logger.info('Starting watcher...');\n return new Promise((resolve, reject) => {\n const cb = (event: RollupWatcherEvent) => {\n if (event.code === 'BUNDLE_END') {\n this.logger.info('Bundling finished, starting server...');\n watcher.off('event', cb);\n resolve(watcher);\n }\n\n if (event.code === 'ERROR') {\n console.log(event);\n this.logger.error('Bundling failed, stopping watcher...');\n watcher.off('event', cb);\n reject(event);\n }\n };\n\n watcher.on('event', cb);\n });\n }\n\n async bundle(): Promise<void> {\n // Do nothing\n }\n}\n","import type { ChildProcess } from 'child_process';\nimport process from 'node:process';\nimport { join } from 'path';\nimport { FileService } from '@mastra/deployer';\nimport { getServerOptions } from '@mastra/deployer/build';\nimport { isWebContainer } from '@webcontainer/env';\nimport { execa } from 'execa';\nimport getPort from 'get-port';\n\nimport { logger } from '../../utils/logger.js';\n\nimport { DevBundler } from './DevBundler';\n\nlet currentServerProcess: ChildProcess | undefined;\nlet isRestarting = false;\nconst ON_ERROR_MAX_RESTARTS = 3;\n\nconst startServer = async (\n dotMastraPath: string,\n port: number,\n env: Map<string, string>,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n errorRestartCount = 0,\n) => {\n let serverIsReady = false;\n try {\n // Restart server\n logger.info('[Mastra Dev] - Starting server...');\n\n const commands = [];\n\n if (startOptions.inspect) {\n commands.push('--inspect');\n }\n\n if (startOptions.inspectBrk) {\n commands.push('--inspect-brk'); //stops at beginning of script\n }\n\n if (startOptions.customArgs) {\n commands.push(...startOptions.customArgs);\n }\n\n if (!isWebContainer()) {\n const instrumentation = import.meta.resolve('@opentelemetry/instrumentation/hook.mjs');\n commands.push(\n `--import=${import.meta.resolve('mastra/telemetry-loader')}`,\n '--import=./instrumentation.mjs',\n `--import=${instrumentation}`,\n );\n }\n commands.push('index.mjs');\n\n currentServerProcess = execa(process.execPath, commands, {\n cwd: dotMastraPath,\n env: {\n NODE_ENV: 'production',\n ...Object.fromEntries(env),\n MASTRA_DEV: 'true',\n PORT: port.toString(),\n MASTRA_DEFAULT_STORAGE_URL: `file:${join(dotMastraPath, '..', 'mastra.db')}`,\n },\n stdio: ['inherit', 'inherit', 'inherit', 'ipc'],\n reject: false,\n }) as any as ChildProcess;\n\n if (currentServerProcess?.exitCode && currentServerProcess?.exitCode !== 0) {\n if (!currentServerProcess) {\n throw new Error(`Server failed to start`);\n }\n throw new Error(\n `Server failed to start with error: ${currentServerProcess.stderr || currentServerProcess.stdout}`,\n );\n }\n\n currentServerProcess.on('message', async (message: any) => {\n if (message?.type === 'server-ready') {\n serverIsReady = true;\n\n // Send refresh signal\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Retry after another second\n await new Promise(resolve => setTimeout(resolve, 1500));\n try {\n await fetch(`http://localhost:${port}/__refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch {\n // Ignore retry errors\n }\n }\n }\n });\n } catch (err) {\n const execaError = err as { stderr?: string; stdout?: string };\n if (execaError.stderr) logger.error('Server error output:', { stderr: execaError.stderr });\n if (execaError.stdout) logger.debug('Server output:', { stdout: execaError.stdout });\n\n if (!serverIsReady) {\n throw err;\n }\n\n // Attempt to restart on error after a delay\n setTimeout(() => {\n if (!isRestarting) {\n errorRestartCount++;\n if (errorRestartCount > ON_ERROR_MAX_RESTARTS) {\n logger.error(`Server failed to start after ${ON_ERROR_MAX_RESTARTS} error attempts. Giving up.`);\n process.exit(1);\n }\n logger.error(\n `Attempting to restart server after error... (Attempt ${errorRestartCount}/${ON_ERROR_MAX_RESTARTS})`,\n );\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startServer(dotMastraPath, port, env, startOptions, errorRestartCount);\n }\n }, 1000);\n }\n};\n\nasync function rebundleAndRestart(\n dotMastraPath: string,\n port: number,\n bundler: DevBundler,\n startOptions: { inspect?: boolean; inspectBrk?: boolean; customArgs?: string[] } = {},\n) {\n if (isRestarting) {\n return;\n }\n\n isRestarting = true;\n try {\n // If current server process is running, stop it\n if (currentServerProcess) {\n logger.debug('Stopping current server...');\n currentServerProcess.kill('SIGINT');\n }\n\n const env = await bundler.loadEnvVars();\n\n await startServer(join(dotMastraPath, 'output'), port, env, startOptions);\n } finally {\n isRestarting = false;\n }\n}\n\nexport async function dev({\n port,\n dir,\n root,\n tools,\n env,\n inspect,\n inspectBrk,\n customArgs,\n}: {\n dir?: string;\n root?: string;\n port: number | null;\n tools?: string[];\n env?: string;\n inspect?: boolean;\n inspectBrk?: boolean;\n customArgs?: string[];\n}) {\n const rootDir = root || process.cwd();\n const mastraDir = dir ? (dir.startsWith('/') ? dir : join(process.cwd(), dir)) : join(process.cwd(), 'src', 'mastra');\n const dotMastraPath = join(rootDir, '.mastra');\n\n // You cannot express an \"include all js/ts except these\" in one single string glob pattern so by default an array is passed to negate test files.\n const defaultToolsPath = join(mastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${join(mastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${join(mastraDir, 'tools/**/__tests__/**')}`,\n ];\n // We pass an array to globby to allow for the aforementioned negations\n const defaultTools = [defaultToolsPath, ...defaultToolsIgnorePaths];\n const discoveredTools = [defaultTools, ...(tools ?? [])];\n const startOptions = { inspect, inspectBrk, customArgs };\n\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([join(mastraDir, 'index.ts'), join(mastraDir, 'index.js')]);\n\n const bundler = new DevBundler(env);\n bundler.__setLogger(logger);\n\n // Get the port to use before prepare to set environment variables\n const serverOptions = await getServerOptions(entryFile, join(dotMastraPath, 'output'));\n let portToUse = port ?? serverOptions?.port ?? process.env.PORT;\n if (!portToUse || isNaN(Number(portToUse))) {\n const portList = Array.from({ length: 21 }, (_, i) => 4111 + i);\n portToUse = String(\n await getPort({\n port: portList,\n }),\n );\n }\n\n await bundler.prepare(dotMastraPath);\n\n const watcher = await bundler.watch(entryFile, dotMastraPath, discoveredTools);\n\n const loadedEnv = await bundler.loadEnvVars();\n\n // spread loadedEnv into process.env\n for (const [key, value] of loadedEnv.entries()) {\n process.env[key] = value;\n }\n\n await startServer(join(dotMastraPath, 'output'), Number(portToUse), loadedEnv, startOptions);\n watcher.on('event', (event: { code: string }) => {\n if (event.code === 'BUNDLE_END') {\n logger.info('[Mastra Dev] - Bundling finished, restarting server...');\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n rebundleAndRestart(dotMastraPath, Number(portToUse), bundler, startOptions);\n }\n });\n\n process.on('SIGINT', () => {\n logger.info('[Mastra Dev] - Stopping server...');\n if (currentServerProcess) {\n currentServerProcess.kill();\n }\n\n watcher\n .close()\n .catch(() => {})\n .finally(() => {\n process.exit(0);\n });\n });\n}\n","import { analytics, origin } from '../..';\nimport { logger } from '../../utils/logger';\nimport { dev } from '../dev/dev';\n\nexport const startDevServer = async (args: any) => {\n analytics.trackCommand({\n command: 'dev',\n origin,\n });\n\n if (args?.port) {\n logger.warn('The --port option is deprecated. Use the server key in the Mastra instance instead.');\n }\n\n dev({\n port: args?.port ? parseInt(args.port) : null,\n dir: args?.dir,\n root: args?.root,\n tools: args?.tools ? args.tools.split(',') : [],\n env: args?.env,\n inspect: args?.inspect && !args?.inspectBrk,\n inspectBrk: args?.inspectBrk,\n customArgs: args?.customArgs ? args.customArgs.split(',') : [],\n }).catch(err => {\n logger.error(err.message);\n });\n};\n","import { spawn } from 'child_process';\nimport fs from 'fs';\nimport { join } from 'path';\nimport { isWebContainer } from '@webcontainer/env';\nimport { logger } from '../../utils/logger';\ninterface StartOptions {\n dir?: string;\n telemetry?: boolean;\n}\n\nexport async function start(options: StartOptions = {}) {\n const outputDir = options.dir || '.mastra/output';\n const telemetry = options.telemetry ?? true;\n\n try {\n // Check if the output directory exist\n const outputPath = join(process.cwd(), outputDir);\n if (!fs.existsSync(outputPath)) {\n throw new Error(`Output directory ${outputPath} does not exist`);\n }\n\n const commands = [];\n\n if (telemetry && !isWebContainer()) {\n const instrumentation = '@opentelemetry/instrumentation/hook.mjs';\n commands.push('--import=./instrumentation.mjs', `--import=${instrumentation}`);\n }\n\n commands.push('index.mjs');\n\n // Start the server using node\n const server = spawn('node', commands, {\n cwd: outputPath,\n stdio: 'inherit',\n env: {\n ...process.env,\n NODE_ENV: 'production',\n },\n });\n\n server.on('error', err => {\n logger.error(`Failed to start server: ${err.message}`);\n process.exit(1);\n });\n\n process.on('SIGINT', () => {\n server.kill('SIGINT');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n server.kill('SIGTERM');\n process.exit(0);\n });\n } catch (error: any) {\n logger.error(`Failed to start Mastra server: ${error.message}`);\n process.exit(1);\n }\n}\n","import { analytics, origin } from '../..';\nimport { start } from '../start';\n\nexport const startProject = async (args: any) => {\n await analytics.trackCommandExecution({\n command: 'start',\n args,\n execution: async () => {\n await start({\n dir: args.dir,\n telemetry: !args.noTelemetry,\n });\n },\n origin,\n });\n};\n","#! /usr/bin/env node\nimport { Command } from 'commander';\nimport pc from 'picocolors';\n\nimport type { CLI_ORIGIN } from './analytics/index';\nimport { PosthogAnalytics, setAnalytics } from './analytics/index';\nimport { addScorer } from './commands/actions/add-scorer';\nimport { buildProject } from './commands/actions/build-project';\nimport { createProject } from './commands/actions/create-project';\nimport { deployProject } from './commands/actions/deploy-project';\nimport { initProject } from './commands/actions/init-project';\nimport { lintProject } from './commands/actions/lint-project';\nimport { listScorers } from './commands/actions/list-scorers';\nimport { startDevServer } from './commands/actions/start-dev-server';\nimport { startProject } from './commands/actions/start-project';\nimport { DepsService } from './services/service.deps';\n\nconst depsService = new DepsService();\nconst version = await depsService.getPackageVersion();\n\nexport const analytics = new PosthogAnalytics({\n apiKey: 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT',\n host: 'https://us.posthog.com',\n version: version!,\n});\n\nsetAnalytics(analytics);\n\nconst program = new Command();\n\nexport const origin = process.env.MASTRA_ANALYTICS_ORIGIN as CLI_ORIGIN;\n\nprogram\n .name('mastra')\n .version(`${version}`, '-v, --version')\n .addHelpText(\n 'before',\n `\n${pc.bold(pc.cyan('Mastra'))} is a typescript framework for building AI applications, agents, and workflows.\n`,\n )\n .action(() => {\n program.help();\n });\n\nprogram\n .command('create [project-name]')\n .description('Create a new Mastra project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google, or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-t, --timeout [timeout]', 'Configurable timeout for package installation, defaults to 60000 ms')\n .option('-d, --dir <directory>', 'Target directory for Mastra source code (default: src/)')\n .option(\n '-p, --project-name <string>',\n 'Project name that will be used in package.json and as the project directory name.',\n )\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .option(\n '--template [template-name]',\n 'Create project from a template (use template name, public GitHub URL, or leave blank to select from list)',\n )\n .action(createProject);\n\nprogram\n .command('init')\n .description('Initialize Mastra in your project')\n .option('--default', 'Quick start with defaults(src, OpenAI, examples)')\n .option('-d, --dir <directory>', 'Directory for Mastra files to (defaults to src/)')\n .option('-c, --components <components>', 'Comma-separated list of components (agents, tools, workflows)')\n .option('-l, --llm <model-provider>', 'Default model provider (openai, anthropic, groq, google or cerebras))')\n .option('-k, --llm-api-key <api-key>', 'API key for the model provider')\n .option('-e, --example', 'Include example code')\n .option('-n, --no-example', 'Do not include example code')\n .option('-m, --mcp <editor>', 'MCP Server for code editor (cursor, cursor-global, windsurf, vscode)')\n .action(initProject);\n\nprogram\n .command('lint')\n .description('Lint your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .action(lintProject);\n\nprogram\n .command('dev')\n .description('Start mastra server')\n .option('-d, --dir <dir>', 'Path to your mastra folder')\n .option('-r, --root <root>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-p, --port <port>', 'deprecated: Port number for the development server (defaults to 4111)')\n .option('-e, --env <env>', 'Custom env file to include in the dev server')\n .option('-i, --inspect', 'Start the dev server in inspect mode')\n .option('-b, --inspect-brk', 'Start the dev server in inspect mode and break at the beginning of the script')\n .option(\n '-c, --custom-args <args>',\n 'Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types',\n )\n .action(startDevServer);\n\nprogram\n .command('build')\n .description('Build your Mastra project')\n .option('-d, --dir <path>', 'Path to your Mastra Folder')\n .option('-r, --root <path>', 'Path to your root folder')\n .option('-t, --tools <toolsDirs>', 'Comma-separated list of paths to tool files to include')\n .option('-e, --env <env>', 'Custom env file to include in the build')\n .action(buildProject);\n\nprogram\n .command('deploy')\n .description('Deploy your Mastra project')\n .option('-d, --dir <path>', 'Path to directory')\n .action(deployProject);\n\nprogram\n .command('start')\n .description('Start your built Mastra application')\n .option('-d, --dir <path>', 'Path to your built Mastra output directory (default: .mastra/output)')\n .option('-nt, --no-telemetry', 'Disable telemetry on start')\n .action(startProject);\n\nconst scorersCommand = program.command('scorers').description('Manage scorers for evaluating AI outputs');\n\nscorersCommand\n .command('add [scorer-name]')\n .description('Add a new scorer to your project')\n .option('-d, --dir <path>', 'Path to your Mastra directory (default: auto-detect)')\n .action(addScorer);\n\nscorersCommand.command('list').description('List available scorer templates').action(listScorers);\n\nprogram.parse(process.argv);\n\nexport { PosthogAnalytics } from './analytics/index';\nexport { create } from './commands/create/create';\n"]}