mastra 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{chunk-6OVC46IA.js → chunk-7CDTV2JD.js} +3 -3
  3. package/dist/{chunk-6OVC46IA.js.map → chunk-7CDTV2JD.js.map} +1 -1
  4. package/dist/commands/create/create.js +1 -1
  5. package/dist/docs/SKILL.md +1 -1
  6. package/dist/docs/assets/SOURCE_MAP.json +2 -2
  7. package/dist/index.js +2 -2
  8. package/dist/studio/assets/{index-CAhOJ76h.js → index-0ZhaJMzn.js} +1 -1
  9. package/dist/studio/assets/{index-CseSg5yk.js → index-B818jJF8.js} +1 -1
  10. package/dist/studio/assets/{index-BpoMIw8g.js → index-BRnbZ_zY.js} +1 -1
  11. package/dist/studio/assets/{index-DSjNGVNI.js → index-BUA1uxDU.js} +1 -1
  12. package/dist/studio/assets/{index-D0pTkkLw.js → index-B_OqxYGM.js} +1 -1
  13. package/dist/studio/assets/{index-Dg_THJJw.js → index-BcbyRcdO.js} +1 -1
  14. package/dist/studio/assets/{index-Cd6JHeB5.js → index-Bd3KOA-e.js} +1 -1
  15. package/dist/studio/assets/{index-BVriOCM0.js → index-Btqfk5yp.js} +1 -1
  16. package/dist/studio/assets/{index-N93jCVoW.js → index-C2OqAplM.js} +1 -1
  17. package/dist/studio/assets/{index-nDt0W1Zw.js → index-C4t9LjwW.js} +1 -1
  18. package/dist/studio/assets/{index-Dhg6kAS3.js → index-DE1Uf-DZ.js} +1 -1
  19. package/dist/studio/assets/{index-Bm2xYDEl.js → index-DHBy70un.js} +1 -1
  20. package/dist/studio/assets/{index-D3l9lLXE.js → index-DT-bmX_c.js} +1 -1
  21. package/dist/studio/assets/{index-DGPyX9ya.js → index-DU3FtUyc.js} +1 -1
  22. package/dist/studio/assets/{index-v6qxr_LD.js → index-J2K1uPqD.js} +1 -1
  23. package/dist/studio/assets/{index-o5DxNa4w.js → index-aMP3lwxt.js} +1 -1
  24. package/dist/studio/assets/{index-BV4Fmegt.js → index-bWOYDAHF.js} +1 -1
  25. package/dist/studio/assets/{index-C5hy8KM3.js → index-hTIM_Qvg.js} +1 -1
  26. package/dist/studio/assets/{main-P5XI6kHb.js → main-CP6EB5Ig.js} +46 -46
  27. package/dist/studio/index.html +1 -1
  28. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # mastra
2
2
 
3
+ ## 1.8.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`cc0469d`](https://github.com/mastra-ai/mastra/commit/cc0469d671d6f7a426013e4425f9501da6fa45f2)]:
8
+ - @mastra/core@1.32.1
9
+ - @mastra/deployer@1.32.1
10
+
11
+ ## 1.8.1-alpha.0
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [[`cc0469d`](https://github.com/mastra-ai/mastra/commit/cc0469d671d6f7a426013e4425f9501da6fa45f2)]:
16
+ - @mastra/core@1.32.1-alpha.0
17
+ - @mastra/deployer@1.32.1-alpha.0
18
+
3
19
  ## 1.8.0
4
20
 
5
21
  ### Minor Changes
@@ -14,7 +14,7 @@ import { execa } from 'execa';
14
14
  // package.json
15
15
  var package_default = {
16
16
  name: "mastra",
17
- version: "1.8.0",
17
+ version: "1.8.1",
18
18
  license: "Apache-2.0",
19
19
  description: "cli for mastra",
20
20
  type: "module",
@@ -1042,5 +1042,5 @@ async function createFromTemplate(args) {
1042
1042
  }
1043
1043
 
1044
1044
  export { create, createLogger, init, logger, package_default };
1045
- //# sourceMappingURL=chunk-6OVC46IA.js.map
1046
- //# sourceMappingURL=chunk-6OVC46IA.js.map
1045
+ //# sourceMappingURL=chunk-7CDTV2JD.js.map
1046
+ //# sourceMappingURL=chunk-7CDTV2JD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/utils/logger.ts","../src/utils/clone-template.ts","../src/utils/template-utils.ts","../src/commands/init/skills-install.ts","../src/commands/init/init.ts","../src/commands/create/utils.ts","../src/commands/create/create.ts"],"names":["spinner","p","p2","exec","util","child_process","path","fs","p3","color","s","fsSync"],"mappings":";;;;;;;;;;;;;;AAAA,IAAA,eAAA,GAAA;AAAA,EACE,IAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAW,OAAA;AAAA,EACX,OAAA,EAAW,YAAA;AAAA,EACX,WAAA,EAAe,gBAAA;AAAA,EACf,IAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAQ,eAAA;AAAA,EACR,KAAA,EAAS,iBAAA;AAAA,EACT,GAAA,EAAO;AAAA,IACL,MAAA,EAAU;AAAA,GACZ;AAAA,EACA,OAAA,EAAW;AAAA,IACT,GAAA,EAAK,iBAAA;AAAA,IACL,gBAAA,EAAkB,gBAAA;AAAA,IAClB,oBAAA,EAAsB,yCAAA;AAAA,IACtB,UAAA,EAAY;AAAA,MACV,UAAA;AAAA,MACA;AAAA;AACF,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP,MAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,OAAA,EAAW;AAAA,IACT,WAAA,EAAa,uCAAA;AAAA,IACb,OAAA,EAAW,iDAAA;AAAA,IACX,IAAA,EAAQ,YAAA;AAAA,IACR,YAAA,EAAc,cAAA;AAAA,IACd,KAAA,EAAS,oCAAA;AAAA,IACT,SAAA,EAAa,4BAAA;AAAA,IACb,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,QAAA,EAAY;AAAA,IACV,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,EAAgB;AAAA,IACd,gBAAA,EAAkB,QAAA;AAAA,IAClB,eAAA,EAAiB,QAAA;AAAA,IACjB,QAAA,EAAY,QAAA;AAAA,IACZ,kBAAA,EAAoB,aAAA;AAAA,IACpB,iBAAA,EAAmB,aAAA;AAAA,IACnB,SAAA,EAAa,SAAA;AAAA,IACb,MAAA,EAAU,SAAA;AAAA,IACV,KAAA,EAAS,QAAA;AAAA,IACT,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,QAAA;AAAA,IACZ,WAAA,EAAa,QAAA;AAAA,IACb,eAAA,EAAiB,SAAA;AAAA,IACjB,UAAA,EAAc,QAAA;AAAA,IACd,cAAA,EAAgB,QAAA;AAAA,IAChB,MAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAS,SAAA;AAAA,IACT,eAAA,EAAiB,QAAA;AAAA,IACjB,aAAA,EAAe,QAAA;AAAA,IACf,qBAAA,EAAuB,QAAA;AAAA,IACvB,eAAA,EAAiB;AAAA,GACnB;AAAA,EACA,eAAA,EAAmB;AAAA,IACjB,6BAAA,EAA+B,SAAA;AAAA,IAC/B,gBAAA,EAAkB,aAAA;AAAA,IAClB,sBAAA,EAAwB,aAAA;AAAA,IACxB,yBAAA,EAA2B,aAAA;AAAA,IAC3B,cAAA,EAAgB,aAAA;AAAA,IAChB,iBAAA,EAAmB,QAAA;AAAA,IACnB,iBAAA,EAAmB,SAAA;AAAA,IACnB,aAAA,EAAe,UAAA;AAAA,IACf,eAAA,EAAiB,QAAA;AAAA,IACjB,sBAAA,EAAwB,QAAA;AAAA,IACxB,oBAAA,EAAsB,QAAA;AAAA,IACtB,qBAAA,EAAuB,UAAA;AAAA,IACvB,YAAA,EAAc,UAAA;AAAA,IACd,MAAA,EAAU,SAAA;AAAA,IACV,KAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAU,SAAA;AAAA,IACV,IAAA,EAAQ,QAAA;AAAA,IACR,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAc,UAAA;AAAA,IACd,MAAA,EAAU;AAAA,GACZ;AAAA,EACA,gBAAA,EAAoB;AAAA,IAClB,cAAA,EAAgB,oBAAA;AAAA,IAChB,GAAA,EAAO;AAAA,GACT;AAAA,EACA,QAAA,EAAY,mBAAA;AAAA,EACZ,UAAA,EAAc;AAAA,IACZ,IAAA,EAAQ,KAAA;AAAA,IACR,GAAA,EAAO,6CAAA;AAAA,IACP,SAAA,EAAa;AAAA,GACf;AAAA,EACA,IAAA,EAAQ;AAAA,IACN,GAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAW;AAAA,IACT,IAAA,EAAQ;AAAA;AAEZ;AC7GO,IAAM,MAAA,GAAS,aAAa,KAAK;AAEjC,SAAS,YAAA,CAAa,QAAiB,KAAA,EAAO;AACnD,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IACpB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,QAAQ,OAAA,GAAU;AAAA,GAC1B,CAAA;AACH;;;ACKA,IAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,aAAA,CAAc,IAAI,CAAA;AAU9C,eAAsB,cAAc,OAAA,EAAgD;AAClF,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,SAAA,EAAW,MAAA,EAAQ,aAAY,GAAI,OAAA;AAClE,EAAA,MAAM,WAAA,GAAc,YAAY,IAAA,CAAK,OAAA,CAAQ,WAAW,WAAW,CAAA,GAAI,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAA;AAE/F,EAAA,MAAMA,QAAAA,GAAU,YAAA,CAAa,EAAE,IAAA,EAAM,CAAA,kBAAA,EAAqB,SAAS,KAAK,CAAA,IAAA,CAAA,EAAQ,CAAA,CAAE,KAAA,EAAM;AAExF,EAAA,IAAI;AAEF,IAAA,IAAI,MAAM,eAAA,CAAgB,WAAW,CAAA,EAAG;AACtC,MAAAA,QAAAA,CAAQ,KAAA,CAAM,CAAA,UAAA,EAAa,WAAW,CAAA,eAAA,CAAiB,CAAA;AACvD,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,WAAW,CAAA,eAAA,CAAiB,CAAA;AAAA,IAC3D;AAGA,IAAA,MAAM,yBAAA,CAA0B,QAAA,CAAS,SAAA,EAAW,WAAA,EAAa,MAAM,CAAA;AAGvE,IAAA,MAAM,iBAAA,CAAkB,aAAa,WAAW,CAAA;AAGhD,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,WAAA,EAAa,cAAc,CAAA;AAC5D,IAAA,IAAI,MAAM,UAAA,CAAW,cAAc,CAAA,EAAG;AACpC,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,WAAA,EAAa,MAAM,CAAA;AAC7C,MAAA,MAAM,EAAA,CAAG,QAAA,CAAS,cAAA,EAAgB,OAAO,CAAA;AAGzC,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,MAAM,aAAA,CAAc,SAAS,WAAW,CAAA;AAAA,MAC1C;AAAA,IACF;AAEA,IAAAA,SAAQ,OAAA,CAAQ,CAAA,UAAA,EAAa,SAAS,KAAK,CAAA,yBAAA,EAA4B,WAAW,CAAA,CAAE,CAAA;AACpF,IAAA,OAAO,WAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAAA,QAAAA,CAAQ,MAAM,CAAA,0BAAA,EAA6B,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AACrG,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAEA,eAAe,gBAAgB,OAAA,EAAmC;AAChE,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,MAAM,EAAA,CAAG,IAAA,CAAK,OAAO,CAAA;AAClC,IAAA,OAAO,KAAK,WAAA,EAAY;AAAA,EAC1B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,eAAe,WAAW,QAAA,EAAoC;AAC5D,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,MAAM,EAAA,CAAG,IAAA,CAAK,QAAQ,CAAA;AACnC,IAAA,OAAO,KAAK,MAAA,EAAO;AAAA,EACrB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,eAAe,yBAAA,CAA0B,OAAA,EAAiB,UAAA,EAAoB,MAAA,EAAgC;AAE5G,EAAA,MAAM,GAAG,KAAA,CAAM,UAAA,EAAY,EAAE,SAAA,EAAW,MAAM,CAAA;AAE9C,EAAA,IAAI;AAEF,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,OAAA,CAAQ,qBAAA,EAAuB,EAAE,CAAA;AAE3D,IAAA,MAAM,sBAAsB,MAAA,GAAS,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GAAK,SAAA;AAChE,IAAA,MAAM,YAAA,GAAe,WAAW,KAAA,CAAM,CAAC,OAAO,OAAA,EAAS,mBAAA,EAAqB,UAAU,CAAC,CAAA;AACvF,IAAA,MAAM,KAAK,YAAA,EAAc;AAAA,MACvB,GAAA,EAAK,QAAQ,GAAA;AAAI,KAClB,CAAA;AAAA,EACH,CAAA,CAAA,MAAQ;AAEN,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,CAAC,KAAA,EAAO,OAAO,CAAA;AAE/B,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,OAAA,CAAQ,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,MACjC;AACA,MAAA,OAAA,CAAQ,IAAA,CAAK,SAAS,UAAU,CAAA;AAEhC,MAAA,MAAM,UAAA,GAAa,UAAA,CAAW,KAAA,CAAM,OAAO,CAAA;AAC3C,MAAA,MAAM,KAAK,UAAA,EAAY;AAAA,QACrB,GAAA,EAAK,QAAQ,GAAA;AAAI,OAClB,CAAA;AAGD,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,MAAM,CAAA;AAC3C,MAAA,IAAI,MAAM,eAAA,CAAgB,MAAM,CAAA,EAAG;AACjC,QAAA,MAAM,EAAA,CAAG,GAAG,MAAA,EAAQ,EAAE,WAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AAAA,MACtD;AAAA,IACF,SAAS,QAAA,EAAU;AACjB,MAAA,MAAM,IAAI,MAAM,CAAA,4BAAA,EAA+B,QAAA,YAAoB,QAAQ,QAAA,CAAS,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AAAA,IACjH;AAAA,EACF;AACF;AAEA,eAAe,iBAAA,CAAkB,aAAqB,WAAA,EAAoC;AACxF,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,IAAA,CAAK,WAAA,EAAa,cAAc,CAAA;AAE7D,EAAA,IAAI;AACF,IAAA,MAAM,kBAAA,GAAqB,MAAM,EAAA,CAAG,QAAA,CAAS,iBAAiB,OAAO,CAAA;AACrE,IAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,kBAAkB,CAAA;AAGjD,IAAA,WAAA,CAAY,IAAA,GAAO,WAAA;AAGnB,IAAA,MAAM,EAAA,CAAG,UAAU,eAAA,EAAiB,IAAA,CAAK,UAAU,WAAA,EAAa,IAAA,EAAM,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,EACnF,SAAS,KAAA,EAAO;AAEd,IAAA,MAAA,CAAO,IAAA,CAAK,iCAAiC,EAAE,KAAA,EAAO,iBAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,eAAA,EAAiB,CAAA;AAAA,EAClH;AACF;AAEA,eAAe,aAAA,CAAc,SAAiB,WAAA,EAAyC;AACrF,EAAA,IAAI;AACF,IAAA,MAAM,UAAA,GAAa,MAAM,EAAA,CAAG,QAAA,CAAS,SAAS,OAAO,CAAA;AACrD,IAAA,MAAM,WAAA,GAAc,mBAAmB,WAAW,CAAA;AAElD,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,MAAA,CAAO,IAAA,CAAK,6CAAA,EAA+C,EAAE,QAAA,EAAU,aAAa,CAAA;AACpF,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,UAAA,GAAa,WAAA,CAAY,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA;AAG/C,IAAA,MAAM,iBAAiB,UAAA,CAAW,OAAA,CAAQ,YAAA,EAAc,CAAA,MAAA,EAAS,UAAU,CAAA,CAAE,CAAA;AAE7E,IAAA,MAAM,EAAA,CAAG,SAAA,CAAU,OAAA,EAAS,cAAA,EAAgB,OAAO,CAAA;AACnD,IAAA,MAAA,CAAO,IAAA,CAAK,uBAAA,EAAyB,EAAE,KAAA,EAAO,YAAY,CAAA;AAAA,EAC5D,SAAS,KAAA,EAAO;AAEd,IAAA,MAAA,CAAO,IAAA,CAAK,8BAA8B,EAAE,KAAA,EAAO,iBAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,eAAA,EAAiB,CAAA;AAAA,EAC/G;AACF;AAEA,eAAsB,mBAAA,CAAoB,aAAqB,cAAA,EAAwC;AACrG,EAAA,MAAMA,WAAU,YAAA,CAAa,EAAE,MAAM,4BAAA,EAA8B,EAAE,KAAA,EAAM;AAE3E,EAAA,IAAI;AAEF,IAAA,MAAM,EAAA,GAAK,kBAAkB,iBAAA,EAAkB;AAE/C,IAAA,MAAM,iBAAiB,UAAA,CAAW,KAAA,CAAM,CAAC,EAAA,EAAI,SAAS,CAAC,CAAA;AAEvD,IAAA,MAAM,KAAK,cAAA,EAAgB;AAAA,MACzB,GAAA,EAAK;AAAA,KACN,CAAA;AAED,IAAAA,QAAAA,CAAQ,QAAQ,qCAAqC,CAAA;AAAA,EACvD,SAAS,KAAA,EAAO;AACd,IAAAA,QAAAA,CAAQ,MAAM,CAAA,gCAAA,EAAmC,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AAC3G,IAAA,MAAM,KAAA;AAAA,EACR;AACF;ACvKA,IAAM,iBAAA,GAAoB,OAAA,CAAQ,GAAA,CAAI,wBAAA,IAA4B,sCAAA;AAElE,eAAsB,aAAA,GAAqC;AACzD,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,iBAAiB,CAAA;AAC9C,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2BAAA,EAA8B,QAAA,CAAS,UAAU,CAAA,CAAE,CAAA;AAAA,IACrE;AACA,IAAA,MAAM,SAAA,GAAa,MAAM,QAAA,CAAS,IAAA,EAAK;AACvC,IAAA,OAAO,SAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,4BAA4B,KAAK,CAAA;AAC/C,IAAA,MAAM,IAAI,MAAM,gFAAgF,CAAA;AAAA,EAClG;AACF;AAEA,SAAS,SAAA,CAAU,KAAA,EAAe,QAAA,EAAkB,MAAA,EAAyB;AAC3E,EAAA,OAAO,KAAA,KAAU,CAAA,GAAI,QAAA,GAAW,MAAA,IAAU,GAAG,QAAQ,CAAA,CAAA,CAAA;AACvD;AAEA,eAAsB,eAAe,SAAA,EAAiD;AACpF,EAAA,MAAM,OAAA,GAAU,SAAA,CAAU,GAAA,CAAI,CAAA,QAAA,KAAY;AACxC,IAAA,MAAM,QAAQ,EAAC;AACf,IAAA,IAAI,QAAA,CAAS,QAAQ,MAAA,EAAQ;AAC3B,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,MAAA,CAAO,MAAM,CAAA,CAAA,EAAI,SAAA,CAAU,QAAA,CAAS,MAAA,CAAO,MAAA,EAAQ,OAAO,CAAC,CAAA,CAAE,CAAA;AAAA,IACtF;AACA,IAAA,IAAI,QAAA,CAAS,OAAO,MAAA,EAAQ;AAC1B,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,KAAA,CAAM,MAAM,CAAA,CAAA,EAAI,SAAA,CAAU,QAAA,CAAS,KAAA,CAAM,MAAA,EAAQ,MAAM,CAAC,CAAA,CAAE,CAAA;AAAA,IACnF;AACA,IAAA,IAAI,QAAA,CAAS,WAAW,MAAA,EAAQ;AAC9B,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,SAAA,CAAU,MAAM,CAAA,CAAA,EAAI,SAAA,CAAU,QAAA,CAAS,SAAA,CAAU,MAAA,EAAQ,UAAU,CAAC,CAAA,CAAE,CAAA;AAAA,IAC/F;AACA,IAAA,IAAI,QAAA,CAAS,KAAK,MAAA,EAAQ;AACxB,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,GAAA,CAAI,MAAM,CAAA,CAAA,EAAI,SAAA,CAAU,QAAA,CAAS,GAAA,CAAI,MAAA,EAAQ,YAAY,CAAC,CAAA,CAAE,CAAA;AAAA,IACrF;AACA,IAAA,IAAI,QAAA,CAAS,UAAU,MAAA,EAAQ;AAC7B,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAG,QAAA,CAAS,QAAA,CAAS,MAAM,CAAA,CAAA,EAAI,SAAA,CAAU,QAAA,CAAS,QAAA,CAAS,MAAA,EAAQ,eAAe,CAAC,CAAA,CAAE,CAAA;AAAA,IAClG;AAEA,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,OAAO,QAAA,CAAS,KAAA;AAAA,MAChB,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,IAAK;AAAA,KAC5B;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAQC,EAAA,CAAA,MAAA,CAAO;AAAA,IAC9B,OAAA,EAAS,oBAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,IAAMA,EAAA,CAAA,QAAA,CAAS,QAAQ,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,kBAAA,CAAmB,WAAuB,YAAA,EAAuC;AAE/F,EAAA,IAAI,WAAW,SAAA,CAAU,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,YAAY,CAAA;AAC1D,EAAA,IAAI,UAAU,OAAO,QAAA;AAGrB,EAAA,MAAM,cAAA,GAAiB,YAAY,YAAY,CAAA,CAAA;AAC/C,EAAA,QAAA,GAAW,SAAA,CAAU,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,cAAc,CAAA;AACxD,EAAA,IAAI,UAAU,OAAO,QAAA;AAGrB,EAAA,QAAA,GAAW,SAAA,CAAU,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,MAAM,WAAA,EAAY,KAAM,YAAA,CAAa,WAAA,EAAa,CAAA;AACnF,EAAA,IAAI,UAAU,OAAO,QAAA;AAErB,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,sBAAsB,QAAA,EAA4B;AAEhE,EAAA,OAAO,QAAA,CAAS,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,EAAE,CAAA;AAC/C;ACzFA,eAAsB,mBAAA,CAAoB;AAAA,EACxC,SAAA;AAAA,EACA;AACF,CAAA,EAGoE;AAClE,EAAA,IAAI;AAEF,IAAA,MAAM,IAAA,GAAO,CAAC,QAAA,EAAU,KAAA,EAAO,oBAAoB,SAAA,EAAW,GAAG,QAAQ,IAAI,CAAA;AAE7E,IAAA,MAAM,KAAA,CAAM,OAAO,IAAA,EAAM;AAAA,MACvB,GAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO;AAAA;AAAA,KACR,CAAA;AAED,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAO;AAAA,EACjC,SAAS,KAAA,EAAO;AACd,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,KAAA,EAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,eAAA;AAAA,MAChD;AAAA,KACF;AAAA,EACF;AACF;;;ACLA,IAAM,IAAMC,EAAA,CAAA,OAAA,EAAQ;AAEb,IAAM,OAAO,OAAO;AAAA,EACzB,SAAA,GAAY,MAAA;AAAA,EACZ,UAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA,GAAU;AACZ,CAAA,KAUM;AACJ,EAAA,CAAA,CAAE,MAAM,qBAAqB,CAAA;AAC7B,EAAA,MAAM,iBAAA,GAAoB,UAAA,GAAa,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,GAAK,EAAA;AAE1D,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,MAAM,eAAA,CAAgB,SAAS,CAAA;AAE9C,IAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,MAAA,CAAA,CAAE,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,8BAA8B,CAAC,CAAA;AACpD,MAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,IAC1B;AAEA,IAAA,MAAM,UAAU,MAAA,CAAO,OAAA;AAEvB,IAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,MAChB,cAAA,CAAe;AAAA,QACb,OAAA;AAAA,QACA,UAAA;AAAA,QACA,WAAA,EAAa,UAAA,CAAW,QAAA,CAAS,WAAW,CAAA;AAAA,QAC5C,QAAA,EAAU,UAAA,CAAW,QAAA,CAAS,QAAQ,CAAA;AAAA,QACtC,UAAA,EAAY,UAAA,CAAW,QAAA,CAAS,SAAS;AAAA,OAC1C,CAAA;AAAA,MACD,GAAG,UAAA,CAAW,GAAA,CAAI,eAAa,mBAAA,CAAoB,OAAA,EAAS,SAAS,CAAC,CAAA;AAAA,MACtE,YAAY,EAAE,QAAA,EAAU,WAAA,EAAa,MAAA,EAAQ,WAAW;AAAA,KACzD,CAAA;AAED,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,QAChB,GAAG,UAAA,CAAW,GAAA;AAAA,UAAI,CAAA,SAAA,KAChB,eAAA,CAAgB,OAAA,EAAS,SAAA,EAAwB,aAAa,UAAyB;AAAA;AACzF,OACD,CAAA;AAED,MAAA,MAAM,UAAA,GAAa,IAAI,WAAA,EAAY;AAEnC,MAAA,MAAM,cAAe,MAAM,UAAA,CAAW,kBAAkB,CAAC,gBAAgB,CAAC,CAAA,KAAO,CAAA,EAAA,CAAA;AACjF,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,MAAM,WAAW,eAAA,CAAgB,CAAC,CAAA,cAAA,EAAiB,iBAAiB,EAAE,CAAC,CAAA;AAAA,MACzE;AACA,MAAA,MAAM,cAAe,MAAM,UAAA,CAAW,kBAAkB,CAAC,gBAAgB,CAAC,CAAA,KAAO,CAAA,EAAA,CAAA;AACjF,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,MAAM,WAAW,eAAA,CAAgB,CAAC,CAAA,cAAA,EAAiB,iBAAiB,EAAE,CAAC,CAAA;AAAA,MACzE;AACA,MAAA,MAAM,WAAA,GACJ,UAAA,CAAW,QAAA,CAAS,CAAA,MAAA,CAAQ,CAAA,IAAM,MAAM,UAAA,CAAW,iBAAA,CAAkB,CAAC,gBAAgB,CAAC,CAAA,KAAO,CAAA,EAAA,CAAA;AAChG,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,MAAM,WAAW,eAAA,CAAgB,CAAC,CAAA,cAAA,EAAiB,iBAAiB,EAAE,CAAC,CAAA;AAAA,MACzE;AAEA,MAAA,MAAM,eAAgB,MAAM,UAAA,CAAW,kBAAkB,CAAC,iBAAiB,CAAC,CAAA,KAAO,CAAA,EAAA,CAAA;AACnF,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,MAAM,WAAW,eAAA,CAAgB,CAAC,CAAA,eAAA,EAAkB,iBAAiB,EAAE,CAAC,CAAA;AAAA,MAC1E;AAEA,MAAA,MAAM,qBAAsB,MAAM,UAAA,CAAW,kBAAkB,CAAC,uBAAuB,CAAC,CAAA,KAAO,CAAA,EAAA,CAAA;AAC/F,MAAA,IAAI,kBAAA,EAAoB;AACtB,QAAA,MAAM,WAAW,eAAA,CAAgB,CAAC,CAAA,qBAAA,EAAwB,iBAAiB,EAAE,CAAC,CAAA;AAAA,MAChF;AAEA,MAAA,MAAM,UAAA,GACJ,UAAA,CAAW,QAAA,CAAS,CAAA,OAAA,CAAS,CAAA,IAAM,MAAM,UAAA,CAAW,iBAAA,CAAkB,CAAC,eAAe,CAAC,CAAA,KAAO,CAAA,EAAA,CAAA;AAChG,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,MAAM,WAAW,eAAA,CAAgB,CAAC,CAAA,aAAA,EAAgB,iBAAiB,EAAE,CAAC,CAAA;AAAA,MACxE;AAAA,IACF;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,SAAA,CAAU,WAAA,IAAe,QAAQ,CAAA;AAEnD,IAAA,CAAA,CAAE,KAAK,oBAAoB,CAAA;AAG3B,IAAA,IAAI,MAAA,IAAU,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC/B,MAAA,IAAI;AACF,QAAA,CAAA,CAAE,MAAM,gCAAgC,CAAA;AACxC,QAAA,MAAM,YAAA,GAAe,MAAM,mBAAA,CAAoB;AAAA,UAC7C,SAAA,EAAW,QAAQ,GAAA,EAAI;AAAA,UACvB,MAAA,EAAQ;AAAA,SACT,CAAA;AACD,QAAA,IAAI,aAAa,OAAA,EAAS;AAExB,UAAA,MAAM,UAAA,GAAa,YAAA,CAAa,MAAA,CAC7B,GAAA,CAAI,CAAA,KAAA,KAAS;AAEZ,YAAA,OAAO,MACJ,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAA,IAAA,KAAQ,KAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,KAAgB,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CACxD,KAAK,GAAG,CAAA;AAAA,UACb,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AACZ,UAAA,CAAA,CAAE,IAAA,CAAK,CAAA,kCAAA,EAAqC,UAAU,CAAA,CAAA,CAAG,CAAA;AAAA,QAC3D,CAAA,MAAO;AACL,UAAA,CAAA,CAAE,KAAK,4BAA4B,CAAA;AACnC,UAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,MAAA,CAAO;AAAA,SAAA,EAAc,YAAA,CAAa,KAAK,CAAA,CAAE,CAAC,CAAA;AAAA,QAC/D;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,CAAA,CAAE,KAAK,4BAA4B,CAAA;AACnC,QAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,MAAA,CAAO;AAAA,SAAA,EAAc,iBAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,EAAE,CAAC,CAAA;AAAA,MACrG;AAAA,IACF;AAGA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAM,0BAAA,CAA2B;AAAA,QAC/B,MAAA,EAAQ,SAAA;AAAA,QACR,SAAA,EAAW,QAAQ,GAAA,EAAI;AAAA,QACvB;AAAA,OACD,CAAA;AAAA,IACH;AAGA,IAAA,IAAK,MAAA,IAAU,MAAA,CAAO,MAAA,GAAS,CAAA,IAAM,SAAA,EAAW;AAC9C,MAAA,IAAI;AAEF,QAAA,MAAM,mBAAA,CAAoB,EAAE,MAAA,EAAQ,SAAA,EAAW,CAAA;AAG/C,QAAA,MAAM,mBAAA,GAAsB,MAAA,EAAQ,QAAA,CAAS,aAAa,CAAA;AAC1D,QAAA,IAAI,mBAAA,EAAqB;AACvB,UAAA,MAAM,mBAAA,EAAoB;AAAA,QAC5B;AAAA,MACF,SAAS,KAAA,EAAO;AAEd,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,KAAA,CAAM,MAAA;AAAA,YACJ;AAAA,6CAAA,EAAkD,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA;AAAA;AAC5G,SACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,CAAA,CAAE,MAAM,6BAA6B,CAAA;AACrC,MAAA,IAAI;AACF,QAAA,MAAM,QAAQ,EAAE,GAAA,EAAK,OAAA,CAAQ,GAAA,IAAO,CAAA;AACpC,QAAA,CAAA,CAAE,KAAK,4BAA4B,CAAA;AAAA,MACrC,CAAA,CAAA,MAAQ;AACN,QAAA,CAAA,CAAE,IAAA,EAAK;AAAA,MACT;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAEA,EAAA,CAAA,IAAA,CAAK;AAAA,MAAA,EACL,KAAA,CAAM,KAAA,CAAM,kCAAkC,CAAC;;AAAA,aAAA,EAExC,KAAA,CAAM,KAAK,cAAc,CAAC,OAAO,KAAA,CAAM,IAAA,CAAK,MAAM,CAAC;AAAA,mBAAA,EAC7C,KAAA,CAAM,IAAA,CAAK,GAAG,CAAC;AAAA,MAAA,CAC7B,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAEA,EAAA,CAAA,IAAA,CAAK;AAAA,MAAA,EACL,KAAA,CAAM,KAAA,CAAM,kCAAkC,CAAC;AAAA,MAAA,CAChD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AAAA,EACzB,SAAS,GAAA,EAAK;AACZ,IAAA,CAAA,CAAE,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,6CAA6C,CAAC,CAAA;AACnE,IAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AACjB,IAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,EAC1B;AACF;AC1LA,IAAMC,KAAAA,GAAOC,IAAAA,CAAK,SAAA,CAAUC,aAAAA,CAAc,IAAI,CAAA;AAE9C,IAAM,eAAA,GAAkB,OAAO,OAAA,EAAiB,SAAA,KAAuB;AACrE,EAAA,IAAI;AACF,IAAA,MAAM,UAAUF,KAAAA,CAAK,OAAA,EAAS,EAAE,UAAA,EAAY,WAAW,CAAA;AAEvD,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO,MAAM,OAAA;AAAA,IACf;AAEA,IAAA,IAAI,SAAA;AACJ,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,CAAC,GAAG,MAAA,KAAW;AACzC,MAAA,SAAA,GAAY,UAAA,CAAW,MAAM,MAAA,CAAO,IAAI,MAAM,mBAAmB,CAAC,GAAG,SAAS,CAAA;AAAA,IAChF,CAAC,CAAA;AAED,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAM,OAAA,CAAQ,KAAK,CAAC,OAAA,EAAS,OAAO,CAAC,CAAA;AACpD,MAAA,YAAA,CAAa,SAAU,CAAA;AACvB,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,YAAA,CAAa,SAAU,CAAA;AACvB,MAAA,IAAI,KAAA,YAAiB,KAAA,IAAS,KAAA,CAAM,OAAA,KAAY,mBAAA,EAAqB;AACnE,QAAA,MAAM,IAAI,MAAM,6DAA6D,CAAA;AAAA,MAC/E;AACA,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF,SAAS,KAAA,EAAgB;AACvB,IAAA,MAAM,KAAA;AAAA,EACR;AACF,CAAA;AAEA,eAAe,eAAe,EAAA,EAAqC;AACjE,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,KAAA;AACH,MAAA,OAAO,aAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAA,OAAO,cAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAA,OAAO,aAAA;AAAA,IACT;AACE,MAAA,OAAO,aAAA;AAAA;AAEb;AAEA,eAAe,sBAAsB,EAAA,EAAmC;AAEtE,EAAA,MAAM,WAAA,GAAc,MAAM,cAAA,CAAe,EAAE,CAAA;AAC3C,EAAA,MAAMA,MAAK,WAAW,CAAA;AAGtB,EAAA,MAAM,kBAAkBG,IAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,IAAO,cAAc,CAAA;AAC/D,EAAA,MAAM,WAAA,GAAc,KAAK,KAAA,CAAM,MAAMC,GAAG,QAAA,CAAS,eAAA,EAAiB,OAAO,CAAC,CAAA;AAE1E,EAAA,WAAA,CAAY,IAAA,GAAO,QAAA;AACnB,EAAA,WAAA,CAAY,OAAA,GAAU;AAAA,IACpB,GAAG,WAAA,CAAY,OAAA;AAAA,IACf,IAAA,EAAM;AAAA,GACR;AAEA,EAAA,MAAMA,EAAAA,CAAG,UAAU,eAAA,EAAiB,IAAA,CAAK,UAAU,WAAA,EAAa,IAAA,EAAM,CAAC,CAAC,CAAA;AAC1E;AAEA,IAAM,eAAA,GAAkB,OAAO,EAAE,OAAA,EAAS,aAAY,KAAgD;AACpG,EAAA,MAAM,iBAAiB,iBAAA,EAAkB;AACzC,EAAA,MAAM,UAAA,GAAaD,IAAAA,CAAK,IAAA,CAAK,OAAA,EAAS,WAAW,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAU,KAAK,WAAW;;AAAA;;AAAA;;AAAA;;AAAA;AAAA,EAShC,cAAc,CAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAA,mGAAA,CAAA;AAsBd,EAAA,MAAMC,EAAAA,CAAG,SAAA,CAAU,UAAA,EAAY,OAAO,CAAA;AACxC,CAAA;AAEA,eAAe,yBAAA,CACb,EAAA,EACA,YAAA,EACA,UAAA,EACA,OACA,OAAA,EACA;AACA,EAAA,IAAI,cAAA,GAAiB,4BAA4B,EAAE,CAAA;AAEnD,EAAA,IAAI,KAAA,EAAO;AAKT,IAAA,cAAA,GAAiB,GAAG,cAAc,CAAA,GAAA,CAAA;AAAA,EACpC;AAEA,EAAA,MAAM,uBAAA,GAA0B,YAAA,CAAa,GAAA,CAAI,CAAA,UAAA,KAAc,CAAA,EAAG,UAAU,CAAA,EAAG,UAAU,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAErG,EAAA,IAAI;AACF,IAAA,MAAM,eAAA,CAAgB,GAAG,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,uBAAuB,IAAI,OAAO,CAAA;AAAA,EACrF,SAAS,GAAA,EAAK;AACZ,IAAA,IAAI,eAAe,SAAA,EAAW;AAC5B,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qBAAqB,uBAAuB,CAAA,EAAA,EAAK,eAAe,KAAA,GAAQ,GAAA,CAAI,UAAU,eAAe,CAAA;AAAA,OACvG;AAAA,IACF;AAEA,IAAA,MAAM,kBAAA,GAAqB,aAAa,GAAA,CAAI,CAAA,UAAA,KAAc,GAAG,UAAU,CAAA,OAAA,CAAS,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAC1F,IAAA,IAAI;AACF,MAAA,MAAM,eAAA,CAAgB,GAAG,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,kBAAkB,IAAI,OAAO,CAAA;AAAA,IAChF,SAAS,WAAA,EAAa;AACpB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,kBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA,QAAA,EAAW,UAAU,CAAA,eAAA,EAAkB,WAAA,YAAuB,KAAA,GAAQ,WAAA,CAAY,OAAA,GAAU,eAAe,CAAA;AAAA,OACzJ;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,sBAAsB,OAAO;AAAA,EACxC,WAAA,EAAa,IAAA;AAAA,EACb,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,KASM;AACJ,EAAEC,EAAA,CAAA,KAAA,CAAMC,KAAAA,CAAM,OAAA,CAAQ,iBAAiB,CAAC,CAAA;AAExC,EAAA,MAAM,WAAA,GACJ,IAAA,IACC,MAAQD,EAAA,CAAA,IAAA,CAAK;AAAA,IACZ,OAAA,EAAS,wCAAA;AAAA,IACT,WAAA,EAAa,eAAA;AAAA,IACb,UAAU,CAAA,KAAA,KAAS;AACjB,MAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,MAAA,KAAW,GAAG,OAAO,8BAAA;AACzC,MAAA,IAAI,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,EAAG;AAC5B,QAAA,OAAO,sBAAsB,KAAK,CAAA,iDAAA,CAAA;AAAA,MACpC;AAAA,IACF;AAAA,GACD,CAAA;AAEH,EAAA,IAAMA,EAAA,CAAA,QAAA,CAAS,WAAW,CAAA,EAAG;AAC3B,IAAEA,UAAO,qBAAqB,CAAA;AAC9B,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,IAAI,MAAA,GAAoE,MAAA;AAExE,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,MAAM,WAAA,GAAc,MAAM,gBAAA,CAAiB,EAAE,KAAK,OAAA,CAAQ,GAAA,IAAO,CAAA;AAEjE,IAAA,MAAA,GAAS,MAAM,iBAAA,CAAkB;AAAA,MAC/B,OAAA,EAAS,EAAE,UAAA,EAAY,KAAA,EAAM;AAAA,MAC7B,IAAA,EAAM;AAAA,QACJ,aAAa,WAAA,KAAgB,MAAA;AAAA,QAC7B,WAAW,SAAA,KAAc,MAAA;AAAA,QACzB,MAAA,EAAQ,MAAA,KAAW,MAAA,IAAa,MAAA,CAAO,MAAA,GAAS,CAAA;AAAA,QAChD,WAAW,SAAA,KAAc,MAAA;AAAA,QACzB,SAAA,EAAW,IAAA;AAAA,QACX,OAAA,EAAS;AAAA;AACX,KACD,CAAA;AAAA,EACH;AACA,EAAA,MAAME,KAAMF,EAAA,CAAA,OAAA,EAAQ;AACpB,EAAA,MAAM,WAAA,GAAc,QAAQ,GAAA,EAAI;AAChC,EAAA,IAAI,WAAA,GAA6B,IAAA;AAEjC,EAAA,IAAI;AACF,IAAAE,EAAAA,CAAE,MAAM,kBAAkB,CAAA;AAC1B,IAAA,IAAI;AACF,MAAA,MAAMH,EAAAA,CAAG,MAAM,WAAW,CAAA;AAC1B,MAAA,WAAA,GAAcD,IAAAA,CAAK,OAAA,CAAQ,WAAA,EAAa,WAAW,CAAA;AAAA,IACrD,SAAS,KAAA,EAAO;AACd,MAAA,IAAI,iBAAiB,KAAA,IAAS,MAAA,IAAU,KAAA,IAAS,KAAA,CAAM,SAAS,QAAA,EAAU;AACxE,QAAAI,EAAAA,CAAE,IAAA,CAAK,CAAA,mBAAA,EAAsB,WAAW,CAAA,iDAAA,CAAmD,CAAA;AAC3F,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,MAChB;AACA,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,oCAAA,EAAuC,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,UAAU,eAAe,CAAA;AAAA,OACjG;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,MAAM,WAAW,CAAA;AACzB,IAAA,MAAM,KAAK,iBAAA,EAAkB;AAC7B,IAAA,MAAM,cAAA,GAAiB,4BAA4B,EAAE,CAAA;AAErD,IAAAA,EAAAA,CAAE,QAAQ,gCAAgC,CAAA;AAC1C,IAAA,IAAI;AACF,MAAA,MAAM,sBAAsB,EAAE,CAAA;AAC9B,MAAA,MAAM,WAAA,GAAc,IAAI,WAAA,EAAY;AACpC,MAAA,MAAM,YAAY,uBAAA,CAAwB;AAAA,QACxC,GAAA,EAAK,YAAA;AAAA,QACL,KAAA,EAAO,cAAA;AAAA,QACP,KAAA,EAAO;AAAA,OACR,CAAA;AACD,MAAA,MAAM,gBAAgB,EAAE,OAAA,EAAS,QAAQ,GAAA,EAAI,EAAG,aAAa,CAAA;AAAA,IAC/D,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,wCAAA,EAA2C,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,UAAU,eAAe,CAAA;AAAA,OACrG;AAAA,IACF;AAEA,IAAAA,EAAAA,CAAE,KAAK,2BAA2B,CAAA;AAElC,IAAAA,EAAAA,CAAE,KAAA,CAAM,CAAA,WAAA,EAAc,EAAE,CAAA,aAAA,CAAe,CAAA;AACvC,IAAA,IAAI;AACF,MAAA,MAAMP,KAAAA,CAAK,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,OAAA,CAAS,CAAA;AAC3C,MAAA,MAAMA,KAAAA,CAAK,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,0BAAA,CAA4B,CAAA;AAC9D,MAAA,MAAMA,KAAAA,CAAK,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAA,CAeE,CAAA;AAAA,IACf,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,sCAAA,EAAyC,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,UAAU,eAAe,CAAA;AAAA,OACnG;AAAA,IACF;AAEA,IAAAO,EAAAA,CAAE,IAAA,CAAK,CAAA,EAAG,EAAE,CAAA,uBAAA,CAAyB,CAAA;AAErC,IAAAA,EAAAA,CAAE,MAAM,uBAAuB,CAAA;AAC/B,IAAA,MAAM,UAAA,GAAa,gBAAA,GAAmB,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAA,GAAK,SAAA;AAE/D,IAAA,IAAI;AACF,MAAA,MAAM,0BAA0B,EAAA,EAAI,CAAC,QAAQ,CAAA,EAAG,UAAA,EAAY,MAAM,OAAO,CAAA;AAAA,IAC3E,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAI,MAAM,CAAA,8BAAA,EAAiC,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AAAA,IAC7G;AACA,IAAAA,EAAAA,CAAE,KAAK,sBAAsB,CAAA;AAE7B,IAAAA,EAAAA,CAAE,MAAM,gCAAgC,CAAA;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,yBAAA;AAAA,QACJ,EAAA;AAAA,QACA,CAAC,cAAA,EAAgB,gBAAA,EAAkB,gBAAgB,CAAA;AAAA,QACnD,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,uCAAA,EAA0C,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,UAAU,eAAe,CAAA;AAAA,OACpG;AAAA,IACF;AACA,IAAAA,EAAAA,CAAE,KAAK,+BAA+B,CAAA;AAEtC,IAAAA,EAAAA,CAAE,MAAM,mBAAmB,CAAA;AAC3B,IAAA,IAAI;AACF,MAAA,MAAMP,MAAK,CAAA,6BAAA,CAA+B,CAAA;AAC1C,MAAA,MAAMA,MAAK,CAAA,+BAAA,CAAiC,CAAA;AAC5C,MAAA,MAAMA,MAAK,CAAA,uBAAA,CAAyB,CAAA;AACpC,MAAA,MAAMA,MAAK,CAAA,0BAAA,CAA4B,CAAA;AACvC,MAAA,MAAMA,MAAK,CAAA,mCAAA,CAAqC,CAAA;AAChD,MAAA,MAAMA,MAAK,CAAA,uBAAA,CAAyB,CAAA;AACpC,MAAA,MAAMA,MAAK,CAAA,uBAAA,CAAyB,CAAA;AACpC,MAAA,MAAMA,MAAK,CAAA,yBAAA,CAA2B,CAAA;AACtC,MAAA,MAAMA,MAAK,CAAA,2BAAA,CAA6B,CAAA;AACxC,MAAA,MAAMA,MAAK,CAAA,0BAAA,CAA4B,CAAA;AAAA,IACzC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAI,MAAM,CAAA,6BAAA,EAAgC,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AAAA,IAC5G;AACA,IAAAO,EAAAA,CAAE,KAAK,kBAAkB,CAAA;AAEzB,IAAEF,SAAM,8BAA8B,CAAA;AACtC,IAAA,OAAA,CAAQ,KAAK,EAAE,CAAA;AAEf,IAAA,OAAO,EAAE,aAAa,MAAA,EAAO;AAAA,EAC/B,SAAS,KAAA,EAAO;AACd,IAAAE,GAAE,IAAA,EAAK;AAEP,IAAA,MAAM,YAAA,GAAe,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,8BAAA;AAC9D,IAAEF,EAAA,CAAA,MAAA,CAAO,CAAA,yBAAA,EAA4B,YAAY,CAAA,CAAE,CAAA;AAGnD,IAAA,IAAI,WAAA,IAAe,MAAA,CAAO,UAAA,CAAW,WAAW,CAAA,EAAG;AACjD,MAAA,IAAI;AAEF,QAAA,OAAA,CAAQ,MAAM,WAAW,CAAA;AACzB,QAAA,MAAMD,EAAAA,CAAG,GAAG,WAAA,EAAa,EAAE,WAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AAAA,MAC3D,SAAS,YAAA,EAAc;AAErB,QAAA,OAAA,CAAQ,KAAA;AAAA,UACN,CAAA,+CAAA,EAAkD,YAAA,YAAwB,KAAA,GAAQ,YAAA,CAAa,UAAU,eAAe,CAAA;AAAA,SAC1H;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AACF,CAAA;;;AC5UA,IAAM,UAAU,eAAA,CAAQ,OAAA;AAEjB,IAAM,MAAA,GAAS,OAAO,IAAA,KAavB;AACJ,EAAA,IAAI,IAAA,CAAK,aAAa,MAAA,EAAW;AAC/B,IAAA,MAAM,kBAAA,CAAmB;AAAA,MACvB,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,mBAAmB,IAAA,CAAK,SAAA;AAAA,MACxB,aAAa,IAAA,CAAK;AAAA,KACnB,CAAA;AACD,IAAA;AAAA,EACF;AAKA,EAAA,MAAM,gBAAA,GACJ,KAAK,UAAA,KAAe,MAAA,IAAa,KAAK,WAAA,KAAgB,MAAA,IAAa,KAAK,UAAA,KAAe,MAAA;AAEzF,EAAA,MAAM,SAAA,GAAY,KAAK,SAAA,IAAa,MAAA;AAEpC,EAAA,MAAM,EAAE,WAAA,EAAa,MAAA,EAAO,GAAI,MAAM,mBAAA,CAAoB;AAAA,IACxD,aAAa,IAAA,EAAM,WAAA;AAAA,IACnB,kBAAkB,IAAA,EAAM,gBAAA;AAAA,IACxB,SAAS,IAAA,EAAM,OAAA;AAAA,IACf,aAAa,IAAA,EAAM,WAAA;AAAA,IACnB,WAAW,IAAA,EAAM,SAAA;AAAA,IACjB,QAAQ,IAAA,EAAM,MAAA;AAAA,IACd,WAAW,IAAA,EAAM,SAAA;AAAA,IACjB;AAAA,GACD,CAAA;AAED,EAAA,IAAI,oBAAoB,MAAA,EAAQ;AAE9B,IAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,IAAA,IAAI,SAAA,IAAa,QAAQ,WAAA,EAAa;AACpC,MAAA,SAAA,CAAU,WAAW,6BAAA,EAA+B;AAAA,QAClD,UAAU,MAAA,CAAO,WAAA;AAAA,QACjB,gBAAA,EAAkB;AAAA,OACnB,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,qBAAA,GAAqC,CAAC,QAAA,EAAU,OAAA,EAAS,aAAa,SAAS,CAAA;AAErF,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,SAAA,CAAU,WAAW,yBAAA,EAA2B;AAAA,QAC9C,UAAA,EAAY,qBAAA;AAAA,QACZ,gBAAA,EAAkB;AAAA,OACnB,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,IAAA,CAAK;AAAA,MACT,GAAG,MAAA;AAAA,MACH,WAAW,MAAA,EAAQ,SAAA;AAAA,MACnB,UAAA,EAAY,qBAAA;AAAA,MACZ,UAAA,EAAY,IAAA;AAAA,MACZ,MAAA,EAAQ,MAAA,EAAQ,MAAA,IAAU,IAAA,CAAK,MAAA;AAAA,MAC/B,SAAA,EAAW,MAAA,EAAQ,SAAA,IAAa,IAAA,CAAK,SAAA;AAAA,MACrC,YAAY,IAAA,CAAK;AAAA,KAClB,CAAA;AACD,IAAA,UAAA,CAAW,EAAE,aAAa,CAAA;AAC1B,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,aAAa,EAAC,EAAG,cAAc,QAAA,EAAU,UAAA,GAAa,KAAA,EAAO,SAAA,EAAU,GAAI,IAAA;AAGnF,EAAA,MAAM,eAAe,YAAA,EAAa;AAClC,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,YAAA,CAAa,WAAW,6BAAA,EAA+B;AAAA,MACrD,QAAA,EAAU,WAAA;AAAA,MACV,gBAAA,EAAkB;AAAA,KACnB,CAAA;AAED,IAAA,YAAA,CAAa,WAAW,yBAAA,EAA2B;AAAA,MACjD,UAAA;AAAA,MACA,UAAA,EAAY,UAAA,CAAW,QAAA,CAAS,QAAQ,CAAA;AAAA,MACxC,SAAA,EAAW,UAAA,CAAW,QAAA,CAAS,OAAO,CAAA;AAAA,MACtC,aAAA,EAAe,UAAA,CAAW,QAAA,CAAS,WAAW,CAAA;AAAA,MAC9C,WAAA,EAAa,UAAA,CAAW,QAAA,CAAS,SAAS,CAAA;AAAA,MAC1C,gBAAA,EAAkB;AAAA,KACnB,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,IAAA,CAAK;AAAA,IACT,SAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAQ,IAAA,CAAK,MAAA;AAAA,IACb,WAAW,IAAA,CAAK,SAAA;AAAA,IAChB,YAAY,IAAA,CAAK;AAAA,GAClB,CAAA;AAED,EAAA,UAAA,CAAW,EAAE,aAAa,CAAA;AAC5B;AAEA,IAAM,UAAA,GAAa,CAAC,EAAE,WAAA,EAAY,KAA+B;AAC/D,EAAA,MAAM,iBAAiB,iBAAA,EAAkB;AACzC,EAAE,EAAA,CAAA,KAAA,CAAM;AAAA,GAAA,EACLE,KAAAA,CAAM,KAAA,CAAM,wBAAwB,CAAC;;AAAA,IAAA,EAEpCA,KAAAA,CAAM,IAAA,CAAK,IAAI,CAAC,IAAI,WAAW;AAAA,IAAA,EAC/BA,KAAAA,CAAM,IAAA,CAAK,CAAA,EAAG,cAAc,UAAU,CAAC;AAAA,EAAA,CAC1C,CAAA;AACH,CAAA;AAEA,SAAS,YAAY,GAAA,EAAsB;AACzC,EAAA,IAAI;AACF,IAAA,MAAM,SAAA,GAAY,IAAI,GAAA,CAAI,GAAG,CAAA;AAC7B,IAAA,OAAO,SAAA,CAAU,aAAa,YAAA,IAAgB,SAAA,CAAU,SAAS,KAAA,CAAM,GAAG,EAAE,MAAA,IAAU,CAAA;AAAA,EACxF,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,eAAe,sBAAsB,SAAA,EAAoE;AACvG,EAAA,MAAM,SAAmB,EAAC;AAE1B,EAAA,IAAI;AAEF,IAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,SAAS,CAAA,CAAE,SAAS,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AACtE,IAAA,MAAM,KAAA,GAAQ,SAAS,CAAC,CAAA;AACxB,IAAA,MAAM,OAAO,QAAA,CAAS,CAAC,CAAA,EAAG,OAAA,CAAQ,QAAQ,EAAE,CAAA;AAE5C,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,IAAA,EAAM;AACnB,MAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAAA,IAC7C;AAGA,IAAA,MAAM,QAAA,GAAW,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAClC,IAAA,IAAI,kBAAA,GAAoC,IAAA;AACxC,IAAA,IAAI,YAAA,GAA8B,IAAA;AAElC,IAAA,KAAA,MAAW,UAAU,QAAA,EAAU;AAC7B,MAAA,IAAI;AAEF,QAAA,MAAM,iBAAiB,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAA,EAAI,IAAI,IAAI,MAAM,CAAA,aAAA,CAAA;AACnF,QAAA,MAAM,mBAAA,GAAsB,MAAM,KAAA,CAAM,cAAc,CAAA;AAEtD,QAAA,IAAI,oBAAoB,EAAA,EAAI;AAC1B,UAAA,kBAAA,GAAqB,MAAM,oBAAoB,IAAA,EAAK;AAGpD,UAAA,MAAM,WAAW,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAA,EAAI,IAAI,IAAI,MAAM,CAAA,oBAAA,CAAA;AAC7E,UAAA,MAAM,aAAA,GAAgB,MAAM,KAAA,CAAM,QAAQ,CAAA;AAE1C,UAAA,IAAI,cAAc,EAAA,EAAI;AACpB,YAAA,YAAA,GAAe,MAAM,cAAc,IAAA,EAAK;AAAA,UAC1C;AAEA,UAAA;AAAA,QACF;AAAA,MACF,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,kBAAA,EAAoB;AACvB,MAAA,MAAA,CAAO,KAAK,8CAA8C,CAAA;AAC1D,MAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,MAAA,EAAO;AAAA,IAClC;AAGA,IAAA,IAAI;AACF,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,kBAAkB,CAAA;AACjD,MAAA,MAAM,aAAA,GACJ,WAAA,CAAY,YAAA,GAAe,cAAc,CAAA,IACzC,WAAA,CAAY,eAAA,GAAkB,cAAc,CAAA,IAC5C,WAAA,CAAY,gBAAA,GAAmB,cAAc,CAAA;AAE/C,MAAA,IAAI,CAAC,aAAA,EAAe;AAClB,QAAA,MAAA,CAAO,KAAK,iDAAiD,CAAA;AAAA,MAC/D;AAAA,IACF,CAAA,CAAA,MAAQ;AACN,MAAA,MAAA,CAAO,KAAK,6BAA6B,CAAA;AAAA,IAC3C;AAGA,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAA,CAAO,KAAK,kCAAkC,CAAA;AAAA,IAChD,CAAA,MAAO;AAEL,MAAA,MAAM,eAAA,GACJ,YAAA,CAAa,QAAA,CAAS,QAAQ,CAAA,KAAM,YAAA,CAAa,QAAA,CAAS,YAAY,CAAA,IAAK,YAAA,CAAa,QAAA,CAAS,SAAS,CAAA,CAAA;AAE5G,MAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,QAAA,MAAA,CAAO,KAAK,uDAAuD,CAAA;AAAA,MACrE;AAAA,IACF;AAEA,IAAA,OAAO,EAAE,OAAA,EAAS,MAAA,CAAO,MAAA,KAAW,GAAG,MAAA,EAAO;AAAA,EAChD,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,KAAK,CAAA,sCAAA,EAAyC,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AAC/G,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,MAAA,EAAO;AAAA,EAClC;AACF;AAEA,eAAe,oBAAoB,GAAA,EAAgC;AAEjE,EAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,GAAG,CAAA,CAAE,SAAS,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AAChE,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,CAAC,CAAA,IAAK,SAAA;AAC7B,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,CAAC,CAAA,IAAK,SAAA;AAG5B,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,GAAA;AAAA,IACX,KAAA,EAAO,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,IACvB,IAAA,EAAM,IAAA;AAAA,IACN,QAAQ,EAAC;AAAA,IACT,KAAK,EAAC;AAAA,IACN,OAAO,EAAC;AAAA,IACR,UAAU,EAAC;AAAA,IACX,WAAW;AAAC,GACd;AACF;AAEA,eAAe,mBAAmB,IAAA,EAM/B;AACD,EAAA,IAAI,gBAAA;AAEJ,EAAA,IAAI,IAAA,CAAK,aAAa,IAAA,EAAM;AAE1B,IAAA,MAAM,SAAA,GAAY,MAAM,aAAA,EAAc;AACtC,IAAA,MAAM,QAAA,GAAW,MAAM,cAAA,CAAe,SAAS,CAAA;AAC/C,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAE,EAAA,CAAA,GAAA,CAAI,KAAK,gCAAgC,CAAA;AAC3C,MAAA;AAAA,IACF;AACA,IAAA,gBAAA,GAAmB,QAAA;AAAA,EACrB,WAAW,IAAA,CAAK,QAAA,IAAY,OAAO,IAAA,CAAK,aAAa,QAAA,EAAU;AAE7D,IAAA,IAAI,WAAA,CAAY,IAAA,CAAK,QAAQ,CAAA,EAAG;AAE9B,MAAA,MAAMT,WAAY,EAAA,CAAA,OAAA,EAAQ;AAC1B,MAAAA,QAAAA,CAAQ,MAAM,iCAAiC,CAAA;AAE/C,MAAA,MAAM,UAAA,GAAa,MAAM,qBAAA,CAAsB,IAAA,CAAK,QAAQ,CAAA;AAE5D,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACvB,QAAAA,QAAAA,CAAQ,KAAK,mBAAmB,CAAA;AAChC,QAAE,EAAA,CAAA,GAAA,CAAI,MAAM,oDAAoD,CAAA;AAChE,QAAA,UAAA,CAAW,MAAA,CAAO,QAAQ,CAAA,KAAA,KAAW,EAAA,CAAA,GAAA,CAAI,MAAM,CAAA,IAAA,EAAO,KAAK,EAAE,CAAC,CAAA;AAC9D,QAAA,MAAM,IAAI,MAAM,wBAAwB,CAAA;AAAA,MAC1C;AAEA,MAAAA,QAAAA,CAAQ,KAAK,6BAAwB,CAAA;AACrC,MAAA,gBAAA,GAAmB,MAAM,mBAAA,CAAoB,IAAA,CAAK,QAAQ,CAAA;AAAA,IAC5D,CAAA,MAAO;AAEL,MAAA,MAAM,SAAA,GAAY,MAAM,aAAA,EAAc;AACtC,MAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,SAAA,EAAW,IAAA,CAAK,QAAQ,CAAA;AACzD,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAE,EAAA,CAAA,GAAA,CAAI,KAAA,CAAM,CAAA,UAAA,EAAa,IAAA,CAAK,QAAQ,CAAA,iCAAA,CAAmC,CAAA;AACzE,QAAA,SAAA,CAAU,QAAQ,CAAC,CAAA,KAAkB,EAAA,CAAA,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,CAAE,KAAK,CAAA,OAAA,EAAU,CAAA,CAAE,KAAK,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAC,GAAG,CAAC,CAAA;AACzG,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,UAAA,EAAa,IAAA,CAAK,QAAQ,CAAA,WAAA,CAAa,CAAA;AAAA,MACzD;AACA,MAAA,gBAAA,GAAmB,KAAA;AAAA,IACrB;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,IAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,EACxC;AAGA,EAAA,IAAI,cAAc,IAAA,CAAK,WAAA;AACvB,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,WAAA,GAAc,sBAAsB,gBAAgB,CAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,MAAQ,EAAA,CAAA,IAAA,CAAK;AAAA,MAC5B,OAAA,EAAS,4BAAA;AAAA,MACT,YAAA,EAAc,WAAA;AAAA,MACd,WAAA,EAAa;AAAA,KACd,CAAA;AAED,IAAA,IAAM,EAAA,CAAA,QAAA,CAAS,QAAQ,CAAA,EAAG;AACxB,MAAE,EAAA,CAAA,GAAA,CAAI,KAAK,6BAA6B,CAAA;AACxC,MAAA;AAAA,IACF;AAEA,IAAA,WAAA,GAAc,QAAA;AAAA,EAChB;AAGA,EAAA,IAAI,cAAc,IAAA,CAAK,WAAA;AACvB,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,gBAAA,GAAmB,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACtC,OAAA,EAAS,4BAAA;AAAA,MACT,OAAA,EAAS;AAAA,KACV,CAAA;AAED,IAAA,IAAM,EAAA,CAAA,QAAA,CAAS,gBAAgB,CAAA,EAAG;AAChC,MAAE,EAAA,CAAA,GAAA,CAAI,KAAK,6BAA6B,CAAA;AACxC,MAAA;AAAA,IACF;AAEA,IAAA,WAAA,GAAc,gBAAA;AAAA,EAChB;AAGA,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,MAAM,gBAAA,GAAmB,MAAQ,EAAA,CAAA,OAAA,CAAQ;AAAA,IACvC,OAAA,EAAS,kCAAA;AAAA,IACT,YAAA,EAAc;AAAA,GACf,CAAA;AAED,EAAA,IAAI,CAAG,EAAA,CAAA,QAAA,CAAS,gBAAgB,CAAA,EAAG;AACjC,IAAA,OAAA,GAAU,gBAAA;AAAA,EACZ;AAEA,EAAA,IAAI,WAAA,GAA6B,IAAA;AAEjC,EAAA,IAAI;AAEF,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,iBAAA,IAAqB,YAAA,EAAa;AACzD,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,SAAA,CAAU,WAAW,mBAAA,EAAqB;AAAA,QACxC,eAAe,gBAAA,CAAiB,IAAA;AAAA,QAChC,gBAAgB,gBAAA,CAAiB;AAAA,OAClC,CAAA;AAGD,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,SAAA,CAAU,WAAW,6BAAA,EAA+B;AAAA,UAClD,QAAA,EAAU,WAAA;AAAA,UACV,gBAAA,EAAkB,IAAA,CAAK,WAAA,GAAc,UAAA,GAAa;AAAA,SACnD,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,OAAA,EAAS,QAAA,CAAS,MAAM,CAAA,IAAK,KAAA;AAC5C,IAAA,MAAM,gBAAA,GAAmB,gBAAA,CAAiB,SAAA,CAAU,QAAA,CAAS,uBAAuB,CAAA;AACpF,IAAA,MAAM,MAAA,GAAS,MAAA,IAAU,gBAAA,GAAmB,MAAA,GAAS,KAAA,CAAA;AAGrD,IAAA,WAAA,GAAc,MAAM,aAAA,CAAc;AAAA,MAChC,QAAA,EAAU,gBAAA;AAAA,MACV,WAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAGD,IAAA,MAAM,oBAAoB,WAAW,CAAA;AAErC,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAMU,KAAM,EAAA,CAAA,OAAA,EAAQ;AACpB,MAAA,IAAI;AACF,QAAAA,EAAAA,CAAE,MAAM,6BAA6B,CAAA;AAErC,QAAA,MAAM,OAAA,CAAQ,EAAE,GAAA,EAAK,WAAA,EAAa,CAAA;AAElC,QAAAA,EAAAA,CAAE,KAAK,4BAA4B,CAAA;AAAA,MACrC,CAAA,CAAA,MAAQ;AACN,QAAAA,GAAE,IAAA,EAAK;AAAA,MACT;AAAA,IACF;AAEA,IAAE,EAAA,CAAA,IAAA,CAAK;AAAA,MAAA,EACHD,KAAAA,CAAM,KAAA,CAAM,4BAA4B,CAAC;;AAAA;AAAA,wBAAA,EAGvBA,KAAAA,CAAM,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,MAAA,CACrC,CAAA;AAGH,IAAA,UAAA,CAAW,EAAE,aAAa,CAAA;AAAA,EAC5B,SAAS,KAAA,EAAO;AAEd,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,IAAI;AACF,QAAA,IAAIE,MAAAA,CAAO,UAAA,CAAW,WAAW,CAAA,EAAG;AAClC,UAAA,MAAMJ,EAAAA,CAAG,GAAG,WAAA,EAAa,EAAE,WAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AAAA,QAC3D;AAAA,MACF,SAAS,YAAA,EAAc;AAErB,QAAA,OAAA,CAAQ,KAAA;AAAA,UACN,CAAA,+CAAA,EAAkD,YAAA,YAAwB,KAAA,GAAQ,YAAA,CAAa,UAAU,eAAe,CAAA;AAAA,SAC1H;AAAA,MACF;AAAA,IACF;AACA,IAAE,EAAA,CAAA,GAAA,CAAI,MAAM,CAAA,wCAAA,EAA2C,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AACjH,IAAA,MAAM,KAAA;AAAA,EACR;AACF","file":"chunk-6OVC46IA.js","sourcesContent":["{\n \"name\": \"mastra\",\n \"version\": \"1.8.0\",\n \"license\": \"Apache-2.0\",\n \"description\": \"cli for mastra\",\n \"type\": \"module\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"mastra\": \"./dist/index.js\"\n },\n \"exports\": {\n \".\": \"./dist/index.js\",\n \"./package.json\": \"./package.json\",\n \"./telemetry-loader\": \"./dist/commands/dev/telemetry-loader.js\",\n \"./dist/*\": [\n \"./dist/*\",\n \"./dist/*.js\"\n ]\n },\n \"files\": [\n \"dist\",\n \"CHANGELOG.md\"\n ],\n \"scripts\": {\n \"build:lib\": \"tsup --silent --config tsup.config.ts\",\n \"prepack\": \"pnpx tsx ../../scripts/generate-package-docs.ts\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest watch\",\n \"clean\": \"rm -rf dist && rm -rf node_modules\",\n \"typecheck\": \"tsc --noEmit --incremental\",\n \"lint\": \"eslint .\"\n },\n \"keywords\": [\n \"mastra\",\n \"cli\",\n \"ai\",\n \"llm\",\n \"llms\",\n \"agent\",\n \"agents\",\n \"dev\",\n \"development\",\n \"deploy\",\n \"deployment\",\n \"build\",\n \"workflow\",\n \"typescript\",\n \"command-line\",\n \"devtools\"\n ],\n \"dependencies\": {\n \"@clack/prompts\": \"^1.1.0\",\n \"@expo/devcert\": \"^1.2.1\",\n \"archiver\": \"^7.0.1\",\n \"@mastra/deployer\": \"workspace:^\",\n \"@mastra/loggers\": \"workspace:^\",\n \"commander\": \"^14.0.3\",\n \"dotenv\": \"^17.3.1\",\n \"execa\": \"^9.6.1\",\n \"fs-extra\": \"^11.3.4\",\n \"get-port\": \"^7.1.0\",\n \"local-pkg\": \"^1.1.2\",\n \"openapi-fetch\": \"^0.17.0\",\n \"picocolors\": \"^1.1.1\",\n \"posthog-node\": \"5.17.2\",\n \"semver\": \"^7.7.4\",\n \"serve\": \"^14.2.6\",\n \"serve-handler\": \"^6.1.7\",\n \"shell-quote\": \"^1.8.3\",\n \"strip-json-comments\": \"^5.0.3\",\n \"yocto-spinner\": \"^1.1.0\"\n },\n \"devDependencies\": {\n \"@commander-js/extra-typings\": \"^14.0.0\",\n \"@internal/lint\": \"workspace:*\",\n \"@internal/playground\": \"workspace:*\",\n \"@internal/types-builder\": \"workspace:*\",\n \"@mastra/core\": \"workspace:*\",\n \"@types/archiver\": \"^7.0.0\",\n \"@types/fs-extra\": \"^11.0.4\",\n \"@types/node\": \"22.19.15\",\n \"@types/semver\": \"^7.7.1\",\n \"@types/serve-handler\": \"^6.1.4\",\n \"@types/shell-quote\": \"^1.7.5\",\n \"@vitest/coverage-v8\": \"catalog:\",\n \"@vitest/ui\": \"catalog:\",\n \"eslint\": \"^10.2.1\",\n \"memfs\": \"^4.56.11\",\n \"rollup\": \"^4.59.0\",\n \"tsup\": \"^8.5.1\",\n \"type-fest\": \"^5.4.4\",\n \"typescript\": \"catalog:\",\n \"vitest\": \"catalog:\"\n },\n \"peerDependencies\": {\n \"@mastra/core\": \">=1.1.0-0 <2.0.0-0\",\n \"zod\": \"^3.25.0 || ^4.0.0\"\n },\n \"homepage\": \"https://mastra.ai\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/mastra-ai/mastra.git\",\n \"directory\": \"packages/cli\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/mastra-ai/mastra/issues\"\n },\n \"engines\": {\n \"node\": \">=22.13.0\"\n }\n}\n","import { PinoLogger } from '@mastra/loggers';\n\nexport const logger = createLogger(false);\n\nexport function createLogger(debug: boolean = false) {\n return new PinoLogger({\n name: 'Mastra CLI',\n level: debug ? 'debug' : 'info',\n });\n}\n","import child_process from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport util from 'node:util';\nimport shellQuote from 'shell-quote';\nimport yoctoSpinner from 'yocto-spinner';\n\nimport type { LLMProvider } from '../commands/init/utils';\nimport { getModelIdentifier } from '../commands/init/utils';\nimport { getPackageManager } from '../commands/utils';\n\nimport { logger } from './logger';\nimport type { Template } from './template-utils';\n\nconst exec = util.promisify(child_process.exec);\n\nexport interface CloneTemplateOptions {\n template: Template;\n projectName: string;\n targetDir?: string;\n branch?: string;\n llmProvider?: LLMProvider;\n}\n\nexport async function cloneTemplate(options: CloneTemplateOptions): Promise<string> {\n const { template, projectName, targetDir, branch, llmProvider } = options;\n const projectPath = targetDir ? path.resolve(targetDir, projectName) : path.resolve(projectName);\n\n const spinner = yoctoSpinner({ text: `Cloning template \"${template.title}\"...` }).start();\n\n try {\n // Check if directory already exists\n if (await directoryExists(projectPath)) {\n spinner.error(`Directory ${projectName} already exists`);\n throw new Error(`Directory ${projectName} already exists`);\n }\n\n // Clone the repository without git history\n await cloneRepositoryWithoutGit(template.githubUrl, projectPath, branch);\n\n // Update package.json with new project name\n await updatePackageJson(projectPath, projectName);\n\n // Copy .env.example to .env if it exists, and update MODEL if llmProvider is specified\n const envExamplePath = path.join(projectPath, '.env.example');\n if (await fileExists(envExamplePath)) {\n const envPath = path.join(projectPath, '.env');\n await fs.copyFile(envExamplePath, envPath);\n\n // Update MODEL in .env if llmProvider is specified\n if (llmProvider) {\n await updateEnvFile(envPath, llmProvider);\n }\n }\n\n spinner.success(`Template \"${template.title}\" cloned successfully to ${projectName}`);\n return projectPath;\n } catch (error) {\n spinner.error(`Failed to clone template: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n\nasync function directoryExists(dirPath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(dirPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function fileExists(filePath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(filePath);\n return stat.isFile();\n } catch {\n return false;\n }\n}\n\nasync function cloneRepositoryWithoutGit(repoUrl: string, targetPath: string, branch?: string): Promise<void> {\n // Create target directory\n await fs.mkdir(targetPath, { recursive: true });\n\n try {\n // First try using degit if available (similar to Next.js)\n const degitRepo = repoUrl.replace('https://github.com/', '');\n // If branch is specified, append it to the degit repo (format: owner/repo#branch)\n const degitRepoWithBranch = branch ? `${degitRepo}#${branch}` : degitRepo;\n const degitCommand = shellQuote.quote(['npx', 'degit', degitRepoWithBranch, targetPath]);\n await exec(degitCommand, {\n cwd: process.cwd(),\n });\n } catch {\n // Fallback to git clone + remove .git\n try {\n const gitArgs = ['git', 'clone'];\n // Add branch flag if specified\n if (branch) {\n gitArgs.push('--branch', branch);\n }\n gitArgs.push(repoUrl, targetPath);\n\n const gitCommand = shellQuote.quote(gitArgs);\n await exec(gitCommand, {\n cwd: process.cwd(),\n });\n\n // Remove .git directory\n const gitDir = path.join(targetPath, '.git');\n if (await directoryExists(gitDir)) {\n await fs.rm(gitDir, { recursive: true, force: true });\n }\n } catch (gitError) {\n throw new Error(`Failed to clone repository: ${gitError instanceof Error ? gitError.message : 'Unknown error'}`);\n }\n }\n}\n\nasync function updatePackageJson(projectPath: string, projectName: string): Promise<void> {\n const packageJsonPath = path.join(projectPath, 'package.json');\n\n try {\n const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON.parse(packageJsonContent);\n\n // Update the name field\n packageJson.name = projectName;\n\n // Write back the updated package.json\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');\n } catch (error) {\n // It's okay if package.json doesn't exist or can't be updated\n logger.warn('Could not update package.json', { error: error instanceof Error ? error.message : 'Unknown error' });\n }\n}\n\nasync function updateEnvFile(envPath: string, llmProvider: LLMProvider): Promise<void> {\n try {\n const envContent = await fs.readFile(envPath, 'utf-8');\n const modelString = getModelIdentifier(llmProvider);\n\n if (!modelString) {\n logger.warn('Could not get model identifier for provider', { provider: llmProvider });\n return;\n }\n\n // Remove quotes from modelString (it comes as 'provider/model')\n const modelValue = modelString.replace(/'/g, '');\n\n // Replace the MODEL line with the selected provider's model\n const updatedContent = envContent.replace(/^MODEL=.*/m, `MODEL=${modelValue}`);\n\n await fs.writeFile(envPath, updatedContent, 'utf-8');\n logger.info('Updated MODEL in .env', { model: modelValue });\n } catch (error) {\n // It's okay if .env can't be updated\n logger.warn('Could not update .env file', { error: error instanceof Error ? error.message : 'Unknown error' });\n }\n}\n\nexport async function installDependencies(projectPath: string, packageManager?: string): Promise<void> {\n const spinner = yoctoSpinner({ text: 'Installing dependencies...' }).start();\n\n try {\n // Use provided package manager or detect from environment/globally\n const pm = packageManager || getPackageManager();\n\n const installCommand = shellQuote.quote([pm, 'install']);\n\n await exec(installCommand, {\n cwd: projectPath,\n });\n\n spinner.success('Dependencies installed successfully');\n } catch (error) {\n spinner.error(`Failed to install dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n","import * as p from '@clack/prompts';\n\nexport interface Template {\n githubUrl: string;\n title: string;\n slug: string;\n agents: string[];\n mcp: string[];\n tools: string[];\n networks: string[];\n workflows: string[];\n}\n\nconst TEMPLATES_API_URL = process.env.MASTRA_TEMPLATES_API_URL || 'https://mastra.ai/api/templates.json';\n\nexport async function loadTemplates(): Promise<Template[]> {\n try {\n const response = await fetch(TEMPLATES_API_URL);\n if (!response.ok) {\n throw new Error(`Failed to fetch templates: ${response.statusText}`);\n }\n const templates = (await response.json()) as Template[];\n return templates;\n } catch (error) {\n console.error('Error loading templates:', error);\n throw new Error('Failed to load templates. Please check your internet connection and try again.');\n }\n}\n\nfunction pluralize(count: number, singular: string, plural?: string): string {\n return count === 1 ? singular : plural || `${singular}s`;\n}\n\nexport async function selectTemplate(templates: Template[]): Promise<Template | null> {\n const choices = templates.map(template => {\n const parts = [];\n if (template.agents?.length) {\n parts.push(`${template.agents.length} ${pluralize(template.agents.length, 'agent')}`);\n }\n if (template.tools?.length) {\n parts.push(`${template.tools.length} ${pluralize(template.tools.length, 'tool')}`);\n }\n if (template.workflows?.length) {\n parts.push(`${template.workflows.length} ${pluralize(template.workflows.length, 'workflow')}`);\n }\n if (template.mcp?.length) {\n parts.push(`${template.mcp.length} ${pluralize(template.mcp.length, 'MCP server')}`);\n }\n if (template.networks?.length) {\n parts.push(`${template.networks.length} ${pluralize(template.networks.length, 'agent network')}`);\n }\n\n return {\n value: template,\n label: template.title,\n hint: parts.join(', ') || 'Template components',\n };\n });\n\n const selected = await p.select({\n message: 'Select a template:',\n options: choices,\n });\n\n if (p.isCancel(selected)) {\n return null;\n }\n\n return selected as Template;\n}\n\nexport function findTemplateByName(templates: Template[], templateName: string): Template | null {\n // First try to find by exact slug match\n let template = templates.find(t => t.slug === templateName);\n if (template) return template;\n\n // Then try to find by slug without \"template-\" prefix\n const slugWithPrefix = `template-${templateName}`;\n template = templates.find(t => t.slug === slugWithPrefix);\n if (template) return template;\n\n // Finally try case-insensitive name match\n template = templates.find(t => t.title.toLowerCase() === templateName.toLowerCase());\n if (template) return template;\n\n return null;\n}\n\nexport function getDefaultProjectName(template: Template): string {\n // Remove \"template-\" prefix from slug if it exists\n return template.slug.replace(/^template-/, '');\n}\n","import { execa } from 'execa';\n\nexport async function installMastraSkills({\n directory,\n agents,\n}: {\n directory: string;\n agents: string[];\n}): Promise<{ success: boolean; error?: string; agents: string[] }> {\n try {\n // Build args: --agent takes space-separated agent names\n const args = ['skills', 'add', 'mastra-ai/skills', '--agent', ...agents, '-y'];\n\n await execa('npx', args, {\n cwd: directory,\n stdio: 'pipe', // Hide verbose output\n });\n\n return { success: true, agents };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n agents,\n };\n }\n}\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps';\n\nimport { gitInit } from '../utils';\nimport { installMastraDocsMCPServer } from './mcp-docs-server-install';\nimport type { Editor } from './mcp-docs-server-install';\nimport { installMastraSkills } from './skills-install';\nimport {\n createComponentsDir,\n createMastraDir,\n getAPIKey,\n writeAgentsMarkdown,\n writeAPIKey,\n writeClaudeMarkdown,\n writeCodeSample,\n writeIndexFile,\n} from './utils';\nimport type { Component, LLMProvider } from './utils';\n\nconst s = p.spinner();\n\nexport const init = async ({\n directory = 'src/',\n components,\n llmProvider = 'openai',\n llmApiKey,\n addExample = false,\n skills,\n mcpServer,\n versionTag,\n initGit = false,\n}: {\n directory?: string;\n components: Component[];\n llmProvider?: LLMProvider;\n llmApiKey?: string;\n addExample?: boolean;\n skills?: string[];\n mcpServer?: Editor;\n versionTag?: string;\n initGit?: boolean;\n}) => {\n s.start('Initializing Mastra');\n const packageVersionTag = versionTag ? `@${versionTag}` : '';\n\n try {\n const result = await createMastraDir(directory);\n\n if (!result.ok) {\n s.stop(color.inverse(' Mastra already initialized '));\n return { success: false };\n }\n\n const dirPath = result.dirPath;\n\n await Promise.all([\n writeIndexFile({\n dirPath,\n addExample,\n addWorkflow: components.includes('workflows'),\n addAgent: components.includes('agents'),\n addScorers: components.includes('scorers'),\n }),\n ...components.map(component => createComponentsDir(dirPath, component)),\n writeAPIKey({ provider: llmProvider, apiKey: llmApiKey }),\n ]);\n\n if (addExample) {\n await Promise.all([\n ...components.map(component =>\n writeCodeSample(dirPath, component as Component, llmProvider, components as Component[]),\n ),\n ]);\n\n const depService = new DepsService();\n\n const needsLibsql = (await depService.checkDependencies(['@mastra/libsql'])) !== `ok`;\n if (needsLibsql) {\n await depService.installPackages([`@mastra/libsql${packageVersionTag}`]);\n }\n const needsDuckDB = (await depService.checkDependencies(['@mastra/duckdb'])) !== `ok`;\n if (needsDuckDB) {\n await depService.installPackages([`@mastra/duckdb${packageVersionTag}`]);\n }\n const needsMemory =\n components.includes(`agents`) && (await depService.checkDependencies(['@mastra/memory'])) !== `ok`;\n if (needsMemory) {\n await depService.installPackages([`@mastra/memory${packageVersionTag}`]);\n }\n\n const needsLoggers = (await depService.checkDependencies(['@mastra/loggers'])) !== `ok`;\n if (needsLoggers) {\n await depService.installPackages([`@mastra/loggers${packageVersionTag}`]);\n }\n\n const needsObservability = (await depService.checkDependencies(['@mastra/observability'])) !== `ok`;\n if (needsObservability) {\n await depService.installPackages([`@mastra/observability${packageVersionTag}`]);\n }\n\n const needsEvals =\n components.includes(`scorers`) && (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n if (needsEvals) {\n await depService.installPackages([`@mastra/evals${packageVersionTag}`]);\n }\n }\n\n const key = await getAPIKey(llmProvider || 'openai');\n\n s.stop('Mastra initialized');\n\n // Install skills if selected\n if (skills && skills.length > 0) {\n try {\n s.start('Installing Mastra agent skills');\n const skillsResult = await installMastraSkills({\n directory: process.cwd(),\n agents: skills,\n });\n if (skillsResult.success) {\n // Format agent names nicely\n const agentNames = skillsResult.agents\n .map(agent => {\n // Convert kebab-case to Title Case\n return agent\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n })\n .join(', ');\n s.stop(`Mastra agent skills installed (in ${agentNames})`);\n } else {\n s.stop('Skills installation failed');\n console.warn(color.yellow(`\\nWarning: ${skillsResult.error}`));\n }\n } catch (error) {\n s.stop('Skills installation failed');\n console.warn(color.yellow(`\\nWarning: ${error instanceof Error ? error.message : 'Unknown error'}`));\n }\n }\n\n // Install MCP if an editor was selected\n if (mcpServer) {\n await installMastraDocsMCPServer({\n editor: mcpServer,\n directory: process.cwd(),\n versionTag,\n });\n }\n\n // Write AGENTS.md and CLAUDE.md if skills or MCP were configured\n if ((skills && skills.length > 0) || mcpServer) {\n try {\n // Always write AGENTS.md\n await writeAgentsMarkdown({ skills, mcpServer });\n\n // Write CLAUDE.md only if claude-code is in skills list\n const shouldWriteClaudeMd = skills?.includes('claude-code');\n if (shouldWriteClaudeMd) {\n await writeClaudeMarkdown();\n }\n } catch (error) {\n // Don't fail initialization if markdown files fail to write\n console.warn(\n color.yellow(\n `\\nWarning: Failed to create agent guide files: ${error instanceof Error ? error.message : 'Unknown error'}`,\n ),\n );\n }\n }\n\n if (initGit) {\n s.start('Initializing git repository');\n try {\n await gitInit({ cwd: process.cwd() });\n s.stop('Git repository initialized');\n } catch {\n s.stop();\n }\n }\n\n if (!llmApiKey) {\n p.note(`\n ${color.green('Mastra initialized successfully!')}\n\n Rename ${color.cyan('.env.example')} to ${color.cyan('.env')}\n and add your ${color.cyan(key)}\n `);\n } else {\n p.note(`\n ${color.green('Mastra initialized successfully!')}\n `);\n }\n return { success: true };\n } catch (err) {\n s.stop(color.inverse('An error occurred while initializing Mastra'));\n console.error(err);\n return { success: false };\n }\n};\n","import child_process from 'node:child_process';\nimport fsSync from 'node:fs';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport util from 'node:util';\nimport * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps.js';\nimport { getPackageManagerAddCommand } from '../../utils/package-manager.js';\nimport type { PackageManager } from '../../utils/package-manager.js';\nimport { interactivePrompt } from '../init/utils.js';\nimport type { LLMProvider } from '../init/utils.js';\nimport { getPackageManager, isGitInitialized } from '../utils.js';\n\nconst exec = util.promisify(child_process.exec);\n\nconst execWithTimeout = async (command: string, timeoutMs?: number) => {\n try {\n const promise = exec(command, { killSignal: 'SIGTERM' });\n\n if (!timeoutMs) {\n return await promise;\n }\n\n let timeoutId: NodeJS.Timeout;\n const timeout = new Promise((_, reject) => {\n timeoutId = setTimeout(() => reject(new Error('Command timed out')), timeoutMs);\n });\n\n try {\n const result = await Promise.race([promise, timeout]);\n clearTimeout(timeoutId!);\n return result;\n } catch (error) {\n clearTimeout(timeoutId!);\n if (error instanceof Error && error.message === 'Command timed out') {\n throw new Error('Something went wrong during installation, please try again.');\n }\n throw error;\n }\n } catch (error: unknown) {\n throw error;\n }\n};\n\nasync function getInitCommand(pm: PackageManager): Promise<string> {\n switch (pm) {\n case 'npm':\n return 'npm init -y';\n case 'pnpm':\n return 'pnpm init';\n case 'yarn':\n return 'yarn init -y';\n case 'bun':\n return 'bun init -y';\n default:\n return 'npm init -y';\n }\n}\n\nasync function initializePackageJson(pm: PackageManager): Promise<void> {\n // Run the init command\n const initCommand = await getInitCommand(pm);\n await exec(initCommand);\n\n // Read and update package.json directly (more reliable than pkg set)\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));\n\n packageJson.type = 'module';\n packageJson.engines = {\n ...packageJson.engines,\n node: '>=22.13.0',\n };\n\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n}\n\nconst writeReadmeFile = async ({ dirPath, projectName }: { dirPath: string; projectName: string }) => {\n const packageManager = getPackageManager();\n const readmePath = path.join(dirPath, 'README.md');\n\n const content = `# ${projectName}\n\nWelcome to your new [Mastra](https://mastra.ai/) project! We're excited to see what you'll build.\n\n## Getting Started\n\nStart the development server:\n\n\\`\\`\\`shell\n${packageManager} run dev\n\\`\\`\\`\n\nOpen [http://localhost:4111](http://localhost:4111) in your browser to access [Mastra Studio](https://mastra.ai/docs/studio/overview). It provides an interactive UI for building and testing your agents, along with a REST API that exposes your Mastra application as a local service. This lets you start building without worrying about integration right away.\n\nYou can start editing files inside the \\`src/mastra\\` directory. The development server will automatically reload whenever you make changes.\n\n## Learn more\n\nTo learn more about Mastra, visit our [documentation](https://mastra.ai/docs/). Your bootstrapped project includes example code for [agents](https://mastra.ai/docs/agents/overview), [tools](https://mastra.ai/docs/agents/using-tools), [workflows](https://mastra.ai/docs/workflows/overview), [scorers](https://mastra.ai/docs/evals/overview), and [observability](https://mastra.ai/docs/observability/overview).\n\nIf you're new to AI agents, check out our [course](https://mastra.ai/learn) and [YouTube videos](https://youtube.com/@mastra-ai). You can also join our [Discord](https://discord.gg/BTYqqHKUrf) community to get help and share your projects.\n\n## Deploy to the Mastra platform\n\nThe [Mastra platform](https://projects.mastra.ai) provides two products for deploying and managing AI applications built with the Mastra framework:\n\n- **Studio**: A hosted visual environment for testing agents, running workflows, and inspecting traces\n- **Server**: A production deployment target that runs your Mastra application as an API server\n\nLearn more in the [Mastra platform documentation](https://mastra.ai/docs/mastra-platform/overview).`;\n\n await fs.writeFile(readmePath, content);\n};\n\nasync function installMastraDependencies(\n pm: PackageManager,\n dependencies: string[],\n versionTag: string,\n isDev: boolean,\n timeout?: number,\n) {\n let installCommand = getPackageManagerAddCommand(pm);\n\n if (isDev) {\n /**\n * All our package managers support -D for devDependencies. We can't use --save-dev across the board because yarn and bun don't alias it.\n * npm: -D, --save-dev. pnpm: -D, --save-dev. yarn: -D, --dev. bun: -D, --dev\n */\n installCommand = `${installCommand} -D`;\n }\n\n const dependenciesWithVersion = dependencies.map(dependency => `${dependency}${versionTag}`).join(' ');\n\n try {\n await execWithTimeout(`${pm} ${installCommand} ${dependenciesWithVersion}`, timeout);\n } catch (err) {\n if (versionTag === '@latest') {\n throw new Error(\n `Failed to install ${dependenciesWithVersion}: ${err instanceof Error ? err.message : 'Unknown error'}`,\n );\n }\n\n const latestDependencies = dependencies.map(dependency => `${dependency}@latest`).join(' ');\n try {\n await execWithTimeout(`${pm} ${installCommand} ${latestDependencies}`, timeout);\n } catch (fallbackErr) {\n throw new Error(\n `Failed to install ${dependencies.join(', ')} (tried ${versionTag} and @latest): ${fallbackErr instanceof Error ? fallbackErr.message : 'Unknown error'}`,\n );\n }\n }\n}\n\nexport const createMastraProject = async ({\n projectName: name,\n createVersionTag,\n timeout,\n llmProvider,\n llmApiKey,\n skills,\n mcpServer,\n needsInteractive,\n}: {\n projectName?: string;\n createVersionTag?: string;\n timeout?: number;\n llmProvider?: LLMProvider;\n llmApiKey?: string;\n skills?: string[];\n mcpServer?: string;\n needsInteractive?: boolean;\n}) => {\n p.intro(color.inverse(' Mastra Create '));\n\n const projectName =\n name ??\n (await p.text({\n message: 'What do you want to name your project?',\n placeholder: 'my-mastra-app',\n validate: value => {\n if (!value || value.length === 0) return 'Project name cannot be empty';\n if (fsSync.existsSync(value)) {\n return `A directory named \"${value}\" already exists. Please choose a different name.`;\n }\n },\n }));\n\n if (p.isCancel(projectName)) {\n p.cancel('Operation cancelled');\n process.exit(0);\n }\n\n let result: Awaited<ReturnType<typeof interactivePrompt>> | undefined = undefined;\n\n if (needsInteractive) {\n const skipGitInit = await isGitInitialized({ cwd: process.cwd() });\n\n result = await interactivePrompt({\n options: { showBanner: false },\n skip: {\n llmProvider: llmProvider !== undefined,\n llmApiKey: llmApiKey !== undefined,\n skills: skills !== undefined && skills.length > 0,\n mcpServer: mcpServer !== undefined,\n directory: true,\n gitInit: skipGitInit,\n },\n });\n }\n const s = p.spinner();\n const originalCwd = process.cwd();\n let projectPath: string | null = null;\n\n try {\n s.start('Creating project');\n try {\n await fs.mkdir(projectName);\n projectPath = path.resolve(originalCwd, projectName);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'EEXIST') {\n s.stop(`A directory named \"${projectName}\" already exists. Please choose a different name.`);\n process.exit(1);\n }\n throw new Error(\n `Failed to create project directory: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n process.chdir(projectName);\n const pm = getPackageManager();\n const installCommand = getPackageManagerAddCommand(pm);\n\n s.message('Initializing project structure');\n try {\n await initializePackageJson(pm);\n const depsService = new DepsService();\n await depsService.addScriptsToPackageJson({\n dev: 'mastra dev',\n build: 'mastra build',\n start: 'mastra start',\n });\n await writeReadmeFile({ dirPath: process.cwd(), projectName });\n } catch (error) {\n throw new Error(\n `Failed to initialize project structure: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n s.stop('Project structure created');\n\n s.start(`Installing ${pm} dependencies`);\n try {\n await exec(`${pm} ${installCommand} zod@^4`);\n await exec(`${pm} ${installCommand} -D typescript @types/node`);\n await exec(`echo '{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ES2022\",\n \"moduleResolution\": \"bundler\",\n \"esModuleInterop\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true,\n \"noEmit\": true,\n \"outDir\": \"dist\"\n },\n \"include\": [\n \"src/**/*\"\n ]\n}' > tsconfig.json`);\n } catch (error) {\n throw new Error(\n `Failed to install basic dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n s.stop(`${pm} dependencies installed`);\n\n s.start('Installing Mastra CLI');\n const versionTag = createVersionTag ? `@${createVersionTag}` : '@latest';\n\n try {\n await installMastraDependencies(pm, ['mastra'], versionTag, true, timeout);\n } catch (error) {\n throw new Error(`Failed to install Mastra CLI: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n s.stop('Mastra CLI installed');\n\n s.start('Installing Mastra dependencies');\n try {\n await installMastraDependencies(\n pm,\n ['@mastra/core', '@mastra/libsql', '@mastra/memory'],\n versionTag,\n false,\n timeout,\n );\n } catch (error) {\n throw new Error(\n `Failed to install Mastra dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n s.stop('Mastra dependencies installed');\n\n s.start('Adding .gitignore');\n try {\n await exec(`echo output.txt >> .gitignore`);\n await exec(`echo node_modules >> .gitignore`);\n await exec(`echo dist >> .gitignore`);\n await exec(`echo .mastra >> .gitignore`);\n await exec(`echo .env.development >> .gitignore`);\n await exec(`echo .env >> .gitignore`);\n await exec(`echo *.db >> .gitignore`);\n await exec(`echo *.db-* >> .gitignore`);\n await exec(`echo .netlify >> .gitignore`);\n await exec(`echo .vercel >> .gitignore`);\n } catch (error) {\n throw new Error(`Failed to create .gitignore: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n s.stop('.gitignore added');\n\n p.outro('Project created successfully');\n console.info('');\n\n return { projectName, result };\n } catch (error) {\n s.stop();\n\n const errorMessage = error instanceof Error ? error.message : 'An unexpected error occurred';\n p.cancel(`Project creation failed: ${errorMessage}`);\n\n // Clean up: remove the created directory on failure\n if (projectPath && fsSync.existsSync(projectPath)) {\n try {\n // Change back to original directory before cleanup\n process.chdir(originalCwd);\n await fs.rm(projectPath, { recursive: true, force: true });\n } catch (cleanupError) {\n // Log but don't throw - we want to exit with the original error\n console.error(\n `Warning: Failed to clean up project directory: ${cleanupError instanceof Error ? cleanupError.message : 'Unknown error'}`,\n );\n }\n }\n\n process.exit(1);\n }\n};\n","import fsSync from 'node:fs';\nimport fs from 'node:fs/promises';\nimport * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport pkgJson from '../../../package.json';\nimport type { PosthogAnalytics } from '../../analytics/index';\nimport { getAnalytics } from '../../analytics/index';\nimport { cloneTemplate, installDependencies } from '../../utils/clone-template';\nimport { loadTemplates, selectTemplate, findTemplateByName, getDefaultProjectName } from '../../utils/template-utils';\nimport type { Template } from '../../utils/template-utils';\nimport { init } from '../init/init';\nimport type { Editor } from '../init/mcp-docs-server-install';\nimport type { Component, LLMProvider } from '../init/utils';\nimport { LLM_PROVIDERS } from '../init/utils';\nimport { getPackageManager, gitInit } from '../utils.js';\n\nimport { createMastraProject } from './utils';\n\nconst version = pkgJson.version;\n\nexport const create = async (args: {\n projectName?: string;\n components?: Component[];\n llmProvider?: LLMProvider;\n addExample?: boolean;\n llmApiKey?: string;\n createVersionTag?: string;\n timeout?: number;\n directory?: string;\n mcpServer?: Editor;\n skills?: string[];\n template?: string | boolean;\n analytics?: PosthogAnalytics;\n}) => {\n if (args.template !== undefined) {\n await createFromTemplate({\n projectName: args.projectName,\n template: args.template,\n timeout: args.timeout,\n injectedAnalytics: args.analytics,\n llmProvider: args.llmProvider,\n });\n return;\n }\n\n /**\n * We need to explicitly check for undefined instead of using the falsy (!) check because the user might have passed args that are explicitly set to false (in this case, no example code) and we need to distinguish between those and the case where the args were not passed at all.\n */\n const needsInteractive =\n args.components === undefined || args.llmProvider === undefined || args.addExample === undefined;\n\n const directory = args.directory || 'src/';\n\n const { projectName, result } = await createMastraProject({\n projectName: args?.projectName,\n createVersionTag: args?.createVersionTag,\n timeout: args?.timeout,\n llmProvider: args?.llmProvider,\n llmApiKey: args?.llmApiKey,\n skills: args?.skills,\n mcpServer: args?.mcpServer,\n needsInteractive,\n });\n\n if (needsInteractive && result) {\n // Track model provider selection from interactive prompt\n const analytics = getAnalytics();\n if (analytics && result?.llmProvider) {\n analytics.trackEvent('cli_model_provider_selected', {\n provider: result.llmProvider,\n selection_method: 'interactive',\n });\n }\n\n const interactiveComponents: Component[] = ['agents', 'tools', 'workflows', 'scorers'];\n\n if (analytics) {\n analytics.trackEvent('cli_components_selected', {\n components: interactiveComponents,\n selection_method: 'interactive',\n });\n }\n\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string | undefined,\n components: interactiveComponents,\n addExample: true,\n skills: result?.skills || args.skills,\n mcpServer: result?.mcpServer || args.mcpServer,\n versionTag: args.createVersionTag,\n });\n postCreate({ projectName });\n return;\n }\n\n const { components = [], llmProvider = 'openai', addExample = false, llmApiKey } = args;\n\n // Track model provider selection from CLI args\n const cliAnalytics = getAnalytics();\n if (cliAnalytics) {\n cliAnalytics.trackEvent('cli_model_provider_selected', {\n provider: llmProvider,\n selection_method: 'cli_args',\n });\n\n cliAnalytics.trackEvent('cli_components_selected', {\n components,\n has_agents: components.includes('agents'),\n has_tools: components.includes('tools'),\n has_workflows: components.includes('workflows'),\n has_scorers: components.includes('scorers'),\n selection_method: 'cli_args',\n });\n }\n\n await init({\n directory,\n components,\n llmProvider,\n addExample,\n llmApiKey,\n skills: args.skills,\n mcpServer: args.mcpServer,\n versionTag: args.createVersionTag,\n });\n\n postCreate({ projectName });\n};\n\nconst postCreate = ({ projectName }: { projectName: string }) => {\n const packageManager = getPackageManager();\n p.outro(`\n ${color.green('To start your project:')}\n\n ${color.cyan('cd')} ${projectName}\n ${color.cyan(`${packageManager} run dev`)}\n `);\n};\n\nfunction isGitHubUrl(url: string): boolean {\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.hostname === 'github.com' && parsedUrl.pathname.split('/').length >= 3;\n } catch {\n return false;\n }\n}\n\nasync function validateGitHubProject(githubUrl: string): Promise<{ isValid: boolean; errors: string[] }> {\n const errors: string[] = [];\n\n try {\n // Extract owner and repo from GitHub URL\n const urlParts = new URL(githubUrl).pathname.split('/').filter(Boolean);\n const owner = urlParts[0];\n const repo = urlParts[1]?.replace('.git', ''); // Remove .git if present\n\n if (!owner || !repo) {\n throw new Error('Invalid GitHub URL format');\n }\n\n // Try to fetch from main branch first, fallback to master\n const branches = ['main', 'master'];\n let packageJsonContent: string | null = null;\n let indexContent: string | null = null;\n\n for (const branch of branches) {\n try {\n // Fetch package.json\n const packageJsonUrl = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/package.json`;\n const packageJsonResponse = await fetch(packageJsonUrl);\n\n if (packageJsonResponse.ok) {\n packageJsonContent = await packageJsonResponse.text();\n\n // If package.json found, try to fetch index.ts from same branch\n const indexUrl = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/src/mastra/index.ts`;\n const indexResponse = await fetch(indexUrl);\n\n if (indexResponse.ok) {\n indexContent = await indexResponse.text();\n }\n\n break; // Found files, no need to check other branches\n }\n } catch {\n // Continue to next branch\n }\n }\n\n if (!packageJsonContent) {\n errors.push('Could not fetch package.json from repository');\n return { isValid: false, errors };\n }\n\n // Check for @mastra/core dependency\n try {\n const packageJson = JSON.parse(packageJsonContent);\n const hasMastraCore =\n packageJson.dependencies?.['@mastra/core'] ||\n packageJson.devDependencies?.['@mastra/core'] ||\n packageJson.peerDependencies?.['@mastra/core'];\n\n if (!hasMastraCore) {\n errors.push('Missing @mastra/core dependency in package.json');\n }\n } catch {\n errors.push('Invalid package.json format');\n }\n\n // Check for src/mastra/index.ts\n if (!indexContent) {\n errors.push('Missing src/mastra/index.ts file');\n } else {\n // Check if it exports a Mastra instance\n const hasMastraExport =\n indexContent.includes('export') && (indexContent.includes('new Mastra') || indexContent.includes('Mastra('));\n\n if (!hasMastraExport) {\n errors.push('src/mastra/index.ts does not export a Mastra instance');\n }\n }\n\n return { isValid: errors.length === 0, errors };\n } catch (error) {\n errors.push(`Failed to validate GitHub repository: ${error instanceof Error ? error.message : 'Unknown error'}`);\n return { isValid: false, errors };\n }\n}\n\nasync function createFromGitHubUrl(url: string): Promise<Template> {\n // Extract owner and repo from GitHub URL\n const urlParts = new URL(url).pathname.split('/').filter(Boolean);\n const owner = urlParts[0] || 'unknown';\n const repo = urlParts[1] || 'unknown';\n\n // Create a temporary Template object for GitHub URLs\n return {\n githubUrl: url,\n title: `${owner}/${repo}`,\n slug: repo,\n agents: [],\n mcp: [],\n tools: [],\n networks: [],\n workflows: [],\n };\n}\n\nasync function createFromTemplate(args: {\n projectName?: string;\n template?: string | boolean;\n timeout?: number;\n injectedAnalytics?: PosthogAnalytics;\n llmProvider?: LLMProvider;\n}) {\n let selectedTemplate: Template | undefined;\n\n if (args.template === true) {\n // Interactive template selection\n const templates = await loadTemplates();\n const selected = await selectTemplate(templates);\n if (!selected) {\n p.log.info('No template selected. Exiting.');\n return;\n }\n selectedTemplate = selected;\n } else if (args.template && typeof args.template === 'string') {\n // Check if it's a GitHub URL\n if (isGitHubUrl(args.template)) {\n // Validate GitHub project before cloning\n const spinner = p.spinner();\n spinner.start('Validating GitHub repository...');\n\n const validation = await validateGitHubProject(args.template);\n\n if (!validation.isValid) {\n spinner.stop('Validation failed');\n p.log.error('This does not appear to be a valid Mastra project:');\n validation.errors.forEach(error => p.log.error(` - ${error}`));\n throw new Error('Invalid Mastra project');\n }\n\n spinner.stop('Valid Mastra project ✓');\n selectedTemplate = await createFromGitHubUrl(args.template);\n } else {\n // Template name provided, find it from the list\n const templates = await loadTemplates();\n const found = findTemplateByName(templates, args.template);\n if (!found) {\n p.log.error(`Template \"${args.template}\" not found. Available templates:`);\n templates.forEach((t: Template) => p.log.info(` - ${t.title} (use: ${t.slug.replace('template-', '')})`));\n throw new Error(`Template \"${args.template}\" not found`);\n }\n selectedTemplate = found;\n }\n }\n\n if (!selectedTemplate) {\n throw new Error('No template selected');\n }\n\n // Get project name\n let projectName = args.projectName;\n if (!projectName) {\n const defaultName = getDefaultProjectName(selectedTemplate);\n const response = await p.text({\n message: 'What is your project name?',\n defaultValue: defaultName,\n placeholder: defaultName,\n });\n\n if (p.isCancel(response)) {\n p.log.info('Project creation cancelled.');\n return;\n }\n\n projectName = response as string;\n }\n\n // Get LLM provider if not specified\n let llmProvider = args.llmProvider;\n if (!llmProvider) {\n const providerResponse = await p.select({\n message: 'Select a default provider:',\n options: LLM_PROVIDERS,\n });\n\n if (p.isCancel(providerResponse)) {\n p.log.info('Project creation cancelled.');\n return;\n }\n\n llmProvider = providerResponse as LLMProvider;\n }\n\n // Handle git initialization for templates\n let initGit = false;\n const gitConfirmResult = await p.confirm({\n message: 'Initialize a new git repository?',\n initialValue: true,\n });\n\n if (!p.isCancel(gitConfirmResult)) {\n initGit = gitConfirmResult;\n }\n\n let projectPath: string | null = null;\n\n try {\n // Track template usage\n const analytics = args.injectedAnalytics || getAnalytics();\n if (analytics) {\n analytics.trackEvent('cli_template_used', {\n template_slug: selectedTemplate.slug,\n template_title: selectedTemplate.title,\n });\n\n // Track model provider selection\n if (llmProvider) {\n analytics.trackEvent('cli_model_provider_selected', {\n provider: llmProvider,\n selection_method: args.llmProvider ? 'cli_args' : 'interactive',\n });\n }\n }\n\n const isBeta = version?.includes('beta') ?? false;\n const isMastraTemplate = selectedTemplate.githubUrl.includes('github.com/mastra-ai/');\n const branch = isBeta && isMastraTemplate ? 'beta' : undefined;\n\n // Clone the template\n projectPath = await cloneTemplate({\n template: selectedTemplate,\n projectName,\n branch,\n llmProvider,\n });\n\n // Install dependencies\n await installDependencies(projectPath);\n\n if (initGit) {\n const s = p.spinner();\n try {\n s.start('Initializing git repository');\n\n await gitInit({ cwd: projectPath });\n\n s.stop('Git repository initialized');\n } catch {\n s.stop();\n }\n }\n\n p.note(`\n ${color.green('Mastra template installed!')}\n\n Add the necessary environment\n variables in your ${color.cyan('.env')} file\n `);\n\n // Show completion message\n postCreate({ projectName });\n } catch (error) {\n // Clean up: remove the created directory on failure\n if (projectPath) {\n try {\n if (fsSync.existsSync(projectPath)) {\n await fs.rm(projectPath, { recursive: true, force: true });\n }\n } catch (cleanupError) {\n // Log but don't throw - we want to exit with the original error\n console.error(\n `Warning: Failed to clean up project directory: ${cleanupError instanceof Error ? cleanupError.message : 'Unknown error'}`,\n );\n }\n }\n p.log.error(`Failed to create project from template: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n"]}
1
+ {"version":3,"sources":["../package.json","../src/utils/logger.ts","../src/utils/clone-template.ts","../src/utils/template-utils.ts","../src/commands/init/skills-install.ts","../src/commands/init/init.ts","../src/commands/create/utils.ts","../src/commands/create/create.ts"],"names":["spinner","p","p2","exec","util","child_process","path","fs","p3","color","s","fsSync"],"mappings":"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","file":"chunk-7CDTV2JD.js","sourcesContent":["{\n \"name\": \"mastra\",\n \"version\": \"1.8.1\",\n \"license\": \"Apache-2.0\",\n \"description\": \"cli for mastra\",\n \"type\": \"module\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"mastra\": \"./dist/index.js\"\n },\n \"exports\": {\n \".\": \"./dist/index.js\",\n \"./package.json\": \"./package.json\",\n \"./telemetry-loader\": \"./dist/commands/dev/telemetry-loader.js\",\n \"./dist/*\": [\n \"./dist/*\",\n \"./dist/*.js\"\n ]\n },\n \"files\": [\n \"dist\",\n \"CHANGELOG.md\"\n ],\n \"scripts\": {\n \"build:lib\": \"tsup --silent --config tsup.config.ts\",\n \"prepack\": \"pnpx tsx ../../scripts/generate-package-docs.ts\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest watch\",\n \"clean\": \"rm -rf dist && rm -rf node_modules\",\n \"typecheck\": \"tsc --noEmit --incremental\",\n \"lint\": \"eslint .\"\n },\n \"keywords\": [\n \"mastra\",\n \"cli\",\n \"ai\",\n \"llm\",\n \"llms\",\n \"agent\",\n \"agents\",\n \"dev\",\n \"development\",\n \"deploy\",\n \"deployment\",\n \"build\",\n \"workflow\",\n \"typescript\",\n \"command-line\",\n \"devtools\"\n ],\n \"dependencies\": {\n \"@clack/prompts\": \"^1.1.0\",\n \"@expo/devcert\": \"^1.2.1\",\n \"archiver\": \"^7.0.1\",\n \"@mastra/deployer\": \"workspace:^\",\n \"@mastra/loggers\": \"workspace:^\",\n \"commander\": \"^14.0.3\",\n \"dotenv\": \"^17.3.1\",\n \"execa\": \"^9.6.1\",\n \"fs-extra\": \"^11.3.4\",\n \"get-port\": \"^7.1.0\",\n \"local-pkg\": \"^1.1.2\",\n \"openapi-fetch\": \"^0.17.0\",\n \"picocolors\": \"^1.1.1\",\n \"posthog-node\": \"5.17.2\",\n \"semver\": \"^7.7.4\",\n \"serve\": \"^14.2.6\",\n \"serve-handler\": \"^6.1.7\",\n \"shell-quote\": \"^1.8.3\",\n \"strip-json-comments\": \"^5.0.3\",\n \"yocto-spinner\": \"^1.1.0\"\n },\n \"devDependencies\": {\n \"@commander-js/extra-typings\": \"^14.0.0\",\n \"@internal/lint\": \"workspace:*\",\n \"@internal/playground\": \"workspace:*\",\n \"@internal/types-builder\": \"workspace:*\",\n \"@mastra/core\": \"workspace:*\",\n \"@types/archiver\": \"^7.0.0\",\n \"@types/fs-extra\": \"^11.0.4\",\n \"@types/node\": \"22.19.15\",\n \"@types/semver\": \"^7.7.1\",\n \"@types/serve-handler\": \"^6.1.4\",\n \"@types/shell-quote\": \"^1.7.5\",\n \"@vitest/coverage-v8\": \"catalog:\",\n \"@vitest/ui\": \"catalog:\",\n \"eslint\": \"^10.2.1\",\n \"memfs\": \"^4.56.11\",\n \"rollup\": \"^4.59.0\",\n \"tsup\": \"^8.5.1\",\n \"type-fest\": \"^5.4.4\",\n \"typescript\": \"catalog:\",\n \"vitest\": \"catalog:\"\n },\n \"peerDependencies\": {\n \"@mastra/core\": \">=1.1.0-0 <2.0.0-0\",\n \"zod\": \"^3.25.0 || ^4.0.0\"\n },\n \"homepage\": \"https://mastra.ai\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/mastra-ai/mastra.git\",\n \"directory\": \"packages/cli\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/mastra-ai/mastra/issues\"\n },\n \"engines\": {\n \"node\": \">=22.13.0\"\n }\n}\n","import { PinoLogger } from '@mastra/loggers';\n\nexport const logger = createLogger(false);\n\nexport function createLogger(debug: boolean = false) {\n return new PinoLogger({\n name: 'Mastra CLI',\n level: debug ? 'debug' : 'info',\n });\n}\n","import child_process from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport util from 'node:util';\nimport shellQuote from 'shell-quote';\nimport yoctoSpinner from 'yocto-spinner';\n\nimport type { LLMProvider } from '../commands/init/utils';\nimport { getModelIdentifier } from '../commands/init/utils';\nimport { getPackageManager } from '../commands/utils';\n\nimport { logger } from './logger';\nimport type { Template } from './template-utils';\n\nconst exec = util.promisify(child_process.exec);\n\nexport interface CloneTemplateOptions {\n template: Template;\n projectName: string;\n targetDir?: string;\n branch?: string;\n llmProvider?: LLMProvider;\n}\n\nexport async function cloneTemplate(options: CloneTemplateOptions): Promise<string> {\n const { template, projectName, targetDir, branch, llmProvider } = options;\n const projectPath = targetDir ? path.resolve(targetDir, projectName) : path.resolve(projectName);\n\n const spinner = yoctoSpinner({ text: `Cloning template \"${template.title}\"...` }).start();\n\n try {\n // Check if directory already exists\n if (await directoryExists(projectPath)) {\n spinner.error(`Directory ${projectName} already exists`);\n throw new Error(`Directory ${projectName} already exists`);\n }\n\n // Clone the repository without git history\n await cloneRepositoryWithoutGit(template.githubUrl, projectPath, branch);\n\n // Update package.json with new project name\n await updatePackageJson(projectPath, projectName);\n\n // Copy .env.example to .env if it exists, and update MODEL if llmProvider is specified\n const envExamplePath = path.join(projectPath, '.env.example');\n if (await fileExists(envExamplePath)) {\n const envPath = path.join(projectPath, '.env');\n await fs.copyFile(envExamplePath, envPath);\n\n // Update MODEL in .env if llmProvider is specified\n if (llmProvider) {\n await updateEnvFile(envPath, llmProvider);\n }\n }\n\n spinner.success(`Template \"${template.title}\" cloned successfully to ${projectName}`);\n return projectPath;\n } catch (error) {\n spinner.error(`Failed to clone template: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n\nasync function directoryExists(dirPath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(dirPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function fileExists(filePath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(filePath);\n return stat.isFile();\n } catch {\n return false;\n }\n}\n\nasync function cloneRepositoryWithoutGit(repoUrl: string, targetPath: string, branch?: string): Promise<void> {\n // Create target directory\n await fs.mkdir(targetPath, { recursive: true });\n\n try {\n // First try using degit if available (similar to Next.js)\n const degitRepo = repoUrl.replace('https://github.com/', '');\n // If branch is specified, append it to the degit repo (format: owner/repo#branch)\n const degitRepoWithBranch = branch ? `${degitRepo}#${branch}` : degitRepo;\n const degitCommand = shellQuote.quote(['npx', 'degit', degitRepoWithBranch, targetPath]);\n await exec(degitCommand, {\n cwd: process.cwd(),\n });\n } catch {\n // Fallback to git clone + remove .git\n try {\n const gitArgs = ['git', 'clone'];\n // Add branch flag if specified\n if (branch) {\n gitArgs.push('--branch', branch);\n }\n gitArgs.push(repoUrl, targetPath);\n\n const gitCommand = shellQuote.quote(gitArgs);\n await exec(gitCommand, {\n cwd: process.cwd(),\n });\n\n // Remove .git directory\n const gitDir = path.join(targetPath, '.git');\n if (await directoryExists(gitDir)) {\n await fs.rm(gitDir, { recursive: true, force: true });\n }\n } catch (gitError) {\n throw new Error(`Failed to clone repository: ${gitError instanceof Error ? gitError.message : 'Unknown error'}`);\n }\n }\n}\n\nasync function updatePackageJson(projectPath: string, projectName: string): Promise<void> {\n const packageJsonPath = path.join(projectPath, 'package.json');\n\n try {\n const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON.parse(packageJsonContent);\n\n // Update the name field\n packageJson.name = projectName;\n\n // Write back the updated package.json\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');\n } catch (error) {\n // It's okay if package.json doesn't exist or can't be updated\n logger.warn('Could not update package.json', { error: error instanceof Error ? error.message : 'Unknown error' });\n }\n}\n\nasync function updateEnvFile(envPath: string, llmProvider: LLMProvider): Promise<void> {\n try {\n const envContent = await fs.readFile(envPath, 'utf-8');\n const modelString = getModelIdentifier(llmProvider);\n\n if (!modelString) {\n logger.warn('Could not get model identifier for provider', { provider: llmProvider });\n return;\n }\n\n // Remove quotes from modelString (it comes as 'provider/model')\n const modelValue = modelString.replace(/'/g, '');\n\n // Replace the MODEL line with the selected provider's model\n const updatedContent = envContent.replace(/^MODEL=.*/m, `MODEL=${modelValue}`);\n\n await fs.writeFile(envPath, updatedContent, 'utf-8');\n logger.info('Updated MODEL in .env', { model: modelValue });\n } catch (error) {\n // It's okay if .env can't be updated\n logger.warn('Could not update .env file', { error: error instanceof Error ? error.message : 'Unknown error' });\n }\n}\n\nexport async function installDependencies(projectPath: string, packageManager?: string): Promise<void> {\n const spinner = yoctoSpinner({ text: 'Installing dependencies...' }).start();\n\n try {\n // Use provided package manager or detect from environment/globally\n const pm = packageManager || getPackageManager();\n\n const installCommand = shellQuote.quote([pm, 'install']);\n\n await exec(installCommand, {\n cwd: projectPath,\n });\n\n spinner.success('Dependencies installed successfully');\n } catch (error) {\n spinner.error(`Failed to install dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n","import * as p from '@clack/prompts';\n\nexport interface Template {\n githubUrl: string;\n title: string;\n slug: string;\n agents: string[];\n mcp: string[];\n tools: string[];\n networks: string[];\n workflows: string[];\n}\n\nconst TEMPLATES_API_URL = process.env.MASTRA_TEMPLATES_API_URL || 'https://mastra.ai/api/templates.json';\n\nexport async function loadTemplates(): Promise<Template[]> {\n try {\n const response = await fetch(TEMPLATES_API_URL);\n if (!response.ok) {\n throw new Error(`Failed to fetch templates: ${response.statusText}`);\n }\n const templates = (await response.json()) as Template[];\n return templates;\n } catch (error) {\n console.error('Error loading templates:', error);\n throw new Error('Failed to load templates. Please check your internet connection and try again.');\n }\n}\n\nfunction pluralize(count: number, singular: string, plural?: string): string {\n return count === 1 ? singular : plural || `${singular}s`;\n}\n\nexport async function selectTemplate(templates: Template[]): Promise<Template | null> {\n const choices = templates.map(template => {\n const parts = [];\n if (template.agents?.length) {\n parts.push(`${template.agents.length} ${pluralize(template.agents.length, 'agent')}`);\n }\n if (template.tools?.length) {\n parts.push(`${template.tools.length} ${pluralize(template.tools.length, 'tool')}`);\n }\n if (template.workflows?.length) {\n parts.push(`${template.workflows.length} ${pluralize(template.workflows.length, 'workflow')}`);\n }\n if (template.mcp?.length) {\n parts.push(`${template.mcp.length} ${pluralize(template.mcp.length, 'MCP server')}`);\n }\n if (template.networks?.length) {\n parts.push(`${template.networks.length} ${pluralize(template.networks.length, 'agent network')}`);\n }\n\n return {\n value: template,\n label: template.title,\n hint: parts.join(', ') || 'Template components',\n };\n });\n\n const selected = await p.select({\n message: 'Select a template:',\n options: choices,\n });\n\n if (p.isCancel(selected)) {\n return null;\n }\n\n return selected as Template;\n}\n\nexport function findTemplateByName(templates: Template[], templateName: string): Template | null {\n // First try to find by exact slug match\n let template = templates.find(t => t.slug === templateName);\n if (template) return template;\n\n // Then try to find by slug without \"template-\" prefix\n const slugWithPrefix = `template-${templateName}`;\n template = templates.find(t => t.slug === slugWithPrefix);\n if (template) return template;\n\n // Finally try case-insensitive name match\n template = templates.find(t => t.title.toLowerCase() === templateName.toLowerCase());\n if (template) return template;\n\n return null;\n}\n\nexport function getDefaultProjectName(template: Template): string {\n // Remove \"template-\" prefix from slug if it exists\n return template.slug.replace(/^template-/, '');\n}\n","import { execa } from 'execa';\n\nexport async function installMastraSkills({\n directory,\n agents,\n}: {\n directory: string;\n agents: string[];\n}): Promise<{ success: boolean; error?: string; agents: string[] }> {\n try {\n // Build args: --agent takes space-separated agent names\n const args = ['skills', 'add', 'mastra-ai/skills', '--agent', ...agents, '-y'];\n\n await execa('npx', args, {\n cwd: directory,\n stdio: 'pipe', // Hide verbose output\n });\n\n return { success: true, agents };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n agents,\n };\n }\n}\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps';\n\nimport { gitInit } from '../utils';\nimport { installMastraDocsMCPServer } from './mcp-docs-server-install';\nimport type { Editor } from './mcp-docs-server-install';\nimport { installMastraSkills } from './skills-install';\nimport {\n createComponentsDir,\n createMastraDir,\n getAPIKey,\n writeAgentsMarkdown,\n writeAPIKey,\n writeClaudeMarkdown,\n writeCodeSample,\n writeIndexFile,\n} from './utils';\nimport type { Component, LLMProvider } from './utils';\n\nconst s = p.spinner();\n\nexport const init = async ({\n directory = 'src/',\n components,\n llmProvider = 'openai',\n llmApiKey,\n addExample = false,\n skills,\n mcpServer,\n versionTag,\n initGit = false,\n}: {\n directory?: string;\n components: Component[];\n llmProvider?: LLMProvider;\n llmApiKey?: string;\n addExample?: boolean;\n skills?: string[];\n mcpServer?: Editor;\n versionTag?: string;\n initGit?: boolean;\n}) => {\n s.start('Initializing Mastra');\n const packageVersionTag = versionTag ? `@${versionTag}` : '';\n\n try {\n const result = await createMastraDir(directory);\n\n if (!result.ok) {\n s.stop(color.inverse(' Mastra already initialized '));\n return { success: false };\n }\n\n const dirPath = result.dirPath;\n\n await Promise.all([\n writeIndexFile({\n dirPath,\n addExample,\n addWorkflow: components.includes('workflows'),\n addAgent: components.includes('agents'),\n addScorers: components.includes('scorers'),\n }),\n ...components.map(component => createComponentsDir(dirPath, component)),\n writeAPIKey({ provider: llmProvider, apiKey: llmApiKey }),\n ]);\n\n if (addExample) {\n await Promise.all([\n ...components.map(component =>\n writeCodeSample(dirPath, component as Component, llmProvider, components as Component[]),\n ),\n ]);\n\n const depService = new DepsService();\n\n const needsLibsql = (await depService.checkDependencies(['@mastra/libsql'])) !== `ok`;\n if (needsLibsql) {\n await depService.installPackages([`@mastra/libsql${packageVersionTag}`]);\n }\n const needsDuckDB = (await depService.checkDependencies(['@mastra/duckdb'])) !== `ok`;\n if (needsDuckDB) {\n await depService.installPackages([`@mastra/duckdb${packageVersionTag}`]);\n }\n const needsMemory =\n components.includes(`agents`) && (await depService.checkDependencies(['@mastra/memory'])) !== `ok`;\n if (needsMemory) {\n await depService.installPackages([`@mastra/memory${packageVersionTag}`]);\n }\n\n const needsLoggers = (await depService.checkDependencies(['@mastra/loggers'])) !== `ok`;\n if (needsLoggers) {\n await depService.installPackages([`@mastra/loggers${packageVersionTag}`]);\n }\n\n const needsObservability = (await depService.checkDependencies(['@mastra/observability'])) !== `ok`;\n if (needsObservability) {\n await depService.installPackages([`@mastra/observability${packageVersionTag}`]);\n }\n\n const needsEvals =\n components.includes(`scorers`) && (await depService.checkDependencies(['@mastra/evals'])) !== `ok`;\n if (needsEvals) {\n await depService.installPackages([`@mastra/evals${packageVersionTag}`]);\n }\n }\n\n const key = await getAPIKey(llmProvider || 'openai');\n\n s.stop('Mastra initialized');\n\n // Install skills if selected\n if (skills && skills.length > 0) {\n try {\n s.start('Installing Mastra agent skills');\n const skillsResult = await installMastraSkills({\n directory: process.cwd(),\n agents: skills,\n });\n if (skillsResult.success) {\n // Format agent names nicely\n const agentNames = skillsResult.agents\n .map(agent => {\n // Convert kebab-case to Title Case\n return agent\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n })\n .join(', ');\n s.stop(`Mastra agent skills installed (in ${agentNames})`);\n } else {\n s.stop('Skills installation failed');\n console.warn(color.yellow(`\\nWarning: ${skillsResult.error}`));\n }\n } catch (error) {\n s.stop('Skills installation failed');\n console.warn(color.yellow(`\\nWarning: ${error instanceof Error ? error.message : 'Unknown error'}`));\n }\n }\n\n // Install MCP if an editor was selected\n if (mcpServer) {\n await installMastraDocsMCPServer({\n editor: mcpServer,\n directory: process.cwd(),\n versionTag,\n });\n }\n\n // Write AGENTS.md and CLAUDE.md if skills or MCP were configured\n if ((skills && skills.length > 0) || mcpServer) {\n try {\n // Always write AGENTS.md\n await writeAgentsMarkdown({ skills, mcpServer });\n\n // Write CLAUDE.md only if claude-code is in skills list\n const shouldWriteClaudeMd = skills?.includes('claude-code');\n if (shouldWriteClaudeMd) {\n await writeClaudeMarkdown();\n }\n } catch (error) {\n // Don't fail initialization if markdown files fail to write\n console.warn(\n color.yellow(\n `\\nWarning: Failed to create agent guide files: ${error instanceof Error ? error.message : 'Unknown error'}`,\n ),\n );\n }\n }\n\n if (initGit) {\n s.start('Initializing git repository');\n try {\n await gitInit({ cwd: process.cwd() });\n s.stop('Git repository initialized');\n } catch {\n s.stop();\n }\n }\n\n if (!llmApiKey) {\n p.note(`\n ${color.green('Mastra initialized successfully!')}\n\n Rename ${color.cyan('.env.example')} to ${color.cyan('.env')}\n and add your ${color.cyan(key)}\n `);\n } else {\n p.note(`\n ${color.green('Mastra initialized successfully!')}\n `);\n }\n return { success: true };\n } catch (err) {\n s.stop(color.inverse('An error occurred while initializing Mastra'));\n console.error(err);\n return { success: false };\n }\n};\n","import child_process from 'node:child_process';\nimport fsSync from 'node:fs';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport util from 'node:util';\nimport * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps.js';\nimport { getPackageManagerAddCommand } from '../../utils/package-manager.js';\nimport type { PackageManager } from '../../utils/package-manager.js';\nimport { interactivePrompt } from '../init/utils.js';\nimport type { LLMProvider } from '../init/utils.js';\nimport { getPackageManager, isGitInitialized } from '../utils.js';\n\nconst exec = util.promisify(child_process.exec);\n\nconst execWithTimeout = async (command: string, timeoutMs?: number) => {\n try {\n const promise = exec(command, { killSignal: 'SIGTERM' });\n\n if (!timeoutMs) {\n return await promise;\n }\n\n let timeoutId: NodeJS.Timeout;\n const timeout = new Promise((_, reject) => {\n timeoutId = setTimeout(() => reject(new Error('Command timed out')), timeoutMs);\n });\n\n try {\n const result = await Promise.race([promise, timeout]);\n clearTimeout(timeoutId!);\n return result;\n } catch (error) {\n clearTimeout(timeoutId!);\n if (error instanceof Error && error.message === 'Command timed out') {\n throw new Error('Something went wrong during installation, please try again.');\n }\n throw error;\n }\n } catch (error: unknown) {\n throw error;\n }\n};\n\nasync function getInitCommand(pm: PackageManager): Promise<string> {\n switch (pm) {\n case 'npm':\n return 'npm init -y';\n case 'pnpm':\n return 'pnpm init';\n case 'yarn':\n return 'yarn init -y';\n case 'bun':\n return 'bun init -y';\n default:\n return 'npm init -y';\n }\n}\n\nasync function initializePackageJson(pm: PackageManager): Promise<void> {\n // Run the init command\n const initCommand = await getInitCommand(pm);\n await exec(initCommand);\n\n // Read and update package.json directly (more reliable than pkg set)\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));\n\n packageJson.type = 'module';\n packageJson.engines = {\n ...packageJson.engines,\n node: '>=22.13.0',\n };\n\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n}\n\nconst writeReadmeFile = async ({ dirPath, projectName }: { dirPath: string; projectName: string }) => {\n const packageManager = getPackageManager();\n const readmePath = path.join(dirPath, 'README.md');\n\n const content = `# ${projectName}\n\nWelcome to your new [Mastra](https://mastra.ai/) project! We're excited to see what you'll build.\n\n## Getting Started\n\nStart the development server:\n\n\\`\\`\\`shell\n${packageManager} run dev\n\\`\\`\\`\n\nOpen [http://localhost:4111](http://localhost:4111) in your browser to access [Mastra Studio](https://mastra.ai/docs/studio/overview). It provides an interactive UI for building and testing your agents, along with a REST API that exposes your Mastra application as a local service. This lets you start building without worrying about integration right away.\n\nYou can start editing files inside the \\`src/mastra\\` directory. The development server will automatically reload whenever you make changes.\n\n## Learn more\n\nTo learn more about Mastra, visit our [documentation](https://mastra.ai/docs/). Your bootstrapped project includes example code for [agents](https://mastra.ai/docs/agents/overview), [tools](https://mastra.ai/docs/agents/using-tools), [workflows](https://mastra.ai/docs/workflows/overview), [scorers](https://mastra.ai/docs/evals/overview), and [observability](https://mastra.ai/docs/observability/overview).\n\nIf you're new to AI agents, check out our [course](https://mastra.ai/learn) and [YouTube videos](https://youtube.com/@mastra-ai). You can also join our [Discord](https://discord.gg/BTYqqHKUrf) community to get help and share your projects.\n\n## Deploy to the Mastra platform\n\nThe [Mastra platform](https://projects.mastra.ai) provides two products for deploying and managing AI applications built with the Mastra framework:\n\n- **Studio**: A hosted visual environment for testing agents, running workflows, and inspecting traces\n- **Server**: A production deployment target that runs your Mastra application as an API server\n\nLearn more in the [Mastra platform documentation](https://mastra.ai/docs/mastra-platform/overview).`;\n\n await fs.writeFile(readmePath, content);\n};\n\nasync function installMastraDependencies(\n pm: PackageManager,\n dependencies: string[],\n versionTag: string,\n isDev: boolean,\n timeout?: number,\n) {\n let installCommand = getPackageManagerAddCommand(pm);\n\n if (isDev) {\n /**\n * All our package managers support -D for devDependencies. We can't use --save-dev across the board because yarn and bun don't alias it.\n * npm: -D, --save-dev. pnpm: -D, --save-dev. yarn: -D, --dev. bun: -D, --dev\n */\n installCommand = `${installCommand} -D`;\n }\n\n const dependenciesWithVersion = dependencies.map(dependency => `${dependency}${versionTag}`).join(' ');\n\n try {\n await execWithTimeout(`${pm} ${installCommand} ${dependenciesWithVersion}`, timeout);\n } catch (err) {\n if (versionTag === '@latest') {\n throw new Error(\n `Failed to install ${dependenciesWithVersion}: ${err instanceof Error ? err.message : 'Unknown error'}`,\n );\n }\n\n const latestDependencies = dependencies.map(dependency => `${dependency}@latest`).join(' ');\n try {\n await execWithTimeout(`${pm} ${installCommand} ${latestDependencies}`, timeout);\n } catch (fallbackErr) {\n throw new Error(\n `Failed to install ${dependencies.join(', ')} (tried ${versionTag} and @latest): ${fallbackErr instanceof Error ? fallbackErr.message : 'Unknown error'}`,\n );\n }\n }\n}\n\nexport const createMastraProject = async ({\n projectName: name,\n createVersionTag,\n timeout,\n llmProvider,\n llmApiKey,\n skills,\n mcpServer,\n needsInteractive,\n}: {\n projectName?: string;\n createVersionTag?: string;\n timeout?: number;\n llmProvider?: LLMProvider;\n llmApiKey?: string;\n skills?: string[];\n mcpServer?: string;\n needsInteractive?: boolean;\n}) => {\n p.intro(color.inverse(' Mastra Create '));\n\n const projectName =\n name ??\n (await p.text({\n message: 'What do you want to name your project?',\n placeholder: 'my-mastra-app',\n validate: value => {\n if (!value || value.length === 0) return 'Project name cannot be empty';\n if (fsSync.existsSync(value)) {\n return `A directory named \"${value}\" already exists. Please choose a different name.`;\n }\n },\n }));\n\n if (p.isCancel(projectName)) {\n p.cancel('Operation cancelled');\n process.exit(0);\n }\n\n let result: Awaited<ReturnType<typeof interactivePrompt>> | undefined = undefined;\n\n if (needsInteractive) {\n const skipGitInit = await isGitInitialized({ cwd: process.cwd() });\n\n result = await interactivePrompt({\n options: { showBanner: false },\n skip: {\n llmProvider: llmProvider !== undefined,\n llmApiKey: llmApiKey !== undefined,\n skills: skills !== undefined && skills.length > 0,\n mcpServer: mcpServer !== undefined,\n directory: true,\n gitInit: skipGitInit,\n },\n });\n }\n const s = p.spinner();\n const originalCwd = process.cwd();\n let projectPath: string | null = null;\n\n try {\n s.start('Creating project');\n try {\n await fs.mkdir(projectName);\n projectPath = path.resolve(originalCwd, projectName);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'EEXIST') {\n s.stop(`A directory named \"${projectName}\" already exists. Please choose a different name.`);\n process.exit(1);\n }\n throw new Error(\n `Failed to create project directory: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n process.chdir(projectName);\n const pm = getPackageManager();\n const installCommand = getPackageManagerAddCommand(pm);\n\n s.message('Initializing project structure');\n try {\n await initializePackageJson(pm);\n const depsService = new DepsService();\n await depsService.addScriptsToPackageJson({\n dev: 'mastra dev',\n build: 'mastra build',\n start: 'mastra start',\n });\n await writeReadmeFile({ dirPath: process.cwd(), projectName });\n } catch (error) {\n throw new Error(\n `Failed to initialize project structure: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n s.stop('Project structure created');\n\n s.start(`Installing ${pm} dependencies`);\n try {\n await exec(`${pm} ${installCommand} zod@^4`);\n await exec(`${pm} ${installCommand} -D typescript @types/node`);\n await exec(`echo '{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ES2022\",\n \"moduleResolution\": \"bundler\",\n \"esModuleInterop\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true,\n \"noEmit\": true,\n \"outDir\": \"dist\"\n },\n \"include\": [\n \"src/**/*\"\n ]\n}' > tsconfig.json`);\n } catch (error) {\n throw new Error(\n `Failed to install basic dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n s.stop(`${pm} dependencies installed`);\n\n s.start('Installing Mastra CLI');\n const versionTag = createVersionTag ? `@${createVersionTag}` : '@latest';\n\n try {\n await installMastraDependencies(pm, ['mastra'], versionTag, true, timeout);\n } catch (error) {\n throw new Error(`Failed to install Mastra CLI: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n s.stop('Mastra CLI installed');\n\n s.start('Installing Mastra dependencies');\n try {\n await installMastraDependencies(\n pm,\n ['@mastra/core', '@mastra/libsql', '@mastra/memory'],\n versionTag,\n false,\n timeout,\n );\n } catch (error) {\n throw new Error(\n `Failed to install Mastra dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n s.stop('Mastra dependencies installed');\n\n s.start('Adding .gitignore');\n try {\n await exec(`echo output.txt >> .gitignore`);\n await exec(`echo node_modules >> .gitignore`);\n await exec(`echo dist >> .gitignore`);\n await exec(`echo .mastra >> .gitignore`);\n await exec(`echo .env.development >> .gitignore`);\n await exec(`echo .env >> .gitignore`);\n await exec(`echo *.db >> .gitignore`);\n await exec(`echo *.db-* >> .gitignore`);\n await exec(`echo .netlify >> .gitignore`);\n await exec(`echo .vercel >> .gitignore`);\n } catch (error) {\n throw new Error(`Failed to create .gitignore: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n s.stop('.gitignore added');\n\n p.outro('Project created successfully');\n console.info('');\n\n return { projectName, result };\n } catch (error) {\n s.stop();\n\n const errorMessage = error instanceof Error ? error.message : 'An unexpected error occurred';\n p.cancel(`Project creation failed: ${errorMessage}`);\n\n // Clean up: remove the created directory on failure\n if (projectPath && fsSync.existsSync(projectPath)) {\n try {\n // Change back to original directory before cleanup\n process.chdir(originalCwd);\n await fs.rm(projectPath, { recursive: true, force: true });\n } catch (cleanupError) {\n // Log but don't throw - we want to exit with the original error\n console.error(\n `Warning: Failed to clean up project directory: ${cleanupError instanceof Error ? cleanupError.message : 'Unknown error'}`,\n );\n }\n }\n\n process.exit(1);\n }\n};\n","import fsSync from 'node:fs';\nimport fs from 'node:fs/promises';\nimport * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport pkgJson from '../../../package.json';\nimport type { PosthogAnalytics } from '../../analytics/index';\nimport { getAnalytics } from '../../analytics/index';\nimport { cloneTemplate, installDependencies } from '../../utils/clone-template';\nimport { loadTemplates, selectTemplate, findTemplateByName, getDefaultProjectName } from '../../utils/template-utils';\nimport type { Template } from '../../utils/template-utils';\nimport { init } from '../init/init';\nimport type { Editor } from '../init/mcp-docs-server-install';\nimport type { Component, LLMProvider } from '../init/utils';\nimport { LLM_PROVIDERS } from '../init/utils';\nimport { getPackageManager, gitInit } from '../utils.js';\n\nimport { createMastraProject } from './utils';\n\nconst version = pkgJson.version;\n\nexport const create = async (args: {\n projectName?: string;\n components?: Component[];\n llmProvider?: LLMProvider;\n addExample?: boolean;\n llmApiKey?: string;\n createVersionTag?: string;\n timeout?: number;\n directory?: string;\n mcpServer?: Editor;\n skills?: string[];\n template?: string | boolean;\n analytics?: PosthogAnalytics;\n}) => {\n if (args.template !== undefined) {\n await createFromTemplate({\n projectName: args.projectName,\n template: args.template,\n timeout: args.timeout,\n injectedAnalytics: args.analytics,\n llmProvider: args.llmProvider,\n });\n return;\n }\n\n /**\n * We need to explicitly check for undefined instead of using the falsy (!) check because the user might have passed args that are explicitly set to false (in this case, no example code) and we need to distinguish between those and the case where the args were not passed at all.\n */\n const needsInteractive =\n args.components === undefined || args.llmProvider === undefined || args.addExample === undefined;\n\n const directory = args.directory || 'src/';\n\n const { projectName, result } = await createMastraProject({\n projectName: args?.projectName,\n createVersionTag: args?.createVersionTag,\n timeout: args?.timeout,\n llmProvider: args?.llmProvider,\n llmApiKey: args?.llmApiKey,\n skills: args?.skills,\n mcpServer: args?.mcpServer,\n needsInteractive,\n });\n\n if (needsInteractive && result) {\n // Track model provider selection from interactive prompt\n const analytics = getAnalytics();\n if (analytics && result?.llmProvider) {\n analytics.trackEvent('cli_model_provider_selected', {\n provider: result.llmProvider,\n selection_method: 'interactive',\n });\n }\n\n const interactiveComponents: Component[] = ['agents', 'tools', 'workflows', 'scorers'];\n\n if (analytics) {\n analytics.trackEvent('cli_components_selected', {\n components: interactiveComponents,\n selection_method: 'interactive',\n });\n }\n\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string | undefined,\n components: interactiveComponents,\n addExample: true,\n skills: result?.skills || args.skills,\n mcpServer: result?.mcpServer || args.mcpServer,\n versionTag: args.createVersionTag,\n });\n postCreate({ projectName });\n return;\n }\n\n const { components = [], llmProvider = 'openai', addExample = false, llmApiKey } = args;\n\n // Track model provider selection from CLI args\n const cliAnalytics = getAnalytics();\n if (cliAnalytics) {\n cliAnalytics.trackEvent('cli_model_provider_selected', {\n provider: llmProvider,\n selection_method: 'cli_args',\n });\n\n cliAnalytics.trackEvent('cli_components_selected', {\n components,\n has_agents: components.includes('agents'),\n has_tools: components.includes('tools'),\n has_workflows: components.includes('workflows'),\n has_scorers: components.includes('scorers'),\n selection_method: 'cli_args',\n });\n }\n\n await init({\n directory,\n components,\n llmProvider,\n addExample,\n llmApiKey,\n skills: args.skills,\n mcpServer: args.mcpServer,\n versionTag: args.createVersionTag,\n });\n\n postCreate({ projectName });\n};\n\nconst postCreate = ({ projectName }: { projectName: string }) => {\n const packageManager = getPackageManager();\n p.outro(`\n ${color.green('To start your project:')}\n\n ${color.cyan('cd')} ${projectName}\n ${color.cyan(`${packageManager} run dev`)}\n `);\n};\n\nfunction isGitHubUrl(url: string): boolean {\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.hostname === 'github.com' && parsedUrl.pathname.split('/').length >= 3;\n } catch {\n return false;\n }\n}\n\nasync function validateGitHubProject(githubUrl: string): Promise<{ isValid: boolean; errors: string[] }> {\n const errors: string[] = [];\n\n try {\n // Extract owner and repo from GitHub URL\n const urlParts = new URL(githubUrl).pathname.split('/').filter(Boolean);\n const owner = urlParts[0];\n const repo = urlParts[1]?.replace('.git', ''); // Remove .git if present\n\n if (!owner || !repo) {\n throw new Error('Invalid GitHub URL format');\n }\n\n // Try to fetch from main branch first, fallback to master\n const branches = ['main', 'master'];\n let packageJsonContent: string | null = null;\n let indexContent: string | null = null;\n\n for (const branch of branches) {\n try {\n // Fetch package.json\n const packageJsonUrl = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/package.json`;\n const packageJsonResponse = await fetch(packageJsonUrl);\n\n if (packageJsonResponse.ok) {\n packageJsonContent = await packageJsonResponse.text();\n\n // If package.json found, try to fetch index.ts from same branch\n const indexUrl = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/src/mastra/index.ts`;\n const indexResponse = await fetch(indexUrl);\n\n if (indexResponse.ok) {\n indexContent = await indexResponse.text();\n }\n\n break; // Found files, no need to check other branches\n }\n } catch {\n // Continue to next branch\n }\n }\n\n if (!packageJsonContent) {\n errors.push('Could not fetch package.json from repository');\n return { isValid: false, errors };\n }\n\n // Check for @mastra/core dependency\n try {\n const packageJson = JSON.parse(packageJsonContent);\n const hasMastraCore =\n packageJson.dependencies?.['@mastra/core'] ||\n packageJson.devDependencies?.['@mastra/core'] ||\n packageJson.peerDependencies?.['@mastra/core'];\n\n if (!hasMastraCore) {\n errors.push('Missing @mastra/core dependency in package.json');\n }\n } catch {\n errors.push('Invalid package.json format');\n }\n\n // Check for src/mastra/index.ts\n if (!indexContent) {\n errors.push('Missing src/mastra/index.ts file');\n } else {\n // Check if it exports a Mastra instance\n const hasMastraExport =\n indexContent.includes('export') && (indexContent.includes('new Mastra') || indexContent.includes('Mastra('));\n\n if (!hasMastraExport) {\n errors.push('src/mastra/index.ts does not export a Mastra instance');\n }\n }\n\n return { isValid: errors.length === 0, errors };\n } catch (error) {\n errors.push(`Failed to validate GitHub repository: ${error instanceof Error ? error.message : 'Unknown error'}`);\n return { isValid: false, errors };\n }\n}\n\nasync function createFromGitHubUrl(url: string): Promise<Template> {\n // Extract owner and repo from GitHub URL\n const urlParts = new URL(url).pathname.split('/').filter(Boolean);\n const owner = urlParts[0] || 'unknown';\n const repo = urlParts[1] || 'unknown';\n\n // Create a temporary Template object for GitHub URLs\n return {\n githubUrl: url,\n title: `${owner}/${repo}`,\n slug: repo,\n agents: [],\n mcp: [],\n tools: [],\n networks: [],\n workflows: [],\n };\n}\n\nasync function createFromTemplate(args: {\n projectName?: string;\n template?: string | boolean;\n timeout?: number;\n injectedAnalytics?: PosthogAnalytics;\n llmProvider?: LLMProvider;\n}) {\n let selectedTemplate: Template | undefined;\n\n if (args.template === true) {\n // Interactive template selection\n const templates = await loadTemplates();\n const selected = await selectTemplate(templates);\n if (!selected) {\n p.log.info('No template selected. Exiting.');\n return;\n }\n selectedTemplate = selected;\n } else if (args.template && typeof args.template === 'string') {\n // Check if it's a GitHub URL\n if (isGitHubUrl(args.template)) {\n // Validate GitHub project before cloning\n const spinner = p.spinner();\n spinner.start('Validating GitHub repository...');\n\n const validation = await validateGitHubProject(args.template);\n\n if (!validation.isValid) {\n spinner.stop('Validation failed');\n p.log.error('This does not appear to be a valid Mastra project:');\n validation.errors.forEach(error => p.log.error(` - ${error}`));\n throw new Error('Invalid Mastra project');\n }\n\n spinner.stop('Valid Mastra project ✓');\n selectedTemplate = await createFromGitHubUrl(args.template);\n } else {\n // Template name provided, find it from the list\n const templates = await loadTemplates();\n const found = findTemplateByName(templates, args.template);\n if (!found) {\n p.log.error(`Template \"${args.template}\" not found. Available templates:`);\n templates.forEach((t: Template) => p.log.info(` - ${t.title} (use: ${t.slug.replace('template-', '')})`));\n throw new Error(`Template \"${args.template}\" not found`);\n }\n selectedTemplate = found;\n }\n }\n\n if (!selectedTemplate) {\n throw new Error('No template selected');\n }\n\n // Get project name\n let projectName = args.projectName;\n if (!projectName) {\n const defaultName = getDefaultProjectName(selectedTemplate);\n const response = await p.text({\n message: 'What is your project name?',\n defaultValue: defaultName,\n placeholder: defaultName,\n });\n\n if (p.isCancel(response)) {\n p.log.info('Project creation cancelled.');\n return;\n }\n\n projectName = response as string;\n }\n\n // Get LLM provider if not specified\n let llmProvider = args.llmProvider;\n if (!llmProvider) {\n const providerResponse = await p.select({\n message: 'Select a default provider:',\n options: LLM_PROVIDERS,\n });\n\n if (p.isCancel(providerResponse)) {\n p.log.info('Project creation cancelled.');\n return;\n }\n\n llmProvider = providerResponse as LLMProvider;\n }\n\n // Handle git initialization for templates\n let initGit = false;\n const gitConfirmResult = await p.confirm({\n message: 'Initialize a new git repository?',\n initialValue: true,\n });\n\n if (!p.isCancel(gitConfirmResult)) {\n initGit = gitConfirmResult;\n }\n\n let projectPath: string | null = null;\n\n try {\n // Track template usage\n const analytics = args.injectedAnalytics || getAnalytics();\n if (analytics) {\n analytics.trackEvent('cli_template_used', {\n template_slug: selectedTemplate.slug,\n template_title: selectedTemplate.title,\n });\n\n // Track model provider selection\n if (llmProvider) {\n analytics.trackEvent('cli_model_provider_selected', {\n provider: llmProvider,\n selection_method: args.llmProvider ? 'cli_args' : 'interactive',\n });\n }\n }\n\n const isBeta = version?.includes('beta') ?? false;\n const isMastraTemplate = selectedTemplate.githubUrl.includes('github.com/mastra-ai/');\n const branch = isBeta && isMastraTemplate ? 'beta' : undefined;\n\n // Clone the template\n projectPath = await cloneTemplate({\n template: selectedTemplate,\n projectName,\n branch,\n llmProvider,\n });\n\n // Install dependencies\n await installDependencies(projectPath);\n\n if (initGit) {\n const s = p.spinner();\n try {\n s.start('Initializing git repository');\n\n await gitInit({ cwd: projectPath });\n\n s.stop('Git repository initialized');\n } catch {\n s.stop();\n }\n }\n\n p.note(`\n ${color.green('Mastra template installed!')}\n\n Add the necessary environment\n variables in your ${color.cyan('.env')} file\n `);\n\n // Show completion message\n postCreate({ projectName });\n } catch (error) {\n // Clean up: remove the created directory on failure\n if (projectPath) {\n try {\n if (fsSync.existsSync(projectPath)) {\n await fs.rm(projectPath, { recursive: true, force: true });\n }\n } catch (cleanupError) {\n // Log but don't throw - we want to exit with the original error\n console.error(\n `Warning: Failed to clean up project directory: ${cleanupError instanceof Error ? cleanupError.message : 'Unknown error'}`,\n );\n }\n }\n p.log.error(`Failed to create project from template: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- export { create } from '../../chunk-6OVC46IA.js';
1
+ export { create } from '../../chunk-7CDTV2JD.js';
2
2
  import '../../chunk-SDL4FTWG.js';
3
3
  //# sourceMappingURL=create.js.map
4
4
  //# sourceMappingURL=create.js.map
@@ -3,7 +3,7 @@ name: mastra
3
3
  description: Documentation for mastra. Use when working with mastra APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "mastra"
6
- version: "1.8.0"
6
+ version: "1.8.1"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "1.8.0",
2
+ "version": "1.8.1",
3
3
  "package": "mastra",
4
4
  "exports": {
5
5
  "create": {
6
6
  "types": "dist/index.d.ts",
7
- "implementation": "dist/chunk-6OVC46IA.js"
7
+ "implementation": "dist/chunk-7CDTV2JD.js"
8
8
  },
9
9
  "PosthogAnalytics": {
10
10
  "types": "dist/index.d.ts",
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #! /usr/bin/env node
2
- import { package_default, create, init, logger, createLogger } from './chunk-6OVC46IA.js';
3
- export { create } from './chunk-6OVC46IA.js';
2
+ import { package_default, create, init, logger, createLogger } from './chunk-7CDTV2JD.js';
3
+ export { create } from './chunk-7CDTV2JD.js';
4
4
  import { PosthogAnalytics, setAnalytics, COMPONENTS, parseComponents, LLMProvider, parseLlmProvider, parseMcp, parseSkills, checkForPkgJson, getVersionTag, isGitInitialized, checkAndInstallCoreDeps, interactivePrompt, FileService, shouldSkipDotenvLoading, DepsService, getAnalytics } from './chunk-SDL4FTWG.js';
5
5
  export { PosthogAnalytics } from './chunk-SDL4FTWG.js';
6
6
  import { fetchOrgs } from './chunk-IWBPL7VB.js';