@mastra/deployer-cloud 0.0.0-safe-stringify-telemetry-20251205024938 → 0.0.0-salesman-20260127182805

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 (722) hide show
  1. package/CHANGELOG.md +395 -110
  2. package/README.md +2 -3
  3. package/dist/index.cjs +39 -50
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.ts +7 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +39 -50
  8. package/dist/index.js.map +1 -1
  9. package/dist/studio/assets/GeistMonoVF-BHyMa335.woff +0 -0
  10. package/dist/studio/assets/InterVariable-H_M6nIbt.ttf +0 -0
  11. package/dist/studio/assets/TASAExplorerVF-FO8P5krV.woff2 +0 -0
  12. package/dist/studio/assets/abap-BmX1VptR.js +1 -0
  13. package/dist/studio/assets/abap-DsBKuouk.js +1 -0
  14. package/dist/studio/assets/abnf-B8v1VnoK.js +1 -0
  15. package/dist/studio/assets/actionscript-3-D_z4Izcz.js +1 -0
  16. package/dist/studio/assets/actionscript-BYjcGsUH.js +1 -0
  17. package/dist/studio/assets/ada-727ZlQH0.js +1 -0
  18. package/dist/studio/assets/ada-Zs80sjPR.js +1 -0
  19. package/dist/studio/assets/agda-D5xgp9U7.js +1 -0
  20. package/dist/studio/assets/al-DOsSj-eq.js +1 -0
  21. package/dist/studio/assets/andromeeda-C3khCPGq.js +1 -0
  22. package/dist/studio/assets/angular-html-LfdN0zeE.js +1 -0
  23. package/dist/studio/assets/angular-ts-CKsD7JZE.js +1 -0
  24. package/dist/studio/assets/antlr4-CWUVE5yU.js +1 -0
  25. package/dist/studio/assets/apache-Dn00JSTd.js +1 -0
  26. package/dist/studio/assets/apacheconf-D3ZPemJl.js +1 -0
  27. package/dist/studio/assets/apex-COJ4H7py.js +1 -0
  28. package/dist/studio/assets/apex-fEAi43Za.js +1 -0
  29. package/dist/studio/assets/apl-B4CMkyY2.js +1 -0
  30. package/dist/studio/assets/apl-BBq3IX1j.js +1 -0
  31. package/dist/studio/assets/apl-Ww56fIDj.js +1 -0
  32. package/dist/studio/assets/applescript-Bu5BbsvL.js +1 -0
  33. package/dist/studio/assets/applescript-w7n9duuI.js +1 -0
  34. package/dist/studio/assets/aql-BXb6UO-3.js +1 -0
  35. package/dist/studio/assets/ara-7O62HKoU.js +1 -0
  36. package/dist/studio/assets/arduino-C8QM0OQn.js +1 -0
  37. package/dist/studio/assets/arff-BrQjhwtt.js +1 -0
  38. package/dist/studio/assets/asciiarmor-Df11BRmG.js +1 -0
  39. package/dist/studio/assets/asciidoc-BPT9niGB.js +1 -0
  40. package/dist/studio/assets/asciidoc-CHBoSbWT.js +1 -0
  41. package/dist/studio/assets/asm-Dhn9LcZ4.js +1 -0
  42. package/dist/studio/assets/asm6502-jvREwoCv.js +1 -0
  43. package/dist/studio/assets/asmatmel-hiDimdfR.js +1 -0
  44. package/dist/studio/assets/asn1-EdZsLKOL.js +1 -0
  45. package/dist/studio/assets/aspnet-DB4ZmYwQ.js +1 -0
  46. package/dist/studio/assets/asterisk-B-8jnY81.js +1 -0
  47. package/dist/studio/assets/astro-CqkE3fuf.js +1 -0
  48. package/dist/studio/assets/aurora-x-D-2ljcwZ.js +1 -0
  49. package/dist/studio/assets/autohotkey-UT_g0hLZ.js +1 -0
  50. package/dist/studio/assets/autoit-B1H_KRJV.js +1 -0
  51. package/dist/studio/assets/avisynth-CFLSMEAW.js +1 -0
  52. package/dist/studio/assets/avro-idl-CQ9nfB_-.js +1 -0
  53. package/dist/studio/assets/awk-eg146-Ew.js +1 -0
  54. package/dist/studio/assets/ayu-dark-Cv9koXgw.js +1 -0
  55. package/dist/studio/assets/ballerina-Du268qiB.js +1 -0
  56. package/dist/studio/assets/bash-CefCgV5_.js +1 -0
  57. package/dist/studio/assets/bash-CjBKkdnn.js +1 -0
  58. package/dist/studio/assets/basic-CUbQHpd7.js +1 -0
  59. package/dist/studio/assets/basic-DBS9NaGG.js +1 -0
  60. package/dist/studio/assets/bat-fje9CFhw.js +1 -0
  61. package/dist/studio/assets/batch-DKC2ThHs.js +1 -0
  62. package/dist/studio/assets/bbcode-COB0PuKD.js +1 -0
  63. package/dist/studio/assets/beancount-BwXTMy5W.js +1 -0
  64. package/dist/studio/assets/berry-3xVqZejG.js +1 -0
  65. package/dist/studio/assets/bibtex-xW4inM5L.js +1 -0
  66. package/dist/studio/assets/bicep-BW8uPpDM.js +1 -0
  67. package/dist/studio/assets/bicep-DHo0CJ0O.js +1 -0
  68. package/dist/studio/assets/birb-COP218Tn.js +1 -0
  69. package/dist/studio/assets/bison-Ck3aDAwS.js +1 -0
  70. package/dist/studio/assets/blade-a8OxSdnT.js +1 -0
  71. package/dist/studio/assets/bnf-B_OsuHji.js +1 -0
  72. package/dist/studio/assets/brainfuck-B5fpwex8.js +1 -0
  73. package/dist/studio/assets/brainfuck-C4LP7Hcl.js +1 -0
  74. package/dist/studio/assets/brightscript-BFnhpFwy.js +1 -0
  75. package/dist/studio/assets/bro-BQi0qjkv.js +1 -0
  76. package/dist/studio/assets/bsl-CMEN0byD.js +1 -0
  77. package/dist/studio/assets/bsl-Dgyn0ogV.js +1 -0
  78. package/dist/studio/assets/c-C3t2pwGQ.js +1 -0
  79. package/dist/studio/assets/c-Chj41WCq.js +1 -0
  80. package/dist/studio/assets/c-kgVuzdLE.js +1 -0
  81. package/dist/studio/assets/cadence-DNquZEk8.js +1 -0
  82. package/dist/studio/assets/cairo--RitsXJZ.js +1 -0
  83. package/dist/studio/assets/catppuccin-frappe-CD_QflpE.js +1 -0
  84. package/dist/studio/assets/catppuccin-latte-DRW-0cLl.js +1 -0
  85. package/dist/studio/assets/catppuccin-macchiato-C-_shW-Y.js +1 -0
  86. package/dist/studio/assets/catppuccin-mocha-LGGdnPYs.js +1 -0
  87. package/dist/studio/assets/cfscript-CP9z1rBv.js +1 -0
  88. package/dist/studio/assets/chaiscript-C8dTN9IU.js +1 -0
  89. package/dist/studio/assets/chunk-REDZDNFN-B0Cu9WTe-W96DsEQL.js +1 -0
  90. package/dist/studio/assets/chunk-REDZDNFN-CiFWbWC0.js +1 -0
  91. package/dist/studio/assets/cil-DUp8tdeD.js +1 -0
  92. package/dist/studio/assets/clarity-BHOwM8T6.js +1 -0
  93. package/dist/studio/assets/clike-B0wmOoU7.js +1 -0
  94. package/dist/studio/assets/clike-B5tY_8Hg.js +1 -0
  95. package/dist/studio/assets/clike-B9uivgTg.js +1 -0
  96. package/dist/studio/assets/clojure-BMjYHr_A.js +1 -0
  97. package/dist/studio/assets/clojure-C30hLx0W.js +1 -0
  98. package/dist/studio/assets/clojure-DxSadP1t.js +1 -0
  99. package/dist/studio/assets/cmake-BQqOBYOt.js +1 -0
  100. package/dist/studio/assets/cmake-DbXoA79R.js +1 -0
  101. package/dist/studio/assets/cmake-aab7_zj4.js +1 -0
  102. package/dist/studio/assets/cobol-CWcv1MsR.js +1 -0
  103. package/dist/studio/assets/cobol-Dz953hvx.js +1 -0
  104. package/dist/studio/assets/cobol-PTqiYgYu.js +1 -0
  105. package/dist/studio/assets/codeowners-Bp6g37R7.js +1 -0
  106. package/dist/studio/assets/codeql-sacFqUAJ.js +1 -0
  107. package/dist/studio/assets/coffee-dyiR41kL.js +1 -0
  108. package/dist/studio/assets/coffeescript-DGnj_PQE.js +1 -0
  109. package/dist/studio/assets/coffeescript-S37ZYGWr.js +1 -0
  110. package/dist/studio/assets/common-lisp-C7gG9l05.js +1 -0
  111. package/dist/studio/assets/commonlisp-DBKNyK5s.js +1 -0
  112. package/dist/studio/assets/concurnas-I5N0qv9c.js +1 -0
  113. package/dist/studio/assets/coq-D4FZ1iqb.js +1 -0
  114. package/dist/studio/assets/coq-Dsg_Bt_b.js +1 -0
  115. package/dist/studio/assets/core-CTEf-Ez7.js +1 -0
  116. package/dist/studio/assets/cpp-BGH00Z2T.js +1 -0
  117. package/dist/studio/assets/cpp-BdJVwJpi.js +1 -0
  118. package/dist/studio/assets/cpp-BksuvNSY.js +1 -0
  119. package/dist/studio/assets/crystal-B54yJ5Ao.js +1 -0
  120. package/dist/studio/assets/crystal-DtDmRg-F.js +1 -0
  121. package/dist/studio/assets/crystal-SjHAIU92.js +1 -0
  122. package/dist/studio/assets/csharp-BS2PtPBd.js +1 -0
  123. package/dist/studio/assets/csharp-Cd5Udg29.js +1 -0
  124. package/dist/studio/assets/csharp-D9R-vmeu.js +1 -0
  125. package/dist/studio/assets/cshtml-ilM0uT5u.js +1 -0
  126. package/dist/studio/assets/csp-B_FjmqC1.js +1 -0
  127. package/dist/studio/assets/css-BPhBrDlE.js +1 -0
  128. package/dist/studio/assets/css-BnMrqG3P.js +1 -0
  129. package/dist/studio/assets/css-Bp7I34DC.js +1 -0
  130. package/dist/studio/assets/css-CF9HHZb0.js +1 -0
  131. package/dist/studio/assets/css-extras-o0SSYaVQ.js +1 -0
  132. package/dist/studio/assets/csv-B0qRVHPH.js +1 -0
  133. package/dist/studio/assets/csv-a6vEMYtz.js +1 -0
  134. package/dist/studio/assets/cue-DtFQj3wx.js +1 -0
  135. package/dist/studio/assets/cypher-C_CwsFkJ.js +1 -0
  136. package/dist/studio/assets/cypher-DDqNWq2a.js +1 -0
  137. package/dist/studio/assets/cypher-m2LEI-9-.js +1 -0
  138. package/dist/studio/assets/d-BoXegm-a.js +1 -0
  139. package/dist/studio/assets/d-DME6C9px.js +1 -0
  140. package/dist/studio/assets/d-pRatUO7H.js +1 -0
  141. package/dist/studio/assets/dark-plus-C3mMm8J8.js +1 -0
  142. package/dist/studio/assets/dart-B9wLZaAG.js +1 -0
  143. package/dist/studio/assets/dart-BbTsNVuQ.js +1 -0
  144. package/dist/studio/assets/dataweave-CzHKnREc.js +1 -0
  145. package/dist/studio/assets/dax-ClGRhx96.js +1 -0
  146. package/dist/studio/assets/dax-unweQ6cu.js +1 -0
  147. package/dist/studio/assets/desktop-DEIpsLCJ.js +1 -0
  148. package/dist/studio/assets/dhall-DMQ5wbf8.js +1 -0
  149. package/dist/studio/assets/diff-BgYniUM_.js +1 -0
  150. package/dist/studio/assets/diff-BmRwZeXB.js +3 -0
  151. package/dist/studio/assets/diff-DbItnlRl.js +1 -0
  152. package/dist/studio/assets/django-CwBu05QB.js +1 -0
  153. package/dist/studio/assets/dns-zone-file-DPdVC7ll.js +1 -0
  154. package/dist/studio/assets/docker-COcR7UxN.js +1 -0
  155. package/dist/studio/assets/docker-Cunuib4Z.js +1 -0
  156. package/dist/studio/assets/dockerfile-BKs6k2Af.js +1 -0
  157. package/dist/studio/assets/dot-BXSyu2gD.js +1 -0
  158. package/dist/studio/assets/dotenv-BjQB5zDj.js +1 -0
  159. package/dist/studio/assets/dracula-BzJJZx-M.js +1 -0
  160. package/dist/studio/assets/dracula-soft-BXkSAIEj.js +1 -0
  161. package/dist/studio/assets/dream-maker-C-nORZOA.js +1 -0
  162. package/dist/studio/assets/dtd-DF_7sFjM.js +1 -0
  163. package/dist/studio/assets/dylan-DwRh75JA.js +1 -0
  164. package/dist/studio/assets/ebnf-CDyGwa7X.js +1 -0
  165. package/dist/studio/assets/ebnf-CEKzj-rA.js +1 -0
  166. package/dist/studio/assets/ecl-Cabwm37j.js +1 -0
  167. package/dist/studio/assets/edge-D5gP-w-T.js +1 -0
  168. package/dist/studio/assets/editorconfig-6NsuV8XP.js +1 -0
  169. package/dist/studio/assets/eiffel-CnydiIhH.js +1 -0
  170. package/dist/studio/assets/eiffel-DGRH3lpu.js +1 -0
  171. package/dist/studio/assets/ejs-DCRJFnck.js +1 -0
  172. package/dist/studio/assets/elixir-B8uqwJ9a.js +1 -0
  173. package/dist/studio/assets/elixir-CLiX3zqd.js +1 -0
  174. package/dist/studio/assets/elm-CmHSxxaM.js +1 -0
  175. package/dist/studio/assets/elm-jh4AOLZi.js +1 -0
  176. package/dist/studio/assets/elm-vLlmbW-K.js +1 -0
  177. package/dist/studio/assets/emacs-lisp-BX77sIaO.js +1 -0
  178. package/dist/studio/assets/erb-BYTLMnw6.js +1 -0
  179. package/dist/studio/assets/erb-BqqcYMn-.js +1 -0
  180. package/dist/studio/assets/erlang-B-DoSBHF.js +1 -0
  181. package/dist/studio/assets/erlang-BNw1qcRV.js +1 -0
  182. package/dist/studio/assets/erlang-DbciTMoe.js +1 -0
  183. package/dist/studio/assets/etlua-C1Kn_AuK.js +1 -0
  184. package/dist/studio/assets/everforest-dark-BgDCqdQA.js +1 -0
  185. package/dist/studio/assets/everforest-light-C8M2exoo.js +1 -0
  186. package/dist/studio/assets/excel-formula-mlLMHs8T.js +1 -0
  187. package/dist/studio/assets/factor-DUqLR0jU.js +1 -0
  188. package/dist/studio/assets/factor-kuTfRLto.js +1 -0
  189. package/dist/studio/assets/false-A9l8RGSg.js +1 -0
  190. package/dist/studio/assets/fcl-Kvtd6kyn.js +1 -0
  191. package/dist/studio/assets/fennel-bCA53EVm.js +1 -0
  192. package/dist/studio/assets/firestore-security-rules-Dr04xIUk.js +1 -0
  193. package/dist/studio/assets/fish-w-ucz2PV.js +1 -0
  194. package/dist/studio/assets/flow-DZQlEvIm.js +1 -0
  195. package/dist/studio/assets/fluent-Dayu4EKP.js +1 -0
  196. package/dist/studio/assets/forth-Ffai-XNe.js +1 -0
  197. package/dist/studio/assets/fortran-CEon_BGp.js +1 -0
  198. package/dist/studio/assets/fortran-DYz_wnZ1.js +1 -0
  199. package/dist/studio/assets/fortran-fixed-form-TqA4NnZg.js +1 -0
  200. package/dist/studio/assets/fortran-free-form-DKXYxT9g.js +1 -0
  201. package/dist/studio/assets/fsharp-Bw_EyUFi.js +1 -0
  202. package/dist/studio/assets/fsharp-XplgxFYe.js +1 -0
  203. package/dist/studio/assets/ftl-DMtz9FRG.js +1 -0
  204. package/dist/studio/assets/gap-DNyeT5oz.js +1 -0
  205. package/dist/studio/assets/gas-Bneqetm1.js +1 -0
  206. package/dist/studio/assets/gcode-C1yxjH2s.js +1 -0
  207. package/dist/studio/assets/gdresource-BHYsBjWJ.js +1 -0
  208. package/dist/studio/assets/gdscript-BSSD47oW.js +1 -0
  209. package/dist/studio/assets/gdscript-DfxzS6Rs.js +1 -0
  210. package/dist/studio/assets/gdshader-SKMF96pI.js +1 -0
  211. package/dist/studio/assets/gedcom-BPzZ5Xqr.js +1 -0
  212. package/dist/studio/assets/genie-ajMbGru0.js +1 -0
  213. package/dist/studio/assets/gherkin--30QC5Em.js +1 -0
  214. package/dist/studio/assets/gherkin-BsKqX6rJ.js +1 -0
  215. package/dist/studio/assets/gherkin-heZmZLOM.js +1 -0
  216. package/dist/studio/assets/git-UhalX0Na.js +1 -0
  217. package/dist/studio/assets/git-commit-i4q6IMui.js +1 -0
  218. package/dist/studio/assets/git-rebase-B-v9cOL2.js +1 -0
  219. package/dist/studio/assets/github-dark-DHJKELXO.js +1 -0
  220. package/dist/studio/assets/github-dark-default-Cuk6v7N8.js +1 -0
  221. package/dist/studio/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  222. package/dist/studio/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  223. package/dist/studio/assets/github-light-DAi9KRSo.js +1 -0
  224. package/dist/studio/assets/github-light-default-D7oLnXFd.js +1 -0
  225. package/dist/studio/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  226. package/dist/studio/assets/gleam-B430Bg39.js +1 -0
  227. package/dist/studio/assets/glimmer-js-D-cwc0-E.js +1 -0
  228. package/dist/studio/assets/glimmer-ts-pgjy16dm.js +1 -0
  229. package/dist/studio/assets/glsl-BYk7xBnV.js +1 -0
  230. package/dist/studio/assets/glsl-DBO2IWDn.js +1 -0
  231. package/dist/studio/assets/gml-CMuOcEZ8.js +1 -0
  232. package/dist/studio/assets/gn-hq4kZko1.js +1 -0
  233. package/dist/studio/assets/gnuplot-CM8KxXT1.js +1 -0
  234. package/dist/studio/assets/go-B1SYOhNW.js +1 -0
  235. package/dist/studio/assets/go-DqWePgDx.js +1 -0
  236. package/dist/studio/assets/go-module-DqYjC_OG.js +1 -0
  237. package/dist/studio/assets/graphql-B29B6R3D.js +1 -0
  238. package/dist/studio/assets/graphql-cDcHW_If.js +1 -0
  239. package/dist/studio/assets/groovy-CLYCOXbW.js +1 -0
  240. package/dist/studio/assets/groovy-D9Dt4D0W.js +1 -0
  241. package/dist/studio/assets/groovy-DkBy-JyN.js +1 -0
  242. package/dist/studio/assets/hack-D1yCygmZ.js +1 -0
  243. package/dist/studio/assets/haml-B2EZWmdv.js +1 -0
  244. package/dist/studio/assets/haml-BtpU8rkF.js +1 -0
  245. package/dist/studio/assets/handlebars-BQGss363.js +1 -0
  246. package/dist/studio/assets/handlebars-CVg99DoR.js +1 -0
  247. package/dist/studio/assets/haskell-BILxekzW.js +1 -0
  248. package/dist/studio/assets/haskell-Cw1EW3IL.js +1 -0
  249. package/dist/studio/assets/haskell-CzvNe0Nk.js +1 -0
  250. package/dist/studio/assets/haskell-Ds42Eazu.js +1 -0
  251. package/dist/studio/assets/haxe-BoCpuK5h.js +1 -0
  252. package/dist/studio/assets/haxe-C5wWYbrZ.js +1 -0
  253. package/dist/studio/assets/haxe-H-WmDvRZ.js +1 -0
  254. package/dist/studio/assets/hcl-CIGj8-w7.js +1 -0
  255. package/dist/studio/assets/hcl-HzYwdGDm.js +1 -0
  256. package/dist/studio/assets/hjson-T-Tgc4AT.js +1 -0
  257. package/dist/studio/assets/hlsl-Ij9powi4.js +1 -0
  258. package/dist/studio/assets/hlsl-ifBTmRxC.js +1 -0
  259. package/dist/studio/assets/hoon-CxYkcZeC.js +1 -0
  260. package/dist/studio/assets/houston-DnULxvSX.js +1 -0
  261. package/dist/studio/assets/hpkp-CWtwmcQv.js +1 -0
  262. package/dist/studio/assets/hsts-BTb0g0TG.js +1 -0
  263. package/dist/studio/assets/html-C2L_23MC.js +1 -0
  264. package/dist/studio/assets/html-derivative-CSfWNPLT.js +1 -0
  265. package/dist/studio/assets/http-CeywWbt5.js +1 -0
  266. package/dist/studio/assets/http-DBlCnlav.js +1 -0
  267. package/dist/studio/assets/http-FRrOvY1W.js +1 -0
  268. package/dist/studio/assets/hxml-TIA70rKU.js +1 -0
  269. package/dist/studio/assets/hy-BMj5Y0dO.js +1 -0
  270. package/dist/studio/assets/ichigojam-uUfV08qC.js +1 -0
  271. package/dist/studio/assets/icon-D6N66l4q.js +1 -0
  272. package/dist/studio/assets/icu-message-format-DXuTKBiZ.js +1 -0
  273. package/dist/studio/assets/idl-BEugSyMb.js +1 -0
  274. package/dist/studio/assets/idris-Co7kPSwk.js +1 -0
  275. package/dist/studio/assets/iecst-CHUVddRA.js +1 -0
  276. package/dist/studio/assets/ignore-BDoZRrgy.js +1 -0
  277. package/dist/studio/assets/imba-bv_oIlVt.js +1 -0
  278. package/dist/studio/assets/index-BGB_xb7U.js +3 -0
  279. package/dist/studio/assets/index-BL5JDvyg.js +1 -0
  280. package/dist/studio/assets/index-BsHxgcrp.js +1 -0
  281. package/dist/studio/assets/index-C1OzXW5i-yUiD89B4.js +1 -0
  282. package/dist/studio/assets/index-CVempi5X.js +1 -0
  283. package/dist/studio/assets/index-CfLOMbQU.js +1 -0
  284. package/dist/studio/assets/index-CyvSgPwe.js +7 -0
  285. package/dist/studio/assets/index-D0r_xHqx.js +13 -0
  286. package/dist/studio/assets/index-D6brt_Sl.js +1 -0
  287. package/dist/studio/assets/index-D7HbU1Cz.js +1 -0
  288. package/dist/studio/assets/index-D7K-OtJT.js +1 -0
  289. package/dist/studio/assets/index-DTI7Q6rR.js +2 -0
  290. package/dist/studio/assets/index-DaGTqNJA.js +1 -0
  291. package/dist/studio/assets/index-DcbOAmSu.js +1 -0
  292. package/dist/studio/assets/index-Dity-7ui.js +1 -0
  293. package/dist/studio/assets/index-Doyhnq_o.js +1 -0
  294. package/dist/studio/assets/index-DqtM7AAu.js +1 -0
  295. package/dist/studio/assets/index-Dsy9PctE.js +1 -0
  296. package/dist/studio/assets/index-yUiD89B4.js +1 -0
  297. package/dist/studio/assets/index-yk6kPag7.js +1 -0
  298. package/dist/studio/assets/inform7-DQTM53IF.js +1 -0
  299. package/dist/studio/assets/ini-BjABl1g7.js +1 -0
  300. package/dist/studio/assets/ini-CK1ngSzY.js +1 -0
  301. package/dist/studio/assets/io-BxnhUP7m.js +1 -0
  302. package/dist/studio/assets/j-CtF0ZgAY.js +1 -0
  303. package/dist/studio/assets/java-BhaXyu2W.js +1 -0
  304. package/dist/studio/assets/java-BxMbkJZ_.js +1 -0
  305. package/dist/studio/assets/java-xI-RfyKK.js +1 -0
  306. package/dist/studio/assets/javadoc-BElJ0Yc2.js +1 -0
  307. package/dist/studio/assets/javadoclike-CgTbTgdF.js +1 -0
  308. package/dist/studio/assets/javadoclike-myFApC35.js +1 -0
  309. package/dist/studio/assets/javascript-Bk6zr_WB.js +1 -0
  310. package/dist/studio/assets/javascript-D8vYUPHd.js +1 -0
  311. package/dist/studio/assets/javascript-iXu5QeM3.js +1 -0
  312. package/dist/studio/assets/javascript-ySlJ1b_l.js +1 -0
  313. package/dist/studio/assets/javastacktrace-CIzdkcPw.js +1 -0
  314. package/dist/studio/assets/jexl-CtQU2lk_.js +1 -0
  315. package/dist/studio/assets/jinja-DGy0s7-h.js +1 -0
  316. package/dist/studio/assets/jison-BqZprYcd.js +1 -0
  317. package/dist/studio/assets/jolie-xDunbWeu.js +1 -0
  318. package/dist/studio/assets/jq-CtFlBmWB.js +1 -0
  319. package/dist/studio/assets/js-extras-B37n5kCe.js +1 -0
  320. package/dist/studio/assets/js-templates-CipTuIJe.js +1 -0
  321. package/dist/studio/assets/jsdoc-Bfgybcjx.js +1 -0
  322. package/dist/studio/assets/json-BESjz4hO.js +1 -0
  323. package/dist/studio/assets/json-BQoSv7ci.js +1 -0
  324. package/dist/studio/assets/json-BQx3NRXu.js +1 -0
  325. package/dist/studio/assets/json5-Cigas1sD.js +1 -0
  326. package/dist/studio/assets/json5-w8dY5SsB.js +1 -0
  327. package/dist/studio/assets/jsonc-TU54ms6u.js +1 -0
  328. package/dist/studio/assets/jsonl-DREVFZK8.js +1 -0
  329. package/dist/studio/assets/jsonnet-BfivnA6A.js +1 -0
  330. package/dist/studio/assets/jsonp-MabMUPZ-.js +1 -0
  331. package/dist/studio/assets/jssm-P4WzXJd0.js +1 -0
  332. package/dist/studio/assets/jsstacktrace-ieNoBKXm.js +1 -0
  333. package/dist/studio/assets/jsx-BAng5TT0.js +1 -0
  334. package/dist/studio/assets/jsx-CWP8P1mH.js +1 -0
  335. package/dist/studio/assets/jsx-DlbNOGjk.js +1 -0
  336. package/dist/studio/assets/julia-BBuGR-5E.js +1 -0
  337. package/dist/studio/assets/julia-BEzR-X7o.js +1 -0
  338. package/dist/studio/assets/julia-DuME0IfC.js +1 -0
  339. package/dist/studio/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  340. package/dist/studio/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  341. package/dist/studio/assets/kanagawa-wave-DWedfzmr.js +1 -0
  342. package/dist/studio/assets/keepalived-CIPl1V-a.js +1 -0
  343. package/dist/studio/assets/keyman-BtwTQcy_.js +1 -0
  344. package/dist/studio/assets/kotlin-B5lbUyaz.js +1 -0
  345. package/dist/studio/assets/kotlin-DNkhKiuF.js +1 -0
  346. package/dist/studio/assets/kumir-BN2BM-xx.js +1 -0
  347. package/dist/studio/assets/kusto-BeTnzz_7.js +1 -0
  348. package/dist/studio/assets/kusto-mebxcVVE.js +1 -0
  349. package/dist/studio/assets/laserwave-DUszq2jm.js +1 -0
  350. package/dist/studio/assets/latex-B82_lALY.js +1 -0
  351. package/dist/studio/assets/latex-C-cWTeAZ.js +1 -0
  352. package/dist/studio/assets/latte-4hzPOoQM.js +1 -0
  353. package/dist/studio/assets/lean-XBlWyCtg.js +1 -0
  354. package/dist/studio/assets/less-BfCpw3nA.js +1 -0
  355. package/dist/studio/assets/less-RKghMXVm.js +1 -0
  356. package/dist/studio/assets/light-plus-B7mTdjB0.js +1 -0
  357. package/dist/studio/assets/lilypond-B3KqUOun.js +1 -0
  358. package/dist/studio/assets/liquid-D3W5UaiH.js +1 -0
  359. package/dist/studio/assets/liquid-mIiZpt_B.js +1 -0
  360. package/dist/studio/assets/lisp-CXvIX5wd.js +1 -0
  361. package/dist/studio/assets/livescript-B2LxgP9j.js +1 -0
  362. package/dist/studio/assets/livescript-BwQOo05w.js +1 -0
  363. package/dist/studio/assets/llvm-ClB0hwNe.js +1 -0
  364. package/dist/studio/assets/log-Cc5clBb7.js +1 -0
  365. package/dist/studio/assets/log-DPPZw9CF.js +1 -0
  366. package/dist/studio/assets/logo-IuBKFhSY.js +1 -0
  367. package/dist/studio/assets/lolcode-C4s6CyuE.js +1 -0
  368. package/dist/studio/assets/lua-BgMRiT3U.js +1 -0
  369. package/dist/studio/assets/lua-CvWAzNxB.js +1 -0
  370. package/dist/studio/assets/lua-DER4jxlW.js +1 -0
  371. package/dist/studio/assets/lua-DW_I8EsQ.js +1 -0
  372. package/dist/studio/assets/luau-Du5NY7AG.js +1 -0
  373. package/dist/studio/assets/magma-DZqNAXw6.js +1 -0
  374. package/dist/studio/assets/main-GCkb5IzX.js +589 -0
  375. package/dist/studio/assets/make-Bvotw-X0.js +1 -0
  376. package/dist/studio/assets/makefile-BB9e3-ub.js +1 -0
  377. package/dist/studio/assets/markdown-DziK_am3.js +1 -0
  378. package/dist/studio/assets/markdown-UIAJJxZW.js +1 -0
  379. package/dist/studio/assets/marko-z0MBrx5-.js +1 -0
  380. package/dist/studio/assets/markup-BONeskWm.js +1 -0
  381. package/dist/studio/assets/markup-BXQnopTd.js +1 -0
  382. package/dist/studio/assets/markup-templating-BxAVv-bL.js +1 -0
  383. package/dist/studio/assets/markup-templating-DNSffCpf.js +1 -0
  384. package/dist/studio/assets/material-theme-D5KoaKCx.js +1 -0
  385. package/dist/studio/assets/material-theme-darker-BfHTSMKl.js +1 -0
  386. package/dist/studio/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  387. package/dist/studio/assets/material-theme-ocean-CyktbL80.js +1 -0
  388. package/dist/studio/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  389. package/dist/studio/assets/mathematica-DTrFuWx2.js +1 -0
  390. package/dist/studio/assets/matlab-D9-PGadD.js +1 -0
  391. package/dist/studio/assets/matlab-DlpKTeHO.js +1 -0
  392. package/dist/studio/assets/maxscript-QVFD_oYY.js +1 -0
  393. package/dist/studio/assets/mbox-CNhZ1qSd.js +1 -0
  394. package/dist/studio/assets/mdc-DB_EDNY_.js +1 -0
  395. package/dist/studio/assets/mdx-sdHcTMYB.js +1 -0
  396. package/dist/studio/assets/mel-CeeAXZ0M.js +1 -0
  397. package/dist/studio/assets/mermaid-Ci6OQyBP.js +1 -0
  398. package/dist/studio/assets/mermaid-DJMN1K_o.js +1 -0
  399. package/dist/studio/assets/min-dark-CafNBF8u.js +1 -0
  400. package/dist/studio/assets/min-light-CTRr51gU.js +1 -0
  401. package/dist/studio/assets/mipsasm-BC5c_5Pe.js +1 -0
  402. package/dist/studio/assets/mirc-CjQqDB4T.js +1 -0
  403. package/dist/studio/assets/mizar-1UVK38xl.js +1 -0
  404. package/dist/studio/assets/mllike-BO34x3tv.js +1 -0
  405. package/dist/studio/assets/modelica-Dc1JOy9r.js +1 -0
  406. package/dist/studio/assets/mojo-Tz6hzZYG.js +1 -0
  407. package/dist/studio/assets/mongodb-2y41LTD1.js +1 -0
  408. package/dist/studio/assets/monkey-C8FCBnQZ.js +1 -0
  409. package/dist/studio/assets/monokai-D4h5O-jR.js +1 -0
  410. package/dist/studio/assets/moonscript-Codc9alv.js +1 -0
  411. package/dist/studio/assets/move-DB_GagMm.js +1 -0
  412. package/dist/studio/assets/mscgen-BA5vi2Kp.js +1 -0
  413. package/dist/studio/assets/mumps-BT43cFF4.js +1 -0
  414. package/dist/studio/assets/n1ql-T18fM48P.js +1 -0
  415. package/dist/studio/assets/n4js-CqGe16MS.js +1 -0
  416. package/dist/studio/assets/nand2tetris-hdl-CNzS4wgO.js +1 -0
  417. package/dist/studio/assets/naniscript-CCRX67XR.js +1 -0
  418. package/dist/studio/assets/narrat-DLbgOhZU.js +1 -0
  419. package/dist/studio/assets/nasm-Db3-eulf.js +1 -0
  420. package/dist/studio/assets/neon-Bl9I9Cf2.js +1 -0
  421. package/dist/studio/assets/nevod-9BfCEkZY.js +1 -0
  422. package/dist/studio/assets/nextflow-B0XVJmRM.js +1 -0
  423. package/dist/studio/assets/nginx-D5VuFxsV.js +1 -0
  424. package/dist/studio/assets/nginx-D_VnBJ67.js +1 -0
  425. package/dist/studio/assets/nginx-DdIZxoE0.js +1 -0
  426. package/dist/studio/assets/night-owl-C39BiMTA.js +1 -0
  427. package/dist/studio/assets/nim-BiodsCVp.js +1 -0
  428. package/dist/studio/assets/nim-ZlGxZxc3.js +1 -0
  429. package/dist/studio/assets/nix-BlmUqDuR.js +1 -0
  430. package/dist/studio/assets/nix-shcSOmrb.js +1 -0
  431. package/dist/studio/assets/nord-Ddv68eIx.js +1 -0
  432. package/dist/studio/assets/nsis-LdVXkNf5.js +1 -0
  433. package/dist/studio/assets/nsis-uXjTlXFE.js +1 -0
  434. package/dist/studio/assets/ntriples-BfvgReVJ.js +1 -0
  435. package/dist/studio/assets/nushell-D4Tzg5kh.js +1 -0
  436. package/dist/studio/assets/objective-c-Deuh7S70.js +1 -0
  437. package/dist/studio/assets/objective-cpp-BUEGK8hf.js +1 -0
  438. package/dist/studio/assets/objectivec-OtJNXXe7.js +1 -0
  439. package/dist/studio/assets/ocaml-BNioltXt.js +1 -0
  440. package/dist/studio/assets/ocaml-k06Wct0P.js +1 -0
  441. package/dist/studio/assets/octave-Ck1zUtKM.js +1 -0
  442. package/dist/studio/assets/one-dark-pro-GBQ2dnAY.js +1 -0
  443. package/dist/studio/assets/one-light-PoHY5YXO.js +1 -0
  444. package/dist/studio/assets/opencl-ByNMma9T.js +1 -0
  445. package/dist/studio/assets/openqasm-xkuRXbRz.js +1 -0
  446. package/dist/studio/assets/oz-BzwKVEFT.js +1 -0
  447. package/dist/studio/assets/oz-DUwVS3ld.js +1 -0
  448. package/dist/studio/assets/parigp-C_yWhC7Y.js +1 -0
  449. package/dist/studio/assets/parser-DtATf057.js +1 -0
  450. package/dist/studio/assets/pascal--L3eBynH.js +1 -0
  451. package/dist/studio/assets/pascal-CBoUq2O-.js +1 -0
  452. package/dist/studio/assets/pascal-JqZropPD.js +1 -0
  453. package/dist/studio/assets/pascaligo-BBXEvFty.js +1 -0
  454. package/dist/studio/assets/pcaxis-BeCsKRhj.js +1 -0
  455. package/dist/studio/assets/peoplecode-BGdEk3DT.js +1 -0
  456. package/dist/studio/assets/perl-CHQXSrWU.js +1 -0
  457. package/dist/studio/assets/perl-CdXCOZ3F.js +1 -0
  458. package/dist/studio/assets/perl-CfIj20OB.js +1 -0
  459. package/dist/studio/assets/php-B5ebYQev.js +1 -0
  460. package/dist/studio/assets/php-Cnsvl5sP.js +1 -0
  461. package/dist/studio/assets/php-extras-h4lUjERT.js +1 -0
  462. package/dist/studio/assets/php-iTdQntIy.js +1 -0
  463. package/dist/studio/assets/phpdoc-DM00ntgC.js +1 -0
  464. package/dist/studio/assets/pig-CevX1Tat.js +1 -0
  465. package/dist/studio/assets/plastic-3e1v2bzS.js +1 -0
  466. package/dist/studio/assets/plsql-LKU2TuZ1.js +1 -0
  467. package/dist/studio/assets/plsql-Odo8aZat.js +1 -0
  468. package/dist/studio/assets/po-BFLt1xDp.js +1 -0
  469. package/dist/studio/assets/poimandres-CS3Unz2-.js +1 -0
  470. package/dist/studio/assets/polar-DKykz6zU.js +1 -0
  471. package/dist/studio/assets/postcss-B3ZDOciz.js +1 -0
  472. package/dist/studio/assets/powerquery-B9lMgfYF.js +1 -0
  473. package/dist/studio/assets/powerquery-CSHBycmS.js +1 -0
  474. package/dist/studio/assets/powershell-BIEUsx6d.js +1 -0
  475. package/dist/studio/assets/powershell-CaxLzxiJ.js +1 -0
  476. package/dist/studio/assets/powershell-DzgEMi1-.js +1 -0
  477. package/dist/studio/assets/prisma-B48N-Iqd.js +1 -0
  478. package/dist/studio/assets/processing-CxBcV2Og.js +1 -0
  479. package/dist/studio/assets/prolog-BY-TUvya.js +1 -0
  480. package/dist/studio/assets/prolog-BbcAWN9M.js +1 -0
  481. package/dist/studio/assets/promql-C7FCWt4e.js +1 -0
  482. package/dist/studio/assets/properties-C78fOPTZ.js +1 -0
  483. package/dist/studio/assets/properties-DMiFNJJ2.js +1 -0
  484. package/dist/studio/assets/proto-zocC4JxJ.js +1 -0
  485. package/dist/studio/assets/protobuf-ByE6GkKu.js +1 -0
  486. package/dist/studio/assets/protobuf-ChK-085T.js +1 -0
  487. package/dist/studio/assets/psl-i4U60iWX.js +1 -0
  488. package/dist/studio/assets/pug-CM9l7STV.js +1 -0
  489. package/dist/studio/assets/pug-DeIclll2.js +1 -0
  490. package/dist/studio/assets/pug-iaBqHNA6.js +1 -0
  491. package/dist/studio/assets/puppet-3LnJZZxf.js +1 -0
  492. package/dist/studio/assets/puppet-Cza_XSSt.js +1 -0
  493. package/dist/studio/assets/puppet-DMA9R1ak.js +1 -0
  494. package/dist/studio/assets/pure-CWKQ49dV.js +1 -0
  495. package/dist/studio/assets/purebasic-DN4AHeN1.js +1 -0
  496. package/dist/studio/assets/purescript-Bg-kzb6g.js +1 -0
  497. package/dist/studio/assets/purescript-DA6lIpIE.js +1 -0
  498. package/dist/studio/assets/python-BuPzkPfP.js +1 -0
  499. package/dist/studio/assets/python-C5-sNgAm.js +1 -0
  500. package/dist/studio/assets/python-DhUJRlN_.js +1 -0
  501. package/dist/studio/assets/q-TxxnX0R8.js +1 -0
  502. package/dist/studio/assets/q-pXgVlZs6.js +1 -0
  503. package/dist/studio/assets/qml-D3Ewuljg.js +1 -0
  504. package/dist/studio/assets/qml-D8XfuvdV.js +1 -0
  505. package/dist/studio/assets/qmldir-C8lEn-DE.js +1 -0
  506. package/dist/studio/assets/qore-OPK0eDGs.js +1 -0
  507. package/dist/studio/assets/qsharp-BnRyIoT7.js +1 -0
  508. package/dist/studio/assets/qss-DhMKtDLN.js +1 -0
  509. package/dist/studio/assets/r-B6wPVr8A.js +1 -0
  510. package/dist/studio/assets/r-CwjWoCRV.js +1 -0
  511. package/dist/studio/assets/r-D65iYryl.js +1 -0
  512. package/dist/studio/assets/racket-BiEN5RBQ.js +1 -0
  513. package/dist/studio/assets/racket-CzouJOBO.js +1 -0
  514. package/dist/studio/assets/raku-B1bQXN8T.js +1 -0
  515. package/dist/studio/assets/razor-CNLDkMZG.js +1 -0
  516. package/dist/studio/assets/reason-DvnbfxKc.js +1 -0
  517. package/dist/studio/assets/red-bN70gL4F.js +1 -0
  518. package/dist/studio/assets/reg-5LuOXUq_.js +1 -0
  519. package/dist/studio/assets/regex-DSfRSkVi.js +1 -0
  520. package/dist/studio/assets/regexp-DWJ3fJO_.js +1 -0
  521. package/dist/studio/assets/rego-D0E_rMWD.js +1 -0
  522. package/dist/studio/assets/rel-DJlmqQ1C.js +1 -0
  523. package/dist/studio/assets/renpy-DR3oyCfL.js +1 -0
  524. package/dist/studio/assets/rest-B8znjYrs.js +1 -0
  525. package/dist/studio/assets/rip-JW2VTGiU.js +1 -0
  526. package/dist/studio/assets/riscv-QhoSD0DR.js +1 -0
  527. package/dist/studio/assets/roboconf-6-rVzOpN.js +1 -0
  528. package/dist/studio/assets/robotframework-DaXpGZOZ.js +1 -0
  529. package/dist/studio/assets/rose-pine-CmCqftbK.js +1 -0
  530. package/dist/studio/assets/rose-pine-dawn-Ds-gbosJ.js +1 -0
  531. package/dist/studio/assets/rose-pine-moon-CjDtw9vr.js +1 -0
  532. package/dist/studio/assets/rpm-CTu-6PCP.js +1 -0
  533. package/dist/studio/assets/rst-4NLicBqY.js +1 -0
  534. package/dist/studio/assets/ruby-B2Rjki9n.js +1 -0
  535. package/dist/studio/assets/ruby-DRe3eUnz.js +1 -0
  536. package/dist/studio/assets/ruby-DYsn9XfW.js +1 -0
  537. package/dist/studio/assets/ruby-DeZ3UC14.js +1 -0
  538. package/dist/studio/assets/rust-B2tN-QJl.js +1 -0
  539. package/dist/studio/assets/rust-Be6lgOlo.js +1 -0
  540. package/dist/studio/assets/sas-B4kiWyti.js +1 -0
  541. package/dist/studio/assets/sas-BGRpTjNg.js +1 -0
  542. package/dist/studio/assets/sas-BmTFh92c.js +1 -0
  543. package/dist/studio/assets/sass-BGKNP1yK.js +1 -0
  544. package/dist/studio/assets/sass-BJ4Li9vH.js +1 -0
  545. package/dist/studio/assets/scala-BhP5WEjk.js +1 -0
  546. package/dist/studio/assets/scala-DQVVAn-B.js +1 -0
  547. package/dist/studio/assets/scheme-BJGe-b2p.js +1 -0
  548. package/dist/studio/assets/scheme-C41bIUwD.js +1 -0
  549. package/dist/studio/assets/scheme-Cnml9uHA.js +1 -0
  550. package/dist/studio/assets/scheme-Cscf027c.js +1 -0
  551. package/dist/studio/assets/scss-Bb3mWAor.js +1 -0
  552. package/dist/studio/assets/scss-C31hgJw-.js +1 -0
  553. package/dist/studio/assets/sdbl-BLhTXw86.js +1 -0
  554. package/dist/studio/assets/shaderlab-B7qAK45m.js +1 -0
  555. package/dist/studio/assets/shell-CjFT_Tl9.js +1 -0
  556. package/dist/studio/assets/shell-session-w085a8_g.js +1 -0
  557. package/dist/studio/assets/shellscript-atvbtKCR.js +1 -0
  558. package/dist/studio/assets/shellsession-C_rIy8kc.js +1 -0
  559. package/dist/studio/assets/sieve-C3Gn_uJK.js +1 -0
  560. package/dist/studio/assets/simple-mode-GW_nhZxv.js +1 -0
  561. package/dist/studio/assets/slack-dark-BthQWCQV.js +1 -0
  562. package/dist/studio/assets/slack-ochin-DqwNpetd.js +1 -0
  563. package/dist/studio/assets/smali-DudltC7F.js +1 -0
  564. package/dist/studio/assets/smalltalk-CnHTOXQT.js +1 -0
  565. package/dist/studio/assets/smalltalk-DkLiglaE.js +1 -0
  566. package/dist/studio/assets/smalltalk-aCnKwPgt.js +1 -0
  567. package/dist/studio/assets/smarty-CnX8OJiH.js +1 -0
  568. package/dist/studio/assets/sml-BfC5JSm8.js +1 -0
  569. package/dist/studio/assets/snazzy-light-Bw305WKR.js +1 -0
  570. package/dist/studio/assets/solarized-dark-DXbdFlpD.js +1 -0
  571. package/dist/studio/assets/solarized-light-L9t79GZl.js +1 -0
  572. package/dist/studio/assets/solidity-C1w2a3ep.js +1 -0
  573. package/dist/studio/assets/solidity-C44m2OcX.js +1 -0
  574. package/dist/studio/assets/solr-DehyRSwq.js +1 -0
  575. package/dist/studio/assets/solution-file-DqgUMlLT.js +1 -0
  576. package/dist/studio/assets/soy-C-lX7w71.js +1 -0
  577. package/dist/studio/assets/soy-Didusp_T.js +1 -0
  578. package/dist/studio/assets/sparql-DkYu6x3z.js +1 -0
  579. package/dist/studio/assets/sparql-Dq2_RTyW.js +1 -0
  580. package/dist/studio/assets/sparql-bYkjHRlG.js +1 -0
  581. package/dist/studio/assets/splunk-Cf8iN4DR.js +1 -0
  582. package/dist/studio/assets/splunk-spl-i44o5zIW.js +1 -0
  583. package/dist/studio/assets/spreadsheet-BCZA_wO0.js +1 -0
  584. package/dist/studio/assets/sqf-Ipt6ITf7.js +1 -0
  585. package/dist/studio/assets/sql-CJATM1Qp.js +1 -0
  586. package/dist/studio/assets/sql-COK4E0Yg.js +1 -0
  587. package/dist/studio/assets/sql-D0XecflT.js +1 -0
  588. package/dist/studio/assets/sql-Xmf2Cqmi.js +1 -0
  589. package/dist/studio/assets/squirrel-CNsGoP5x.js +1 -0
  590. package/dist/studio/assets/ssh-config-BknIz3MU.js +1 -0
  591. package/dist/studio/assets/stan-CroJSyDI.js +1 -0
  592. package/dist/studio/assets/stata-DorPZHa4.js +1 -0
  593. package/dist/studio/assets/stex-C3f8Ysf7.js +1 -0
  594. package/dist/studio/assets/style-dB9Q_Q_9.css +1 -0
  595. package/dist/studio/assets/stylus-B533Al4x.js +1 -0
  596. package/dist/studio/assets/stylus-BeQkCIfX.js +1 -0
  597. package/dist/studio/assets/stylus-BhFhanwO.js +1 -0
  598. package/dist/studio/assets/svelte-MSaWC3Je.js +1 -0
  599. package/dist/studio/assets/swift-BSxZ-RaX.js +1 -0
  600. package/dist/studio/assets/swift-BcUbLWxQ.js +1 -0
  601. package/dist/studio/assets/swift-BzpIVaGY.js +1 -0
  602. package/dist/studio/assets/synthwave-84-CbfX1IO0.js +1 -0
  603. package/dist/studio/assets/system-verilog-C7L56vO4.js +1 -0
  604. package/dist/studio/assets/systemd-CUnW07Te.js +1 -0
  605. package/dist/studio/assets/systemd-pijFTY3Q.js +2 -0
  606. package/dist/studio/assets/t4-cs-CYwURd9Q.js +1 -0
  607. package/dist/studio/assets/t4-templating-B5EzSFYT.js +1 -0
  608. package/dist/studio/assets/t4-templating-Bn1YfEy3.js +1 -0
  609. package/dist/studio/assets/t4-vb-BcitFXVa.js +1 -0
  610. package/dist/studio/assets/talonscript-C1XDQQGZ.js +1 -0
  611. package/dist/studio/assets/tap-BNz9v1Vd.js +1 -0
  612. package/dist/studio/assets/tasl-CQjiPCtT.js +1 -0
  613. package/dist/studio/assets/tcl-BHaYOG7X.js +1 -0
  614. package/dist/studio/assets/tcl-DQ1-QYvQ.js +1 -0
  615. package/dist/studio/assets/tcl-DVfN8rqt.js +1 -0
  616. package/dist/studio/assets/templ-dwX3ZSMB.js +1 -0
  617. package/dist/studio/assets/terraform-BbSNqyBO.js +1 -0
  618. package/dist/studio/assets/tex-rYs2v40G.js +1 -0
  619. package/dist/studio/assets/textile-BqW3s-_A.js +1 -0
  620. package/dist/studio/assets/textile-CnDTJFAw.js +1 -0
  621. package/dist/studio/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  622. package/dist/studio/assets/tiki-DGYXhP31.js +1 -0
  623. package/dist/studio/assets/token-6GSAFR2W-XRCSVUPZ-BPnDd-_m-B2n_Dhv3.js +1 -0
  624. package/dist/studio/assets/token-6GSAFR2W-XRCSVUPZ-D-CieZ0G.js +1 -0
  625. package/dist/studio/assets/token-util-NEHG7TUY-U7CX7GS4-B6zK0D15.js +1 -0
  626. package/dist/studio/assets/token-util-NEHG7TUY-U7CX7GS4-DFJvQhU1-Daf76IrK.js +1 -0
  627. package/dist/studio/assets/tokyo-night-DBQeEorK.js +1 -0
  628. package/dist/studio/assets/toml-Bm5Em-hy.js +1 -0
  629. package/dist/studio/assets/toml-CB2ApiWb.js +1 -0
  630. package/dist/studio/assets/toml-CwuhZL7Q.js +1 -0
  631. package/dist/studio/assets/tremor-D0j32Hau.js +1 -0
  632. package/dist/studio/assets/troff-wAsdV37c.js +1 -0
  633. package/dist/studio/assets/ts-tags-CipyTH0X.js +1 -0
  634. package/dist/studio/assets/tsv-B_m7g4N7.js +1 -0
  635. package/dist/studio/assets/tsx-7F-Ddqj6.js +1 -0
  636. package/dist/studio/assets/tsx-B6W0miNI.js +1 -0
  637. package/dist/studio/assets/tt2-CohLCOed.js +1 -0
  638. package/dist/studio/assets/ttcn-CfJYG6tj.js +1 -0
  639. package/dist/studio/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  640. package/dist/studio/assets/turtle-B1tBg_DP.js +1 -0
  641. package/dist/studio/assets/turtle-BMR_PYu6.js +1 -0
  642. package/dist/studio/assets/turtle-BNdZvcLF.js +1 -0
  643. package/dist/studio/assets/turtle-Ro1R6Je7.js +1 -0
  644. package/dist/studio/assets/twig-BWt95Ilu.js +1 -0
  645. package/dist/studio/assets/twig-NC5TFiHP.js +1 -0
  646. package/dist/studio/assets/typescript-BiZdYq8c.js +1 -0
  647. package/dist/studio/assets/typescript-CVO-8GEc.js +1 -0
  648. package/dist/studio/assets/typescript-Dj6nwHGl.js +1 -0
  649. package/dist/studio/assets/typespec-BpWG_bgh.js +1 -0
  650. package/dist/studio/assets/typoscript-D-jqnyO7.js +1 -0
  651. package/dist/studio/assets/typst-BVUVsWT6.js +1 -0
  652. package/dist/studio/assets/unrealscript-DmQXfLQ9.js +1 -0
  653. package/dist/studio/assets/uorazor-Bt3BUqZw.js +1 -0
  654. package/dist/studio/assets/uri-DouuUSYc.js +1 -0
  655. package/dist/studio/assets/v-B2TM0F3-.js +1 -0
  656. package/dist/studio/assets/v-CAQ2eGtk.js +1 -0
  657. package/dist/studio/assets/vala-BFOHcciG.js +1 -0
  658. package/dist/studio/assets/vala-DWjoEgvD.js +1 -0
  659. package/dist/studio/assets/vb-CdO5JTpU.js +1 -0
  660. package/dist/studio/assets/vb-CmGdzxic.js +1 -0
  661. package/dist/studio/assets/vbnet-BhrUc4aD.js +1 -0
  662. package/dist/studio/assets/vbnet-BxHkazy1.js +1 -0
  663. package/dist/studio/assets/vbscript-BuJXcnF6.js +1 -0
  664. package/dist/studio/assets/velocity-4-PNnn5S.js +1 -0
  665. package/dist/studio/assets/velocity-D8B20fx6.js +1 -0
  666. package/dist/studio/assets/verilog-C6RDOZhf.js +1 -0
  667. package/dist/studio/assets/verilog-CJaU5se_.js +1 -0
  668. package/dist/studio/assets/verilog-DHC9hI16.js +1 -0
  669. package/dist/studio/assets/vesper-BEBZ7ncR.js +1 -0
  670. package/dist/studio/assets/vhdl-CuVOMqUY.js +1 -0
  671. package/dist/studio/assets/vhdl-DYoNaHQp.js +1 -0
  672. package/dist/studio/assets/vhdl-lSbBsy5d.js +1 -0
  673. package/dist/studio/assets/vim-C9-iUGhB.js +1 -0
  674. package/dist/studio/assets/viml-m4uW47V2.js +1 -0
  675. package/dist/studio/assets/visual-basic-CmUvSSOM.js +1 -0
  676. package/dist/studio/assets/vitesse-black-Bkuqu6BP.js +1 -0
  677. package/dist/studio/assets/vitesse-dark-D0r3Knsf.js +1 -0
  678. package/dist/studio/assets/vitesse-light-CVO1_9PV.js +1 -0
  679. package/dist/studio/assets/vue-BuYVFjOK.js +1 -0
  680. package/dist/studio/assets/vue-html-xdeiXROB.js +1 -0
  681. package/dist/studio/assets/vyper-nyqBNV6O.js +1 -0
  682. package/dist/studio/assets/warpscript-DgBSDEP4.js +1 -0
  683. package/dist/studio/assets/wasm-C6j12Q_x.js +1 -0
  684. package/dist/studio/assets/wasm-CG6Dc4jp.js +1 -0
  685. package/dist/studio/assets/wasm-D94W4Qu5.js +1 -0
  686. package/dist/studio/assets/web-idl-CU9NIa_u.js +1 -0
  687. package/dist/studio/assets/webidl-ZXfAyPTL.js +1 -0
  688. package/dist/studio/assets/wenyan-7A4Fjokl.js +1 -0
  689. package/dist/studio/assets/wgsl-CB0Krxn9.js +1 -0
  690. package/dist/studio/assets/wiki-BZTCdr_u.js +1 -0
  691. package/dist/studio/assets/wikitext-DCE3LsBG.js +1 -0
  692. package/dist/studio/assets/wolfram-Bjn-wQV4.js +1 -0
  693. package/dist/studio/assets/wolfram-C3FkfJm5.js +1 -0
  694. package/dist/studio/assets/wren-B_Mm9Obf.js +1 -0
  695. package/dist/studio/assets/xeora-C5PBHtel.js +1 -0
  696. package/dist/studio/assets/xml-doc-BYKnvt_E.js +1 -0
  697. package/dist/studio/assets/xml-e3z08dGr.js +1 -0
  698. package/dist/studio/assets/xojo-BQ8bnuwK.js +1 -0
  699. package/dist/studio/assets/xquery-Bd446Q0h.js +1 -0
  700. package/dist/studio/assets/xquery-DzFWVndE.js +1 -0
  701. package/dist/studio/assets/xsl-Dd0NUgwM.js +1 -0
  702. package/dist/studio/assets/yacas-BJ4BC0dw.js +1 -0
  703. package/dist/studio/assets/yaml-BUKSHo3B.js +1 -0
  704. package/dist/studio/assets/yaml-CVw76BM1.js +1 -0
  705. package/dist/studio/assets/yaml-pHjxJgpq.js +1 -0
  706. package/dist/studio/assets/yang-BCN66IjU.js +1 -0
  707. package/dist/studio/assets/z80-Hz9HOZM7.js +1 -0
  708. package/dist/studio/assets/zenscript-HnGAYVZD.js +1 -0
  709. package/dist/studio/assets/zig-BVz_zdnA.js +1 -0
  710. package/dist/studio/assets/zig-BbdjJ0xe.js +1 -0
  711. package/dist/studio/favicon.ico +0 -0
  712. package/dist/studio/index.html +48 -0
  713. package/dist/studio/mastra.svg +17 -0
  714. package/dist/utils/auth.d.ts.map +1 -1
  715. package/dist/utils/deps.d.ts.map +1 -1
  716. package/dist/utils/execa.d.ts +1 -1
  717. package/dist/utils/execa.d.ts.map +1 -1
  718. package/dist/utils/logger.d.ts +3 -3
  719. package/dist/utils/logger.d.ts.map +1 -1
  720. package/package.json +18 -19
  721. package/versions.json +1 -1
  722. package/templates/instrumentation-template.js +0 -69
package/README.md CHANGED
@@ -76,7 +76,7 @@ MASTRA_STORAGE_AUTH_TOKEN=your-auth-token
76
76
  BUSINESS_API_RUNNER_LOGS_ENDPOINT=your-logs-endpoint
77
77
  BUSINESS_JWT_TOKEN=your-jwt-token
78
78
 
79
- # Playground Configuration
79
+ # Studio Configuration
80
80
  PLAYGROUND_JWT_TOKEN=your-playground-jwt-token
81
81
 
82
82
  # Runtime Configuration
@@ -109,7 +109,7 @@ The deployer generates a server entry that:
109
109
 
110
110
  4. **Starts Server**:
111
111
  - Creates Node.js server with Mastra configuration
112
- - Disables playground and Swagger UI for production
112
+ - Disables Studio and Swagger UI for production
113
113
  - Exports tools for API access
114
114
 
115
115
  ## Project Structure
@@ -118,7 +118,6 @@ After deployment, your project will have:
118
118
 
119
119
  ```
120
120
  output/
121
- ├── instrumentation.mjs # OpenTelemetry setup
122
121
  ├── package.json # With cloud dependencies
123
122
  ├── index.mjs # Main server entry
124
123
  ├── mastra.mjs # Your Mastra configuration
package/dist/index.cjs CHANGED
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var url = require('url');
4
3
  var path = require('path');
4
+ var url = require('url');
5
5
  var deployer = require('@mastra/deployer');
6
+ var bundler = require('@mastra/deployer/bundler');
6
7
  var esm = require('fs-extra/esm');
7
8
  var os = require('os');
8
9
  var fs = require('fs');
@@ -50,12 +51,14 @@ function getAuthEntrypoint() {
50
51
  }
51
52
  return `
52
53
  import { SimpleAuth, CompositeAuth } from '@mastra/core/server';
54
+
53
55
  class MastraCloudAuth extends SimpleAuth {
54
56
  constructor() {
55
57
  super({
56
58
  tokens: ${JSON.stringify(tokensObject)}
57
59
  });
58
60
  }
61
+
59
62
  async authorizeUser(user, request) {
60
63
  // Allow access to /api path
61
64
  if (request && request.url && new URL(request.url).pathname === '/api') {
@@ -68,6 +71,7 @@ function getAuthEntrypoint() {
68
71
  return false;
69
72
  }
70
73
  }
74
+
71
75
  const serverConfig = mastra.getServer()
72
76
  if (serverConfig && serverConfig.auth) {
73
77
  const existingAuth = serverConfig.auth
@@ -138,7 +142,7 @@ var RedisTransport = class extends logger$1.LoggerTransport {
138
142
  await closeLogger();
139
143
  cb(err);
140
144
  }
141
- getLogs(_args) {
145
+ listLogs(_args) {
142
146
  return Promise.resolve({
143
147
  logs: [],
144
148
  total: 0,
@@ -147,7 +151,7 @@ var RedisTransport = class extends logger$1.LoggerTransport {
147
151
  hasMore: false
148
152
  });
149
153
  }
150
- getLogsByRunId(_args) {
154
+ listLogsByRunId(_args) {
151
155
  return Promise.resolve({
152
156
  logs: [],
153
157
  total: 0,
@@ -253,7 +257,7 @@ function detectPm({ path }) {
253
257
  async function installDeps({ path, pm }) {
254
258
  pm = pm ?? detectPm({ path });
255
259
  logger.info(`Installing dependencies with ${pm} in ${path}`);
256
- const args = ["install"];
260
+ const args = ["install", "--legacy-peer-deps=false", "--force"];
257
261
  const { success, error: error$1 } = await runWithExeca({ cmd: pm, args, cwd: path });
258
262
  if (!success) {
259
263
  throw new error.MastraError(
@@ -313,15 +317,33 @@ function successEntrypoint() {
313
317
 
314
318
  // src/index.ts
315
319
  var CloudDeployer = class extends deployer.Deployer {
316
- constructor() {
320
+ studio;
321
+ constructor({ studio } = {}) {
317
322
  super({ name: "cloud" });
323
+ this.studio = studio ?? false;
324
+ }
325
+ async getUserBundlerOptions(mastraEntryFile, outputDirectory) {
326
+ const bundlerOptions = await super.getUserBundlerOptions(mastraEntryFile, outputDirectory);
327
+ if (!bundlerOptions?.[bundler.IS_DEFAULT]) {
328
+ return bundlerOptions;
329
+ }
330
+ return {
331
+ ...bundlerOptions,
332
+ externals: true
333
+ };
318
334
  }
319
335
  async deploy(_outputDirectory) {
320
336
  }
321
- async writeInstrumentationFile(outputDirectory) {
322
- const instrumentationFile = path.join(outputDirectory, "instrumentation.mjs");
323
- const __dirname = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
324
- await esm.copy(path.join(__dirname, "../templates", "instrumentation-template.js"), instrumentationFile);
337
+ async prepare(outputDirectory) {
338
+ await super.prepare(outputDirectory);
339
+ if (this.studio) {
340
+ const __filename = url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
341
+ const __dirname = path.dirname(__filename);
342
+ const studioServePath = path.join(outputDirectory, this.outputDir, "studio");
343
+ await esm.copy(path.join(path.dirname(__dirname), path.join("dist", "studio")), studioServePath, {
344
+ overwrite: true
345
+ });
346
+ }
325
347
  }
326
348
  async writePackageJson(outputDirectory, dependencies) {
327
349
  const versions = await esm.readJSON(path.join(path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))), "../versions.json"));
@@ -341,6 +363,7 @@ var CloudDeployer = class extends deployer.Deployer {
341
363
  const mastraEntryFile = getMastraEntryFile(mastraDir);
342
364
  const mastraAppDir = path.join(mastraDir, MASTRA_DIRECTORY);
343
365
  const discoveredTools = this.getAllToolPaths(mastraAppDir);
366
+ await this.prepare(outputDirectory);
344
367
  await this._bundle(
345
368
  this.getEntry(),
346
369
  mastraEntryFile,
@@ -363,10 +386,8 @@ import { mastra } from '#mastra';
363
386
  import { MultiLogger } from '@mastra/core/logger';
364
387
  import { PinoLogger } from '@mastra/loggers';
365
388
  import { HttpTransport } from '@mastra/loggers/http';
366
- import { evaluate } from '@mastra/core/eval';
367
- import { AvailableHooks, registerHook } from '@mastra/core/hooks';
368
389
  import { LibSQLStore, LibSQLVector } from '@mastra/libsql';
369
- import { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';
390
+ import { scoreTracesWorkflow } from '@mastra/core/evals/scoreTraces';
370
391
  const startTime = process.env.RUNNER_START_TIME ? new Date(process.env.RUNNER_START_TIME).getTime() : Date.now();
371
392
  const createNodeServerStartTime = Date.now();
372
393
 
@@ -409,52 +430,20 @@ if (process.env.MASTRA_STORAGE_URL && process.env.MASTRA_STORAGE_AUTH_TOKEN) {
409
430
  const { MastraStorage } = await import('@mastra/core/storage');
410
431
  logger.info('Using Mastra Cloud Storage: ' + process.env.MASTRA_STORAGE_URL)
411
432
  const storage = new LibSQLStore({
433
+ id: 'mastra-cloud-storage-libsql',
412
434
  url: process.env.MASTRA_STORAGE_URL,
413
435
  authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,
414
436
  })
415
437
  const vector = new LibSQLVector({
416
- connectionUrl: process.env.MASTRA_STORAGE_URL,
438
+ id: 'mastra-cloud-storage-libsql-vector',
439
+ url: process.env.MASTRA_STORAGE_URL,
417
440
  authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,
418
441
  })
419
442
 
420
443
  await storage.init()
421
444
  mastra?.setStorage(storage)
422
-
423
- mastra?.memory?.setStorage(storage)
424
- mastra?.memory?.setVector(vector)
425
-
426
- registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {
427
- evaluate({
428
- agentName,
429
- input,
430
- metric,
431
- output,
432
- runId,
433
- globalRunId: runId,
434
- instructions,
435
- });
436
- });
437
- registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {
438
- if (mastra?.storage) {
439
- await mastra.storage.insert({
440
- tableName: MastraStorage.TABLE_EVALS,
441
- record: {
442
- input: traceObject.input,
443
- output: traceObject.output,
444
- result: JSON.stringify(traceObject.result),
445
- agent_name: traceObject.agentName,
446
- metric_name: traceObject.metricName,
447
- instructions: traceObject.instructions,
448
- test_info: null,
449
- global_run_id: traceObject.globalRunId,
450
- run_id: traceObject.runId,
451
- created_at: new Date().toISOString(),
452
- },
453
- });
454
- }
455
- });
456
- } else if (mastra?.getStorage()) {
457
- await mastra.getStorage().init()
445
+ } else if (mastra?.storage) {
446
+ mastra.storage.init()
458
447
  }
459
448
 
460
449
  if (mastra?.getStorage()) {
@@ -463,7 +452,7 @@ if (mastra?.getStorage()) {
463
452
 
464
453
  ${getAuthEntrypoint()}
465
454
 
466
- await createNodeServer(mastra, { playground: false, swaggerUI: false, tools: getToolExports(tools) });
455
+ await createNodeServer(mastra, { studio: ${this.studio}, swaggerUI: false, tools: getToolExports(tools) });
467
456
 
468
457
  ${successEntrypoint()}
469
458
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/auth.ts","../src/utils/constants.ts","../src/utils/logger.ts","../src/utils/execa.ts","../src/utils/deps.ts","../src/utils/file.ts","../src/utils/report.ts","../src/index.ts"],"names":["os","createClient","LoggerTransport","resolve","PinoLogger","Transform","execa","fs","join","error","MastraError","FileService","Deployer","dirname","fileURLToPath","copy","readJSON"],"mappings":"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","file":"index.cjs","sourcesContent":["export function getAuthEntrypoint() {\n const tokensObject: Record<string, { id: string }> = {};\n\n if (process.env.PLAYGROUND_JWT_TOKEN) {\n tokensObject[process.env.PLAYGROUND_JWT_TOKEN] = { id: 'business-api' };\n }\n if (process.env.BUSINESS_JWT_TOKEN) {\n tokensObject[process.env.BUSINESS_JWT_TOKEN] = { id: 'business-api' };\n }\n\n return `\n import { SimpleAuth, CompositeAuth } from '@mastra/core/server';\n class MastraCloudAuth extends SimpleAuth {\n constructor() {\n super({\n tokens: ${JSON.stringify(tokensObject)}\n });\n }\n async authorizeUser(user, request) {\n // Allow access to /api path\n if (request && request.url && new URL(request.url).pathname === '/api') {\n return true;\n }\n // Allow access for business-api users\n if (user && user.id === 'business-api') {\n return true;\n }\n return false;\n }\n }\n const serverConfig = mastra.getServer()\n if (serverConfig && serverConfig.auth) {\n const existingAuth = serverConfig.auth\n const cloudAuth = new MastraCloudAuth()\n \n // Use CompositeAuth to combine cloud auth with existing auth\n serverConfig.auth = new CompositeAuth([cloudAuth, existingAuth])\n }\n `;\n}\n","import os from 'os';\n\nexport const LOCAL = process.env.LOCAL === 'true';\nexport const TEAM_ID: string = process.env.TEAM_ID ?? '';\nexport const PROJECT_ID: string = process.env.PROJECT_ID ?? '';\nexport const BUILD_ID: string = process.env.BUILD_ID ?? '';\nexport const BUILD_URL: string = process.env.BUILD_URL ?? '';\nexport const LOG_REDIS_URL: string = process.env.LOG_REDIS_URL ?? 'redis://localhost:6379';\nexport const BUSINESS_JWT_TOKEN: string = process.env.BUSINESS_JWT_TOKEN ?? '';\nexport const PLAYGROUND_JWT_TOKEN: string = process.env.PLAYGROUND_JWT_TOKEN ?? '';\nexport const USER_IP_ADDRESS: string = process.env.USER_IP_ADDRESS ?? '';\nexport const MASTRA_DIRECTORY: string = process.env.MASTRA_DIRECTORY ?? 'src/mastra';\nexport const PROJECT_ENV_VARS: Record<string, string> = safelyParseJson(process.env.PROJECT_ENV_VARS ?? '{}');\n\nexport const PROJECT_ROOT = LOCAL ? os.tmpdir() + '/project' : (process.env.PROJECT_ROOT ?? '/project');\n\nexport function safelyParseJson(json: string) {\n try {\n return JSON.parse(json);\n } catch {\n return {};\n }\n}\n","import type { TransformCallback } from 'stream';\nimport type { BaseLogMessage, LogLevel } from '@mastra/core/logger';\nimport { LoggerTransport } from '@mastra/core/logger';\nimport { PinoLogger } from '@mastra/loggers';\nimport { createClient } from 'redis';\nimport { BUILD_ID, LOG_REDIS_URL, PROJECT_ID, TEAM_ID } from './constants.js';\n\nconst redisClient = createClient({\n url: LOG_REDIS_URL,\n});\n\nclass RedisTransport extends LoggerTransport {\n _transform(chunk: any, _encoding: string, callback: TransformCallback): void {\n chunk = chunk.toString();\n const logKey = `builder:logs:${TEAM_ID}:${PROJECT_ID}:${BUILD_ID}`;\n const ttl = 2 * 24 * 60 * 60; // 2 days in seconds\n const logData = typeof chunk === 'string' ? chunk : JSON.stringify(chunk);\n\n // Don't block the event loop - process logs asynchronously\n process.nextTick(async () => {\n try {\n // Connect to Redis if not already connected\n if (!redisClient.isOpen) {\n await redisClient.connect().catch(err => {\n console.error('Redis connection error:', err);\n });\n }\n\n // Use pipeline to batch Redis operations\n const pipeline = redisClient.multi();\n pipeline.rPush(logKey, logData);\n pipeline.expire(logKey, ttl);\n await pipeline.exec();\n } catch (err) {\n console.error('Redis logging error:', err);\n }\n });\n\n // Immediately pass through the chunk without waiting\n callback(null, chunk);\n }\n\n _write(chunk: any, encoding?: string, callback?: (error?: Error | null) => void): boolean {\n if (typeof callback === 'function') {\n this._transform(chunk, encoding || 'utf8', callback);\n return true;\n }\n\n this._transform(chunk, encoding || 'utf8', (error: Error | null | undefined) => {\n if (error) console.error('Transform error in write:', error);\n });\n return true;\n }\n\n async _flush(): Promise<void> {\n // // Ensure the pipeline is closed and flushed\n // redisClient.quit().catch(err => {\n // console.error('Redis connection error:', err);\n // });\n // callback();\n await new Promise(resolve => setTimeout(resolve, 10));\n }\n\n async _destroy(err: Error, cb: Function) {\n await closeLogger();\n cb(err);\n }\n\n getLogs(_args: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n returnPaginationResults?: boolean;\n page?: number;\n perPage?: number;\n }): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean }> {\n return Promise.resolve({\n logs: [],\n total: 0,\n page: _args?.page ?? 1,\n perPage: _args?.perPage ?? 100,\n hasMore: false,\n });\n }\n\n getLogsByRunId(_args?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n returnPaginationResults?: boolean;\n page?: number;\n perPage?: number;\n }): Promise<{\n logs: BaseLogMessage[];\n total: number;\n page: number;\n perPage: number;\n hasMore: boolean;\n }> {\n return Promise.resolve({\n logs: [],\n total: 0,\n page: _args?.page ?? 1,\n perPage: _args?.perPage ?? 100,\n hasMore: false,\n });\n }\n}\n\nexport const transport = new RedisTransport();\n\nexport const closeLogger = async () => {\n if (redisClient.isOpen) {\n setTimeout(async () => {\n await redisClient.quit();\n }, 10);\n }\n};\n\nexport const logger = new PinoLogger({\n level: 'info',\n transports: {\n redis: transport,\n },\n});\n","import { Transform } from 'stream';\nimport { execa } from 'execa';\nimport { PROJECT_ENV_VARS, PROJECT_ROOT } from './constants.js';\nimport { logger } from './logger.js';\n\nexport const createPinoStream = () => {\n return new Transform({\n transform(chunk, encoding, callback) {\n // Convert Buffer/string to string and trim whitespace\n const line = chunk.toString().trim();\n\n if (line) {\n // Log each line through Pino\n logger.info(line);\n }\n\n // Pass through the original data\n callback(null, chunk);\n },\n });\n};\n\nexport async function runWithExeca({\n cmd,\n args,\n cwd = process.cwd(),\n env = PROJECT_ENV_VARS,\n}: {\n cmd: string;\n args: string[];\n cwd?: string;\n env?: Record<string, string>;\n}): Promise<{ stdout?: string; stderr?: string; success: boolean; error?: Error }> {\n const pinoStream = createPinoStream();\n\n try {\n const subprocess = execa(cmd, args, {\n cwd,\n env: {\n ...process.env,\n ...env,\n },\n });\n\n // Pipe stdout and stderr through the Pino stream\n subprocess.stdout?.pipe(pinoStream);\n subprocess.stderr?.pipe(pinoStream);\n\n const { stdout, stderr, exitCode } = await subprocess;\n return { stdout, stderr, success: exitCode === 0 };\n } catch (error) {\n logger.error(`Process failed: ${error}`);\n return { success: false, error: error instanceof Error ? error : new Error(String(error)) };\n }\n}\n\nexport function runWithChildProcess(cmd: string, args: string[]): { stdout?: string; stderr?: string } {\n const pinoStream = createPinoStream();\n\n try {\n const { stdout, stderr } = require('child_process').spawnSync(cmd, args, {\n cwd: PROJECT_ROOT,\n encoding: 'utf8',\n shell: true,\n env: {\n ...process.env,\n ...PROJECT_ENV_VARS,\n },\n maxBuffer: 1024 * 1024 * 10, // 10MB buffer\n });\n\n if (stdout) {\n pinoStream.write(stdout);\n }\n if (stderr) {\n pinoStream.write(stderr);\n }\n\n pinoStream.end();\n return { stdout, stderr };\n } catch (error) {\n logger.error('Process failed' + error);\n pinoStream.end();\n return {};\n }\n}\n","import * as fs from 'fs';\nimport { join, resolve } from 'path';\n\nimport { MastraError } from '@mastra/core/error';\nimport { runWithExeca } from './execa.js';\nimport { logger } from './logger.js';\n\nconst MEMOIZED = new Map();\n\nfunction findLockFile(dir: string): string | null {\n const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'bun.lock'];\n for (const file of lockFiles) {\n if (fs.existsSync(join(dir, file))) {\n return file;\n }\n }\n const parentDir = resolve(dir, '..');\n if (parentDir !== dir) {\n return findLockFile(parentDir);\n }\n return null;\n}\n\nexport function detectPm({ path }: { path: string }): string {\n const cached = MEMOIZED.get(path);\n if (cached) {\n return cached;\n }\n\n const lockFile = findLockFile(path);\n let pm: string = 'npm';\n switch (lockFile) {\n case 'pnpm-lock.yaml':\n pm = 'pnpm';\n break;\n case 'package-lock.json':\n pm = 'npm';\n break;\n case 'yarn.lock':\n pm = 'yarn';\n break;\n case 'bun.lock':\n pm = 'bun';\n break;\n default:\n pm = 'npm';\n }\n\n MEMOIZED.set(path, pm);\n return pm;\n}\n\nexport async function installNodeVersion({ path }: { path: string }) {\n let nvmrcExists = false;\n let nodeVersionExists = false;\n\n try {\n fs.accessSync(join(path, '.nvmrc'));\n nvmrcExists = true;\n } catch {\n // File does not exist\n }\n\n try {\n fs.accessSync(join(path, '.node-version'));\n nodeVersionExists = true;\n } catch {\n // File does not exist\n }\n\n if (nvmrcExists || nodeVersionExists) {\n logger.info('Node version file found, installing specified Node.js version...');\n const { success, error } = await runWithExeca({\n cmd: 'n',\n args: ['auto'],\n cwd: path,\n });\n if (!success) {\n throw new MastraError(\n {\n id: 'NODE_FAIL_INSTALL_SPECIFIED_VERSION',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n }\n}\n\nexport async function installDeps({ path, pm }: { path: string; pm?: string }) {\n pm = pm ?? detectPm({ path });\n logger.info(`Installing dependencies with ${pm} in ${path}`);\n const args = ['install'];\n const { success, error } = await runWithExeca({ cmd: pm, args, cwd: path });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_INSTALL_DEPS',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n\nexport async function runInstallCommand({ path, installCommand }: { path: string; installCommand: string }) {\n logger.info(`Running install command ${installCommand} in workspace with ${path}`);\n const { success, error } = await runWithExeca({ cmd: 'sh', args: ['-c', installCommand], cwd: path });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_CUSTOM_INSTALL_COMMAND',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n\nexport async function runScript({ scriptName, path, args }: { scriptName: string; path: string; args?: string[] }) {\n const pm = detectPm({ path });\n logger.info(`Running script ${scriptName} in workspace with ${pm}`);\n const { success, error } = await runWithExeca({\n cmd: pm,\n args: pm === 'npm' ? ['run', scriptName, ...(args ?? [])] : [scriptName, ...(args ?? [])],\n cwd: path,\n });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_BUILD_SCRIPT',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n\nexport async function runBuildCommand({ command, path }: { command: string; path: string }) {\n logger.info(`Running build command ${command}`);\n const { success, error } = await runWithExeca({ cmd: 'sh', args: ['-c', command], cwd: path });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_BUILD_COMMAND',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n","import { join } from 'path';\nimport { MastraError } from '@mastra/core/error';\nimport { FileService } from '@mastra/deployer';\n\nimport { MASTRA_DIRECTORY } from './constants.js';\n\nexport function getMastraEntryFile(mastraDir: string) {\n try {\n const fileService = new FileService();\n return fileService.getFirstExistingFile([\n join(mastraDir, MASTRA_DIRECTORY, 'index.ts'),\n join(mastraDir, MASTRA_DIRECTORY, 'index.js'),\n ]);\n } catch (error) {\n throw new MastraError(\n {\n id: 'MASTRA_ENTRY_FILE_NOT_FOUND',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n","import { PROJECT_ID, BUILD_ID, BUILD_URL, USER_IP_ADDRESS } from './constants.js';\n\nexport function successEntrypoint() {\n return `\n if (process.env.CI !== 'true') {\n await fetch('${process.env.REPORTER_API_URL}', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ${process.env.REPORTER_API_URL_AUTH_TOKEN}',\n },\n body: JSON.stringify(${JSON.stringify({\n projectId: PROJECT_ID,\n buildId: BUILD_ID,\n status: 'success',\n url: BUILD_URL,\n userIpAddress: USER_IP_ADDRESS,\n })}),\n }).catch(err => {\n console.error('Failed to report build status to monitoring service', {\n error: err,\n });\n })\n }\n `;\n}\n","import { fileURLToPath } from 'node:url';\nimport { join, dirname } from 'path';\nimport { Deployer } from '@mastra/deployer';\nimport { copy, readJSON } from 'fs-extra/esm';\n\nimport { getAuthEntrypoint } from './utils/auth.js';\nimport { MASTRA_DIRECTORY, BUILD_ID, PROJECT_ID, TEAM_ID } from './utils/constants.js';\nimport { installDeps } from './utils/deps.js';\nimport { getMastraEntryFile } from './utils/file.js';\nimport { successEntrypoint } from './utils/report.js';\n\nexport class CloudDeployer extends Deployer {\n constructor() {\n super({ name: 'cloud' });\n }\n\n async deploy(_outputDirectory: string): Promise<void> {}\n async writeInstrumentationFile(outputDirectory: string) {\n const instrumentationFile = join(outputDirectory, 'instrumentation.mjs');\n const __dirname = dirname(fileURLToPath(import.meta.url));\n\n await copy(join(__dirname, '../templates', 'instrumentation-template.js'), instrumentationFile);\n }\n async writePackageJson(outputDirectory: string, dependencies: Map<string, string>) {\n const versions = (await readJSON(join(dirname(fileURLToPath(import.meta.url)), '../versions.json'))) as\n | Record<string, string>\n | undefined;\n for (const [pkgName, version] of Object.entries(versions || {})) {\n dependencies.set(pkgName, version);\n }\n\n return super.writePackageJson(outputDirectory, dependencies);\n }\n\n async lint() {}\n\n protected async installDependencies(outputDirectory: string, _rootDir = process.cwd()) {\n await installDeps({ path: join(outputDirectory, 'output'), pm: 'npm' });\n }\n\n async bundle(mastraDir: string, outputDirectory: string): Promise<void> {\n const currentCwd = process.cwd();\n process.chdir(mastraDir);\n\n const mastraEntryFile = getMastraEntryFile(mastraDir);\n\n const mastraAppDir = join(mastraDir, MASTRA_DIRECTORY);\n\n // Use the getAllToolPaths method to prepare tools paths\n const discoveredTools = this.getAllToolPaths(mastraAppDir);\n\n await this._bundle(\n this.getEntry(),\n mastraEntryFile,\n {\n outputDirectory,\n projectRoot: mastraDir,\n },\n discoveredTools,\n );\n process.chdir(currentCwd);\n }\n\n getAuthEntrypoint() {\n return getAuthEntrypoint();\n }\n\n private getEntry(): string {\n return `\nimport { createNodeServer, getToolExports } from '#server';\nimport { tools } from '#tools';\nimport { mastra } from '#mastra';\nimport { MultiLogger } from '@mastra/core/logger';\nimport { PinoLogger } from '@mastra/loggers';\nimport { HttpTransport } from '@mastra/loggers/http';\nimport { evaluate } from '@mastra/core/eval';\nimport { AvailableHooks, registerHook } from '@mastra/core/hooks';\nimport { LibSQLStore, LibSQLVector } from '@mastra/libsql';\nimport { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';\nconst startTime = process.env.RUNNER_START_TIME ? new Date(process.env.RUNNER_START_TIME).getTime() : Date.now();\nconst createNodeServerStartTime = Date.now();\n\nconsole.log(JSON.stringify({\n message: \"Server starting\",\n operation: 'builder.createNodeServer',\n operation_startTime: createNodeServerStartTime,\n type: \"READINESS\",\n startTime,\n metadata: {\n teamId: \"${TEAM_ID}\",\n projectId: \"${PROJECT_ID}\",\n buildId: \"${BUILD_ID}\",\n },\n}));\n\nconst transports = {}\nif (process.env.CI !== 'true') {\n if (process.env.BUSINESS_API_RUNNER_LOGS_ENDPOINT) {\n transports.default = new HttpTransport({\n url: process.env.BUSINESS_API_RUNNER_LOGS_ENDPOINT,\n headers: {\n Authorization: 'Bearer ' + process.env.BUSINESS_JWT_TOKEN,\n },\n });\n }\n}\n\nconst logger = new PinoLogger({\n name: 'MastraCloud',\n transports,\n level: 'debug',\n});\nconst existingLogger = mastra?.getLogger();\nconst combinedLogger = existingLogger ? new MultiLogger([logger, existingLogger]) : logger;\n\nmastra.setLogger({ logger: combinedLogger });\n\nif (process.env.MASTRA_STORAGE_URL && process.env.MASTRA_STORAGE_AUTH_TOKEN) {\n const { MastraStorage } = await import('@mastra/core/storage');\n logger.info('Using Mastra Cloud Storage: ' + process.env.MASTRA_STORAGE_URL)\n const storage = new LibSQLStore({\n url: process.env.MASTRA_STORAGE_URL,\n authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,\n })\n const vector = new LibSQLVector({\n connectionUrl: process.env.MASTRA_STORAGE_URL,\n authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,\n })\n\n await storage.init()\n mastra?.setStorage(storage)\n\n mastra?.memory?.setStorage(storage)\n mastra?.memory?.setVector(vector)\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 registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n if (mastra?.storage) {\n await mastra.storage.insert({\n tableName: MastraStorage.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} else if (mastra?.getStorage()) {\n await mastra.getStorage().init()\n}\n\nif (mastra?.getStorage()) {\n mastra.__registerInternalWorkflow(scoreTracesWorkflow);\n}\n\n${getAuthEntrypoint()}\n\nawait createNodeServer(mastra, { playground: false, swaggerUI: false, tools: getToolExports(tools) });\n\n${successEntrypoint()}\n\nconsole.log(JSON.stringify({\n message: \"Server started\",\n operation: 'builder.createNodeServer',\n operation_startTime: createNodeServerStartTime,\n operation_durationMs: Date.now() - createNodeServerStartTime,\n type: \"READINESS\",\n startTime,\n metadata: {\n teamId: \"${TEAM_ID}\",\n projectId: \"${PROJECT_ID}\",\n buildId: \"${BUILD_ID}\",\n },\n}));\n\n\nconsole.log(JSON.stringify({\n message: \"Runner Initialized\",\n type: \"READINESS\",\n startTime,\n durationMs: Date.now() - startTime,\n metadata: {\n teamId: \"${TEAM_ID}\",\n projectId: \"${PROJECT_ID}\",\n buildId: \"${BUILD_ID}\",\n },\n}));\n`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/utils/auth.ts","../src/utils/constants.ts","../src/utils/logger.ts","../src/utils/execa.ts","../src/utils/deps.ts","../src/utils/file.ts","../src/utils/report.ts","../src/index.ts"],"names":["os","createClient","LoggerTransport","resolve","PinoLogger","Transform","execa","fs","join","error","MastraError","FileService","Deployer","IS_DEFAULT","fileURLToPath","dirname","copy","readJSON"],"mappings":"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","file":"index.cjs","sourcesContent":["export function getAuthEntrypoint() {\n const tokensObject: Record<string, { id: string }> = {};\n\n if (process.env.PLAYGROUND_JWT_TOKEN) {\n tokensObject[process.env.PLAYGROUND_JWT_TOKEN] = { id: 'business-api' };\n }\n if (process.env.BUSINESS_JWT_TOKEN) {\n tokensObject[process.env.BUSINESS_JWT_TOKEN] = { id: 'business-api' };\n }\n\n return `\n import { SimpleAuth, CompositeAuth } from '@mastra/core/server';\n\n class MastraCloudAuth extends SimpleAuth {\n constructor() {\n super({\n tokens: ${JSON.stringify(tokensObject)}\n });\n }\n\n async authorizeUser(user, request) {\n // Allow access to /api path\n if (request && request.url && new URL(request.url).pathname === '/api') {\n return true;\n }\n // Allow access for business-api users\n if (user && user.id === 'business-api') {\n return true;\n }\n return false;\n }\n }\n\n const serverConfig = mastra.getServer()\n if (serverConfig && serverConfig.auth) {\n const existingAuth = serverConfig.auth\n const cloudAuth = new MastraCloudAuth()\n \n // Use CompositeAuth to combine cloud auth with existing auth\n serverConfig.auth = new CompositeAuth([cloudAuth, existingAuth])\n }\n `;\n}\n","import os from 'node:os';\n\nexport const LOCAL = process.env.LOCAL === 'true';\nexport const TEAM_ID: string = process.env.TEAM_ID ?? '';\nexport const PROJECT_ID: string = process.env.PROJECT_ID ?? '';\nexport const BUILD_ID: string = process.env.BUILD_ID ?? '';\nexport const BUILD_URL: string = process.env.BUILD_URL ?? '';\nexport const LOG_REDIS_URL: string = process.env.LOG_REDIS_URL ?? 'redis://localhost:6379';\nexport const BUSINESS_JWT_TOKEN: string = process.env.BUSINESS_JWT_TOKEN ?? '';\nexport const PLAYGROUND_JWT_TOKEN: string = process.env.PLAYGROUND_JWT_TOKEN ?? '';\nexport const USER_IP_ADDRESS: string = process.env.USER_IP_ADDRESS ?? '';\nexport const MASTRA_DIRECTORY: string = process.env.MASTRA_DIRECTORY ?? 'src/mastra';\nexport const PROJECT_ENV_VARS: Record<string, string> = safelyParseJson(process.env.PROJECT_ENV_VARS ?? '{}');\n\nexport const PROJECT_ROOT = LOCAL ? os.tmpdir() + '/project' : (process.env.PROJECT_ROOT ?? '/project');\n\nexport function safelyParseJson(json: string) {\n try {\n return JSON.parse(json);\n } catch {\n return {};\n }\n}\n","import type { TransformCallback } from 'node:stream';\nimport type { BaseLogMessage, LogLevel } from '@mastra/core/logger';\nimport { LoggerTransport } from '@mastra/core/logger';\nimport { PinoLogger } from '@mastra/loggers';\nimport { createClient } from 'redis';\nimport { BUILD_ID, LOG_REDIS_URL, PROJECT_ID, TEAM_ID } from './constants.js';\n\nconst redisClient = createClient({\n url: LOG_REDIS_URL,\n});\n\nclass RedisTransport extends LoggerTransport {\n _transform(chunk: any, _encoding: string, callback: TransformCallback): void {\n chunk = chunk.toString();\n const logKey = `builder:logs:${TEAM_ID}:${PROJECT_ID}:${BUILD_ID}`;\n const ttl = 2 * 24 * 60 * 60; // 2 days in seconds\n const logData = typeof chunk === 'string' ? chunk : JSON.stringify(chunk);\n\n // Don't block the event loop - process logs asynchronously\n process.nextTick(async () => {\n try {\n // Connect to Redis if not already connected\n if (!redisClient.isOpen) {\n await redisClient.connect().catch(err => {\n console.error('Redis connection error:', err);\n });\n }\n\n // Use pipeline to batch Redis operations\n const pipeline = redisClient.multi();\n pipeline.rPush(logKey, logData);\n pipeline.expire(logKey, ttl);\n await pipeline.exec();\n } catch (err) {\n console.error('Redis logging error:', err);\n }\n });\n\n // Immediately pass through the chunk without waiting\n callback(null, chunk);\n }\n\n _write(chunk: any, encoding?: string, callback?: (error?: Error | null) => void): boolean {\n if (typeof callback === 'function') {\n this._transform(chunk, encoding || 'utf8', callback);\n return true;\n }\n\n this._transform(chunk, encoding || 'utf8', (error: Error | null | undefined) => {\n if (error) console.error('Transform error in write:', error);\n });\n return true;\n }\n\n async _flush(): Promise<void> {\n // // Ensure the pipeline is closed and flushed\n // redisClient.quit().catch(err => {\n // console.error('Redis connection error:', err);\n // });\n // callback();\n await new Promise(resolve => setTimeout(resolve, 10));\n }\n\n async _destroy(err: Error, cb: Function) {\n await closeLogger();\n cb(err);\n }\n\n listLogs(_args: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n returnPaginationResults?: boolean;\n page?: number;\n perPage?: number;\n }): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean }> {\n return Promise.resolve({\n logs: [],\n total: 0,\n page: _args?.page ?? 1,\n perPage: _args?.perPage ?? 100,\n hasMore: false,\n });\n }\n\n listLogsByRunId(_args?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n returnPaginationResults?: boolean;\n page?: number;\n perPage?: number;\n }): Promise<{\n logs: BaseLogMessage[];\n total: number;\n page: number;\n perPage: number;\n hasMore: boolean;\n }> {\n return Promise.resolve({\n logs: [],\n total: 0,\n page: _args?.page ?? 1,\n perPage: _args?.perPage ?? 100,\n hasMore: false,\n });\n }\n}\n\nexport const transport = new RedisTransport();\n\nexport const closeLogger = async () => {\n if (redisClient.isOpen) {\n setTimeout(async () => {\n await redisClient.quit();\n }, 10);\n }\n};\n\nexport const logger = new PinoLogger({\n level: 'info',\n transports: {\n redis: transport,\n },\n});\n","import { Transform } from 'node:stream';\nimport { execa } from 'execa';\nimport { PROJECT_ENV_VARS, PROJECT_ROOT } from './constants.js';\nimport { logger } from './logger.js';\n\nexport const createPinoStream = () => {\n return new Transform({\n transform(chunk, encoding, callback) {\n // Convert Buffer/string to string and trim whitespace\n const line = chunk.toString().trim();\n\n if (line) {\n // Log each line through Pino\n logger.info(line);\n }\n\n // Pass through the original data\n callback(null, chunk);\n },\n });\n};\n\nexport async function runWithExeca({\n cmd,\n args,\n cwd = process.cwd(),\n env = PROJECT_ENV_VARS,\n}: {\n cmd: string;\n args: string[];\n cwd?: string;\n env?: Record<string, string>;\n}): Promise<{ stdout?: string; stderr?: string; success: boolean; error?: Error }> {\n const pinoStream = createPinoStream();\n\n try {\n const subprocess = execa(cmd, args, {\n cwd,\n env: {\n ...process.env,\n ...env,\n },\n });\n\n // Pipe stdout and stderr through the Pino stream\n subprocess.stdout?.pipe(pinoStream);\n subprocess.stderr?.pipe(pinoStream);\n\n const { stdout, stderr, exitCode } = await subprocess;\n return { stdout, stderr, success: exitCode === 0 };\n } catch (error) {\n logger.error(`Process failed: ${error}`);\n return { success: false, error: error instanceof Error ? error : new Error(String(error)) };\n }\n}\n\nexport function runWithChildProcess(cmd: string, args: string[]): { stdout?: string; stderr?: string } {\n const pinoStream = createPinoStream();\n\n try {\n const { stdout, stderr } = require('node:child_process').spawnSync(cmd, args, {\n cwd: PROJECT_ROOT,\n encoding: 'utf8',\n shell: true,\n env: {\n ...process.env,\n ...PROJECT_ENV_VARS,\n },\n maxBuffer: 1024 * 1024 * 10, // 10MB buffer\n });\n\n if (stdout) {\n pinoStream.write(stdout);\n }\n if (stderr) {\n pinoStream.write(stderr);\n }\n\n pinoStream.end();\n return { stdout, stderr };\n } catch (error) {\n logger.error('Process failed' + error);\n pinoStream.end();\n return {};\n }\n}\n","import * as fs from 'node:fs';\nimport { join, resolve } from 'node:path';\n\nimport { MastraError } from '@mastra/core/error';\nimport { runWithExeca } from './execa.js';\nimport { logger } from './logger.js';\n\nconst MEMOIZED = new Map();\n\nfunction findLockFile(dir: string): string | null {\n const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'bun.lock'];\n for (const file of lockFiles) {\n if (fs.existsSync(join(dir, file))) {\n return file;\n }\n }\n const parentDir = resolve(dir, '..');\n if (parentDir !== dir) {\n return findLockFile(parentDir);\n }\n return null;\n}\n\nexport function detectPm({ path }: { path: string }): string {\n const cached = MEMOIZED.get(path);\n if (cached) {\n return cached;\n }\n\n const lockFile = findLockFile(path);\n let pm: string = 'npm';\n switch (lockFile) {\n case 'pnpm-lock.yaml':\n pm = 'pnpm';\n break;\n case 'package-lock.json':\n pm = 'npm';\n break;\n case 'yarn.lock':\n pm = 'yarn';\n break;\n case 'bun.lock':\n pm = 'bun';\n break;\n default:\n pm = 'npm';\n }\n\n MEMOIZED.set(path, pm);\n return pm;\n}\n\nexport async function installNodeVersion({ path }: { path: string }) {\n let nvmrcExists = false;\n let nodeVersionExists = false;\n\n try {\n fs.accessSync(join(path, '.nvmrc'));\n nvmrcExists = true;\n } catch {\n // File does not exist\n }\n\n try {\n fs.accessSync(join(path, '.node-version'));\n nodeVersionExists = true;\n } catch {\n // File does not exist\n }\n\n if (nvmrcExists || nodeVersionExists) {\n logger.info('Node version file found, installing specified Node.js version...');\n const { success, error } = await runWithExeca({\n cmd: 'n',\n args: ['auto'],\n cwd: path,\n });\n if (!success) {\n throw new MastraError(\n {\n id: 'NODE_FAIL_INSTALL_SPECIFIED_VERSION',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n }\n}\n\nexport async function installDeps({ path, pm }: { path: string; pm?: string }) {\n pm = pm ?? detectPm({ path });\n logger.info(`Installing dependencies with ${pm} in ${path}`);\n // --force is needed to install peer deps for external packages in the mastra output directory\n // --legacy-peer-deps=false is needed to override other overrides by the repo package manager such as pnpm. Pnpm would set it to true\n const args = ['install', '--legacy-peer-deps=false', '--force'];\n const { success, error } = await runWithExeca({ cmd: pm, args, cwd: path });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_INSTALL_DEPS',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n\nexport async function runInstallCommand({ path, installCommand }: { path: string; installCommand: string }) {\n logger.info(`Running install command ${installCommand} in workspace with ${path}`);\n const { success, error } = await runWithExeca({ cmd: 'sh', args: ['-c', installCommand], cwd: path });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_CUSTOM_INSTALL_COMMAND',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n\nexport async function runScript({ scriptName, path, args }: { scriptName: string; path: string; args?: string[] }) {\n const pm = detectPm({ path });\n logger.info(`Running script ${scriptName} in workspace with ${pm}`);\n const { success, error } = await runWithExeca({\n cmd: pm,\n args: pm === 'npm' ? ['run', scriptName, ...(args ?? [])] : [scriptName, ...(args ?? [])],\n cwd: path,\n });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_BUILD_SCRIPT',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n\nexport async function runBuildCommand({ command, path }: { command: string; path: string }) {\n logger.info(`Running build command ${command}`);\n const { success, error } = await runWithExeca({ cmd: 'sh', args: ['-c', command], cwd: path });\n if (!success) {\n throw new MastraError(\n {\n id: 'FAIL_BUILD_COMMAND',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n","import { join } from 'node:path';\nimport { MastraError } from '@mastra/core/error';\nimport { FileService } from '@mastra/deployer';\n\nimport { MASTRA_DIRECTORY } from './constants.js';\n\nexport function getMastraEntryFile(mastraDir: string) {\n try {\n const fileService = new FileService();\n return fileService.getFirstExistingFile([\n join(mastraDir, MASTRA_DIRECTORY, 'index.ts'),\n join(mastraDir, MASTRA_DIRECTORY, 'index.js'),\n ]);\n } catch (error) {\n throw new MastraError(\n {\n id: 'MASTRA_ENTRY_FILE_NOT_FOUND',\n category: 'USER',\n domain: 'DEPLOYER',\n },\n error,\n );\n }\n}\n","import { PROJECT_ID, BUILD_ID, BUILD_URL, USER_IP_ADDRESS } from './constants.js';\n\nexport function successEntrypoint() {\n return `\n if (process.env.CI !== 'true') {\n await fetch('${process.env.REPORTER_API_URL}', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ${process.env.REPORTER_API_URL_AUTH_TOKEN}',\n },\n body: JSON.stringify(${JSON.stringify({\n projectId: PROJECT_ID,\n buildId: BUILD_ID,\n status: 'success',\n url: BUILD_URL,\n userIpAddress: USER_IP_ADDRESS,\n })}),\n }).catch(err => {\n console.error('Failed to report build status to monitoring service', {\n error: err,\n });\n })\n }\n `;\n}\n","import { join, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport type { Config } from '@mastra/core/mastra';\nimport { Deployer } from '@mastra/deployer';\nimport { IS_DEFAULT } from '@mastra/deployer/bundler';\nimport { copy, readJSON } from 'fs-extra/esm';\n\nimport { getAuthEntrypoint } from './utils/auth.js';\nimport { MASTRA_DIRECTORY, BUILD_ID, PROJECT_ID, TEAM_ID } from './utils/constants.js';\nimport { installDeps } from './utils/deps.js';\nimport { getMastraEntryFile } from './utils/file.js';\nimport { successEntrypoint } from './utils/report.js';\n\nexport class CloudDeployer extends Deployer {\n private studio: boolean;\n\n constructor({ studio }: { studio?: boolean } = {}) {\n super({ name: 'cloud' });\n this.studio = studio ?? false;\n }\n\n protected async getUserBundlerOptions(\n mastraEntryFile: string,\n outputDirectory: string,\n ): Promise<NonNullable<Config['bundler']>> {\n const bundlerOptions = await super.getUserBundlerOptions(mastraEntryFile, outputDirectory);\n\n if (!bundlerOptions?.[IS_DEFAULT]) {\n return bundlerOptions;\n }\n\n return {\n ...bundlerOptions,\n externals: true,\n };\n }\n\n async deploy(_outputDirectory: string): Promise<void> {}\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n if (this.studio) {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n const studioServePath = join(outputDirectory, this.outputDir, 'studio');\n await copy(join(dirname(__dirname), join('dist', 'studio')), studioServePath, {\n overwrite: true,\n });\n }\n }\n async writePackageJson(outputDirectory: string, dependencies: Map<string, string>) {\n const versions = (await readJSON(join(dirname(fileURLToPath(import.meta.url)), '../versions.json'))) as\n | Record<string, string>\n | undefined;\n for (const [pkgName, version] of Object.entries(versions || {})) {\n dependencies.set(pkgName, version);\n }\n\n return super.writePackageJson(outputDirectory, dependencies);\n }\n\n async lint() {}\n\n protected async installDependencies(outputDirectory: string, _rootDir = process.cwd()) {\n await installDeps({ path: join(outputDirectory, 'output'), pm: 'npm' });\n }\n\n async bundle(mastraDir: string, outputDirectory: string): Promise<void> {\n const currentCwd = process.cwd();\n process.chdir(mastraDir);\n\n const mastraEntryFile = getMastraEntryFile(mastraDir);\n\n const mastraAppDir = join(mastraDir, MASTRA_DIRECTORY);\n\n // Use the getAllToolPaths method to prepare tools paths\n const discoveredTools = this.getAllToolPaths(mastraAppDir);\n\n await this.prepare(outputDirectory);\n await this._bundle(\n this.getEntry(),\n mastraEntryFile,\n {\n outputDirectory,\n projectRoot: mastraDir,\n },\n discoveredTools,\n );\n process.chdir(currentCwd);\n }\n\n getAuthEntrypoint() {\n return getAuthEntrypoint();\n }\n\n private getEntry(): string {\n return `\nimport { createNodeServer, getToolExports } from '#server';\nimport { tools } from '#tools';\nimport { mastra } from '#mastra';\nimport { MultiLogger } from '@mastra/core/logger';\nimport { PinoLogger } from '@mastra/loggers';\nimport { HttpTransport } from '@mastra/loggers/http';\nimport { LibSQLStore, LibSQLVector } from '@mastra/libsql';\nimport { scoreTracesWorkflow } from '@mastra/core/evals/scoreTraces';\nconst startTime = process.env.RUNNER_START_TIME ? new Date(process.env.RUNNER_START_TIME).getTime() : Date.now();\nconst createNodeServerStartTime = Date.now();\n\nconsole.log(JSON.stringify({\n message: \"Server starting\",\n operation: 'builder.createNodeServer',\n operation_startTime: createNodeServerStartTime,\n type: \"READINESS\",\n startTime,\n metadata: {\n teamId: \"${TEAM_ID}\",\n projectId: \"${PROJECT_ID}\",\n buildId: \"${BUILD_ID}\",\n },\n}));\n\nconst transports = {}\nif (process.env.CI !== 'true') {\n if (process.env.BUSINESS_API_RUNNER_LOGS_ENDPOINT) {\n transports.default = new HttpTransport({\n url: process.env.BUSINESS_API_RUNNER_LOGS_ENDPOINT,\n headers: {\n Authorization: 'Bearer ' + process.env.BUSINESS_JWT_TOKEN,\n },\n });\n }\n}\n\nconst logger = new PinoLogger({\n name: 'MastraCloud',\n transports,\n level: 'debug',\n});\nconst existingLogger = mastra?.getLogger();\nconst combinedLogger = existingLogger ? new MultiLogger([logger, existingLogger]) : logger;\n\nmastra.setLogger({ logger: combinedLogger });\n\nif (process.env.MASTRA_STORAGE_URL && process.env.MASTRA_STORAGE_AUTH_TOKEN) {\n const { MastraStorage } = await import('@mastra/core/storage');\n logger.info('Using Mastra Cloud Storage: ' + process.env.MASTRA_STORAGE_URL)\n const storage = new LibSQLStore({\n id: 'mastra-cloud-storage-libsql',\n url: process.env.MASTRA_STORAGE_URL,\n authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,\n })\n const vector = new LibSQLVector({\n id: 'mastra-cloud-storage-libsql-vector',\n url: process.env.MASTRA_STORAGE_URL,\n authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,\n })\n\n await storage.init()\n mastra?.setStorage(storage)\n} else if (mastra?.storage) {\n mastra.storage.init()\n}\n\nif (mastra?.getStorage()) {\n mastra.__registerInternalWorkflow(scoreTracesWorkflow);\n}\n\n${getAuthEntrypoint()}\n\nawait createNodeServer(mastra, { studio: ${this.studio}, swaggerUI: false, tools: getToolExports(tools) });\n\n${successEntrypoint()}\n\nconsole.log(JSON.stringify({\n message: \"Server started\",\n operation: 'builder.createNodeServer',\n operation_startTime: createNodeServerStartTime,\n operation_durationMs: Date.now() - createNodeServerStartTime,\n type: \"READINESS\",\n startTime,\n metadata: {\n teamId: \"${TEAM_ID}\",\n projectId: \"${PROJECT_ID}\",\n buildId: \"${BUILD_ID}\",\n },\n}));\n\n\nconsole.log(JSON.stringify({\n message: \"Runner Initialized\",\n type: \"READINESS\",\n startTime,\n durationMs: Date.now() - startTime,\n metadata: {\n teamId: \"${TEAM_ID}\",\n projectId: \"${PROJECT_ID}\",\n buildId: \"${BUILD_ID}\",\n },\n}));\n`;\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,13 @@
1
+ import type { Config } from '@mastra/core/mastra';
1
2
  import { Deployer } from '@mastra/deployer';
2
3
  export declare class CloudDeployer extends Deployer {
3
- constructor();
4
+ private studio;
5
+ constructor({ studio }?: {
6
+ studio?: boolean;
7
+ });
8
+ protected getUserBundlerOptions(mastraEntryFile: string, outputDirectory: string): Promise<NonNullable<Config['bundler']>>;
4
9
  deploy(_outputDirectory: string): Promise<void>;
5
- writeInstrumentationFile(outputDirectory: string): Promise<void>;
10
+ prepare(outputDirectory: string): Promise<void>;
6
11
  writePackageJson(outputDirectory: string, dependencies: Map<string, string>): Promise<void>;
7
12
  lint(): Promise<void>;
8
13
  protected installDependencies(outputDirectory: string, _rootDir?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAS5C,qBAAa,aAAc,SAAQ,QAAQ;;IAKnC,MAAM,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,wBAAwB,CAAC,eAAe,EAAE,MAAM;IAMhD,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAW3E,IAAI;cAEM,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,SAAgB;IAI/E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvE,iBAAiB;IAIjB,OAAO,CAAC,QAAQ;CA4IjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAU5C,qBAAa,aAAc,SAAQ,QAAQ;IACzC,OAAO,CAAC,MAAM,CAAU;gBAEZ,EAAE,MAAM,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO;cAKjC,qBAAqB,CACnC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAapC,MAAM,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/C,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAW3E,IAAI;cAEM,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,SAAgB;IAI/E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvE,iBAAiB;IAIjB,OAAO,CAAC,QAAQ;CA0GjB"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
+ import { dirname, join, resolve } from 'path';
1
2
  import { fileURLToPath } from 'url';
2
- import { join, dirname, resolve } from 'path';
3
3
  import { Deployer, FileService } from '@mastra/deployer';
4
+ import { IS_DEFAULT } from '@mastra/deployer/bundler';
4
5
  import { copy, readJSON } from 'fs-extra/esm';
5
6
  import os from 'os';
6
7
  import * as fs from 'fs';
@@ -24,12 +25,14 @@ function getAuthEntrypoint() {
24
25
  }
25
26
  return `
26
27
  import { SimpleAuth, CompositeAuth } from '@mastra/core/server';
28
+
27
29
  class MastraCloudAuth extends SimpleAuth {
28
30
  constructor() {
29
31
  super({
30
32
  tokens: ${JSON.stringify(tokensObject)}
31
33
  });
32
34
  }
35
+
33
36
  async authorizeUser(user, request) {
34
37
  // Allow access to /api path
35
38
  if (request && request.url && new URL(request.url).pathname === '/api') {
@@ -42,6 +45,7 @@ function getAuthEntrypoint() {
42
45
  return false;
43
46
  }
44
47
  }
48
+
45
49
  const serverConfig = mastra.getServer()
46
50
  if (serverConfig && serverConfig.auth) {
47
51
  const existingAuth = serverConfig.auth
@@ -112,7 +116,7 @@ var RedisTransport = class extends LoggerTransport {
112
116
  await closeLogger();
113
117
  cb(err);
114
118
  }
115
- getLogs(_args) {
119
+ listLogs(_args) {
116
120
  return Promise.resolve({
117
121
  logs: [],
118
122
  total: 0,
@@ -121,7 +125,7 @@ var RedisTransport = class extends LoggerTransport {
121
125
  hasMore: false
122
126
  });
123
127
  }
124
- getLogsByRunId(_args) {
128
+ listLogsByRunId(_args) {
125
129
  return Promise.resolve({
126
130
  logs: [],
127
131
  total: 0,
@@ -227,7 +231,7 @@ function detectPm({ path }) {
227
231
  async function installDeps({ path, pm }) {
228
232
  pm = pm ?? detectPm({ path });
229
233
  logger.info(`Installing dependencies with ${pm} in ${path}`);
230
- const args = ["install"];
234
+ const args = ["install", "--legacy-peer-deps=false", "--force"];
231
235
  const { success, error } = await runWithExeca({ cmd: pm, args, cwd: path });
232
236
  if (!success) {
233
237
  throw new MastraError(
@@ -287,15 +291,33 @@ function successEntrypoint() {
287
291
 
288
292
  // src/index.ts
289
293
  var CloudDeployer = class extends Deployer {
290
- constructor() {
294
+ studio;
295
+ constructor({ studio } = {}) {
291
296
  super({ name: "cloud" });
297
+ this.studio = studio ?? false;
298
+ }
299
+ async getUserBundlerOptions(mastraEntryFile, outputDirectory) {
300
+ const bundlerOptions = await super.getUserBundlerOptions(mastraEntryFile, outputDirectory);
301
+ if (!bundlerOptions?.[IS_DEFAULT]) {
302
+ return bundlerOptions;
303
+ }
304
+ return {
305
+ ...bundlerOptions,
306
+ externals: true
307
+ };
292
308
  }
293
309
  async deploy(_outputDirectory) {
294
310
  }
295
- async writeInstrumentationFile(outputDirectory) {
296
- const instrumentationFile = join(outputDirectory, "instrumentation.mjs");
297
- const __dirname = dirname(fileURLToPath(import.meta.url));
298
- await copy(join(__dirname, "../templates", "instrumentation-template.js"), instrumentationFile);
311
+ async prepare(outputDirectory) {
312
+ await super.prepare(outputDirectory);
313
+ if (this.studio) {
314
+ const __filename = fileURLToPath(import.meta.url);
315
+ const __dirname = dirname(__filename);
316
+ const studioServePath = join(outputDirectory, this.outputDir, "studio");
317
+ await copy(join(dirname(__dirname), join("dist", "studio")), studioServePath, {
318
+ overwrite: true
319
+ });
320
+ }
299
321
  }
300
322
  async writePackageJson(outputDirectory, dependencies) {
301
323
  const versions = await readJSON(join(dirname(fileURLToPath(import.meta.url)), "../versions.json"));
@@ -315,6 +337,7 @@ var CloudDeployer = class extends Deployer {
315
337
  const mastraEntryFile = getMastraEntryFile(mastraDir);
316
338
  const mastraAppDir = join(mastraDir, MASTRA_DIRECTORY);
317
339
  const discoveredTools = this.getAllToolPaths(mastraAppDir);
340
+ await this.prepare(outputDirectory);
318
341
  await this._bundle(
319
342
  this.getEntry(),
320
343
  mastraEntryFile,
@@ -337,10 +360,8 @@ import { mastra } from '#mastra';
337
360
  import { MultiLogger } from '@mastra/core/logger';
338
361
  import { PinoLogger } from '@mastra/loggers';
339
362
  import { HttpTransport } from '@mastra/loggers/http';
340
- import { evaluate } from '@mastra/core/eval';
341
- import { AvailableHooks, registerHook } from '@mastra/core/hooks';
342
363
  import { LibSQLStore, LibSQLVector } from '@mastra/libsql';
343
- import { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';
364
+ import { scoreTracesWorkflow } from '@mastra/core/evals/scoreTraces';
344
365
  const startTime = process.env.RUNNER_START_TIME ? new Date(process.env.RUNNER_START_TIME).getTime() : Date.now();
345
366
  const createNodeServerStartTime = Date.now();
346
367
 
@@ -383,52 +404,20 @@ if (process.env.MASTRA_STORAGE_URL && process.env.MASTRA_STORAGE_AUTH_TOKEN) {
383
404
  const { MastraStorage } = await import('@mastra/core/storage');
384
405
  logger.info('Using Mastra Cloud Storage: ' + process.env.MASTRA_STORAGE_URL)
385
406
  const storage = new LibSQLStore({
407
+ id: 'mastra-cloud-storage-libsql',
386
408
  url: process.env.MASTRA_STORAGE_URL,
387
409
  authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,
388
410
  })
389
411
  const vector = new LibSQLVector({
390
- connectionUrl: process.env.MASTRA_STORAGE_URL,
412
+ id: 'mastra-cloud-storage-libsql-vector',
413
+ url: process.env.MASTRA_STORAGE_URL,
391
414
  authToken: process.env.MASTRA_STORAGE_AUTH_TOKEN,
392
415
  })
393
416
 
394
417
  await storage.init()
395
418
  mastra?.setStorage(storage)
396
-
397
- mastra?.memory?.setStorage(storage)
398
- mastra?.memory?.setVector(vector)
399
-
400
- registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {
401
- evaluate({
402
- agentName,
403
- input,
404
- metric,
405
- output,
406
- runId,
407
- globalRunId: runId,
408
- instructions,
409
- });
410
- });
411
- registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {
412
- if (mastra?.storage) {
413
- await mastra.storage.insert({
414
- tableName: MastraStorage.TABLE_EVALS,
415
- record: {
416
- input: traceObject.input,
417
- output: traceObject.output,
418
- result: JSON.stringify(traceObject.result),
419
- agent_name: traceObject.agentName,
420
- metric_name: traceObject.metricName,
421
- instructions: traceObject.instructions,
422
- test_info: null,
423
- global_run_id: traceObject.globalRunId,
424
- run_id: traceObject.runId,
425
- created_at: new Date().toISOString(),
426
- },
427
- });
428
- }
429
- });
430
- } else if (mastra?.getStorage()) {
431
- await mastra.getStorage().init()
419
+ } else if (mastra?.storage) {
420
+ mastra.storage.init()
432
421
  }
433
422
 
434
423
  if (mastra?.getStorage()) {
@@ -437,7 +426,7 @@ if (mastra?.getStorage()) {
437
426
 
438
427
  ${getAuthEntrypoint()}
439
428
 
440
- await createNodeServer(mastra, { playground: false, swaggerUI: false, tools: getToolExports(tools) });
429
+ await createNodeServer(mastra, { studio: ${this.studio}, swaggerUI: false, tools: getToolExports(tools) });
441
430
 
442
431
  ${successEntrypoint()}
443
432