@kya-os/create-mcpi-app 0.6.4-canary.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.
- package/.eslintrc.cjs +10 -0
- package/.turbo/turbo-build.log +25 -0
- package/README.md +290 -0
- package/dist/bundles/blank.js +98817 -0
- package/dist/bundles/ecommerce.js +98891 -0
- package/dist/bundles/hardware-world.js +99289 -0
- package/dist/bundles/manifest.json +23 -0
- package/dist/cli-runner.d.ts +2 -0
- package/dist/cli-runner.d.ts.map +1 -0
- package/dist/cli-runner.js +407 -0
- package/dist/cli-runner.js.map +1 -0
- package/dist/effects/index.d.ts +14 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/index.js +51 -0
- package/dist/effects/index.js.map +1 -0
- package/dist/helpers/apply-identity-preset.d.ts +14 -0
- package/dist/helpers/apply-identity-preset.d.ts.map +1 -0
- package/dist/helpers/apply-identity-preset.js +169 -0
- package/dist/helpers/apply-identity-preset.js.map +1 -0
- package/dist/helpers/config-builder.d.ts +53 -0
- package/dist/helpers/config-builder.d.ts.map +1 -0
- package/dist/helpers/config-builder.js +46 -0
- package/dist/helpers/config-builder.js.map +1 -0
- package/dist/helpers/copy-template.d.ts +2 -0
- package/dist/helpers/copy-template.d.ts.map +1 -0
- package/dist/helpers/copy-template.js +11 -0
- package/dist/helpers/copy-template.js.map +1 -0
- package/dist/helpers/create.d.ts +31 -0
- package/dist/helpers/create.d.ts.map +1 -0
- package/dist/helpers/create.js +136 -0
- package/dist/helpers/create.js.map +1 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.d.ts +25 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.d.ts.map +1 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.js +558 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.js.map +1 -0
- package/dist/helpers/fetch-cloudflare-template.d.ts +11 -0
- package/dist/helpers/fetch-cloudflare-template.d.ts.map +1 -0
- package/dist/helpers/fetch-cloudflare-template.js +338 -0
- package/dist/helpers/fetch-cloudflare-template.js.map +1 -0
- package/dist/helpers/fetch-mcpi-template.d.ts +13 -0
- package/dist/helpers/fetch-mcpi-template.d.ts.map +1 -0
- package/dist/helpers/fetch-mcpi-template.js +237 -0
- package/dist/helpers/fetch-mcpi-template.js.map +1 -0
- package/dist/helpers/fetch-xmcp-template.d.ts +13 -0
- package/dist/helpers/fetch-xmcp-template.d.ts.map +1 -0
- package/dist/helpers/fetch-xmcp-template.js +127 -0
- package/dist/helpers/fetch-xmcp-template.js.map +1 -0
- package/dist/helpers/generate-cloudflare-files.d.ts +89 -0
- package/dist/helpers/generate-cloudflare-files.d.ts.map +1 -0
- package/dist/helpers/generate-cloudflare-files.js +1541 -0
- package/dist/helpers/generate-cloudflare-files.js.map +1 -0
- package/dist/helpers/generate-config.d.ts +2 -0
- package/dist/helpers/generate-config.d.ts.map +1 -0
- package/dist/helpers/generate-config.js +105 -0
- package/dist/helpers/generate-config.js.map +1 -0
- package/dist/helpers/generate-identity.d.ts +38 -0
- package/dist/helpers/generate-identity.d.ts.map +1 -0
- package/dist/helpers/generate-identity.js +123 -0
- package/dist/helpers/generate-identity.js.map +1 -0
- package/dist/helpers/get-package-versions.d.ts +37 -0
- package/dist/helpers/get-package-versions.d.ts.map +1 -0
- package/dist/helpers/get-package-versions.js +92 -0
- package/dist/helpers/get-package-versions.js.map +1 -0
- package/dist/helpers/identity-manager.d.ts +23 -0
- package/dist/helpers/identity-manager.d.ts.map +1 -0
- package/dist/helpers/identity-manager.js +144 -0
- package/dist/helpers/identity-manager.js.map +1 -0
- package/dist/helpers/index.d.ts +14 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +18 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/install.d.ts +3 -0
- package/dist/helpers/install.d.ts.map +1 -0
- package/dist/helpers/install.js +57 -0
- package/dist/helpers/install.js.map +1 -0
- package/dist/helpers/kta-registration.d.ts +58 -0
- package/dist/helpers/kta-registration.d.ts.map +1 -0
- package/dist/helpers/kta-registration.js +77 -0
- package/dist/helpers/kta-registration.js.map +1 -0
- package/dist/helpers/rename.d.ts +2 -0
- package/dist/helpers/rename.d.ts.map +1 -0
- package/dist/helpers/rename.js +15 -0
- package/dist/helpers/rename.js.map +1 -0
- package/dist/helpers/validate-project-structure.d.ts +14 -0
- package/dist/helpers/validate-project-structure.d.ts.map +1 -0
- package/dist/helpers/validate-project-structure.js +102 -0
- package/dist/helpers/validate-project-structure.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/check-node.d.ts +2 -0
- package/dist/utils/check-node.d.ts.map +1 -0
- package/dist/utils/check-node.js +12 -0
- package/dist/utils/check-node.js.map +1 -0
- package/dist/utils/fetch-remote-config.d.ts +74 -0
- package/dist/utils/fetch-remote-config.d.ts.map +1 -0
- package/dist/utils/fetch-remote-config.js +109 -0
- package/dist/utils/fetch-remote-config.js.map +1 -0
- package/dist/utils/is-folder-empty.d.ts +2 -0
- package/dist/utils/is-folder-empty.d.ts.map +1 -0
- package/dist/utils/is-folder-empty.js +55 -0
- package/dist/utils/is-folder-empty.js.map +1 -0
- package/dist/utils/validate-project-name.d.ts +15 -0
- package/dist/utils/validate-project-name.d.ts.map +1 -0
- package/dist/utils/validate-project-name.js +106 -0
- package/dist/utils/validate-project-name.js.map +1 -0
- package/index.js +4 -0
- package/package.json +73 -0
- package/vitest.integration.config.ts +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-cloudflare-files.js","sourceRoot":"","sources":["../../src/helpers/generate-cloudflare-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAkD/D;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,SAAkB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAA6B;IAE7B,MAAM,EACJ,WAAW,EACX,QAAQ,GAAG,OAAO,EAClB,oBAAoB,EACpB,iBAAiB,GAAG,wBAAwB,EAC5C,iBAAiB,EACjB,YAAY,GAAG,KAAK,EACpB,SAAS,GACV,GAAG,OAAO,CAAC;IAEZ,kFAAkF;IAClF,MAAM,WAAW,GAAG,WAAW,CAAC;IAEhC,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE5C,kEAAkE;IAClE,sEAAsE;IACtE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,0BAA0B,CAAC,CAAC,OAAO,CACxE,QAAQ,EACR,EAAE,CACH,CAAC;IAEF,oBAAoB;IACpB,IAAI,QAA2B,CAAC;IAChC,IAAI,YAAY,EAAE,CAAC;QACjB,QAAQ,GAAG;YACT,GAAG,EAAE,2BAA2B;YAChC,GAAG,EAAE,iCAAiC;YACtC,UAAU,EAAE,kBAAkB;YAC9B,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,aAAa;SACpB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED,mCAAmC;IACnC,MAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErE,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,IAAI,CAAC,SAAS,CACrB;YACE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,iBAAiB;gBACzB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,gBAAgB;aAC/B;YACD,YAAY,EAAE;gBACZ,0BAA0B,EAAE,qBAAqB;gBACjD,2BAA2B,EAAE,QAAQ;gBACrC,0EAA0E;gBAC1E,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,QAAQ;aACf;YACD,eAAe,EAAE;gBACf,iCAAiC,EAAE,SAAS;gBAC5C,2BAA2B,EAAE,eAAe;gBAC5C,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,SAAS;aACpB;SACF,EACD,IAAI,EACJ,CAAC,CACF;QACD,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,kEAAkE;IAClE,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,oBAAoB,CAAC;YAC5B,WAAW;YACX,WAAW;YACX,QAAQ,EAAE,QAAQ,CAAC,GAAG;YACtB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,oBAAoB;YACpB,iBAAiB;YACjB,QAAQ;YACR,SAAS;SACV,CAAC;QACF,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,wEAAwE;IACxE,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE;;;;;;;;;;;;;;CAcZ;QACG,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;;;;;;CAMZ;QACG,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,mBAAmB;IACnB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CACrB;YACE,eAAe,EAAE;gBACf,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;gBAChB,gBAAgB,EAAE,SAAS;gBAC3B,KAAK,EAAE,CAAC,2BAA2B,EAAE,gBAAgB,CAAC;gBACtD,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,IAAI;aACb;YACD,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,CAAC,cAAc,CAAC;SAC1B,EACD,IAAI,EACJ,CAAC,CACF;QACD,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC;QACrC,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC;QAClD,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,gCAAgC;IAChC,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,uBAAuB,CAAC,QAAQ,CAAC;QAC1C,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,0CAA0C;IAC1C,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC;QACzC,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,kCAAkC;IAClC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,GAAG,0BAA0B,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,8BAA8B;QACpC,OAAO,EAAE,sBAAsB,EAAE;QACjC,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,oBAAoB,CAAC;QAC1D,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,mEAAmE;IACnE,MAAM,OAAO,GAA2B;QACtC,wBAAwB,EAAE,QAAQ,CAAC,UAAU;QAC7C,uBAAuB,EAAE,qBAAqB;KAC/C,CAAC;IAEF,0CAA0C;IAC1C,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;IAClD,CAAC;IAED,OAAO;QACL,KAAK;QACL,QAAQ,EAAE;YACR,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC;QACD,OAAO;KACR,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,SAAS,oBAAoB,CAAC,IAS7B;IACC,MAAM,EACJ,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,QAAQ,EACR,SAAS,GACV,GAAG,IAAI,CAAC;IAET,0CAA0C;IAC1C,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAClC,YAAY,GAAG;;;CAGlB,CAAC;IACA,CAAC;IAED,OAAO;UACC,WAAW;;;;;;;;gBAQL,WAAW;;;;yBAIF,WAAW;;;;;;;;;;;aAWvB,kBAAkB;;;;4BAIH,QAAQ;;;6BAGP,SAAS;;;;;;;;;;;;;yBAab,iBAAiB;EACxC,oBAAoB,CAAC,CAAC,CAAC,6BAA6B,oBAAoB,GAAG,CAAC,CAAC,CAAC,8CAA8C;;;;;;;EAO5H,SAAS,CAAC,CAAC,CAAC,qBAAqB,SAAS,GAAG,CAAC,CAAC,CAAC,+BAA+B,WAAW,8BAA8B;EACxH,YAAY;;;;;;CAMb,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB;IAC1C,OAAO;WACE,WAAW;;;;gBAIN,WAAW;;;;;WAKhB,WAAW;CACrB,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CACtB,WAAmB,EACnB,WAAmB;IAEnB,OAAO;;;;;;;eAOM,WAAW;;6DAEmC,WAAW;;;;;;;;;;;;;;;;;;;;;;;CAuBvE,CAAC;AACF,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,2DAA2D;IAC3D,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAClC,OAAO,kCAAkC,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;IAE5B,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;;EAEP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkCd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;;CAG1B,CAAC;AACF,CAAC;AAED,SAAS,kCAAkC;IACzC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsIR,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,OAAO;;;;;;;;;;;;;;;;;qDAiB4C,WAAW;;;;;;CAM/D,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;QACL;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;CAoBd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bd;YACK,QAAQ,EAAE,OAAO;SAClB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;QACL,oDAAoD;QACpD;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Hd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD,6BAA6B;QAC7B;YACE,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD,2BAA2B;QAC3B;YACE,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Ed;YACK,QAAQ,EAAE,OAAO;SAClB;QACD,0BAA0B;QAC1B;YACE,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD,sDAAsD;QACtD;YACE,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD,kDAAkD;QAClD;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Fd;YACK,QAAQ,EAAE,OAAO;SAClB;QACD,qDAAqD;QACrD;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Gd;YACK,QAAQ,EAAE,OAAO;SAClB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,6EAA6E;IAC7E,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CR,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB,EAAE,SAAkB;IAC7D,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,4CAA4C,SAAS,EAAE;QACzD,CAAC,CAAC,0CAA0C,CAAC;IAE/C,OAAO,KAAK,WAAW;;;;;;;;gDAQuB,WAAW;QACnD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;2BA0BQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CtC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-config.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-config.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,UAAQ,GACnB,IAAI,CAkDN"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
export function generateConfig(projectPath, transports, skipIdentity = false) {
|
|
4
|
+
const hasHttp = transports.includes("http");
|
|
5
|
+
const hasStdio = transports.includes("stdio");
|
|
6
|
+
let configContent = `import type { XmcpConfig } from "@kya-os/mcp-i";
|
|
7
|
+
|
|
8
|
+
const config: XmcpConfig = {
|
|
9
|
+
// Point to the tools directory
|
|
10
|
+
paths: {
|
|
11
|
+
tools: "./src/tools",
|
|
12
|
+
},`;
|
|
13
|
+
// Only add identity config if not skipped
|
|
14
|
+
if (!skipIdentity) {
|
|
15
|
+
configContent += `
|
|
16
|
+
|
|
17
|
+
// Enable MCP-I identity features
|
|
18
|
+
identity: {
|
|
19
|
+
enabled: true,
|
|
20
|
+
environment: "development",
|
|
21
|
+
},`;
|
|
22
|
+
}
|
|
23
|
+
if (hasHttp) {
|
|
24
|
+
configContent += `
|
|
25
|
+
|
|
26
|
+
// Enable HTTP transport
|
|
27
|
+
http: true,`;
|
|
28
|
+
}
|
|
29
|
+
if (hasStdio) {
|
|
30
|
+
configContent += `
|
|
31
|
+
|
|
32
|
+
// Enable STDIO transport
|
|
33
|
+
stdio: true,`;
|
|
34
|
+
}
|
|
35
|
+
configContent += `
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default config;
|
|
39
|
+
`;
|
|
40
|
+
const configPath = path.join(projectPath, "xmcp.config.ts");
|
|
41
|
+
// Ensure directory exists before writing
|
|
42
|
+
fs.ensureDirSync(projectPath);
|
|
43
|
+
fs.writeFileSync(configPath, configContent);
|
|
44
|
+
// Generate runtime config for proof submission and delegation
|
|
45
|
+
generateRuntimeConfig(projectPath, skipIdentity);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Generate runtime config file for ProofBatchQueue and delegation
|
|
49
|
+
*/
|
|
50
|
+
function generateRuntimeConfig(projectPath, skipIdentity) {
|
|
51
|
+
const runtimeConfigContent = `import type { NodeRuntimeConfig } from "@kya-os/mcp-i";
|
|
52
|
+
import { buildBaseConfig } from "@kya-os/create-mcpi-app/config-builder";
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Runtime configuration for MCP-I server
|
|
56
|
+
*
|
|
57
|
+
* This file configures runtime features like proof submission to AgentShield,
|
|
58
|
+
* delegation verification, and audit logging.
|
|
59
|
+
*
|
|
60
|
+
* Note: Environment variables are automatically injected by the MCP-I compiler
|
|
61
|
+
* from wrangler.toml (Cloudflare) or .env (Node.js). Configure them there:
|
|
62
|
+
* - AGENTSHIELD_API_URL: AgentShield API base URL
|
|
63
|
+
* - AGENTSHIELD_API_KEY: Your AgentShield API key
|
|
64
|
+
* - MCPI_ENV: "development" or "production"
|
|
65
|
+
*
|
|
66
|
+
* This config uses the unified MCPIConfig architecture, ensuring the same
|
|
67
|
+
* base configuration shape across all platforms (Cloudflare, Node.js, Vercel).
|
|
68
|
+
*/
|
|
69
|
+
export function getRuntimeConfig(): NodeRuntimeConfig {
|
|
70
|
+
// Access environment variables (works in both Node.js and Cloudflare Workers)
|
|
71
|
+
// The compiler injects these from wrangler.toml or .env
|
|
72
|
+
const env = process.env;
|
|
73
|
+
|
|
74
|
+
// Build base config that works across all platforms
|
|
75
|
+
const baseConfig = buildBaseConfig(env);
|
|
76
|
+
|
|
77
|
+
// Extend with Node.js-specific properties
|
|
78
|
+
return {
|
|
79
|
+
...baseConfig,
|
|
80
|
+
// Node.js-specific server configuration
|
|
81
|
+
server: {
|
|
82
|
+
port: parseInt(env.PORT || "3000", 10),
|
|
83
|
+
host: env.HOST || "0.0.0.0",
|
|
84
|
+
cors: true,
|
|
85
|
+
timeout: 30000
|
|
86
|
+
},
|
|
87
|
+
// Node.js-specific storage configuration
|
|
88
|
+
storage: {
|
|
89
|
+
type: "memory" as const
|
|
90
|
+
},
|
|
91
|
+
// Node.js-specific environment configuration
|
|
92
|
+
nodeEnv: {
|
|
93
|
+
environment: (env.NODE_ENV as "development" | "production" | "test") || "development",
|
|
94
|
+
debug: env.MCPI_ENV === "development"
|
|
95
|
+
}
|
|
96
|
+
} as NodeRuntimeConfig;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export default getRuntimeConfig();
|
|
100
|
+
`;
|
|
101
|
+
const runtimeConfigPath = path.join(projectPath, "src", "mcpi-runtime-config.ts");
|
|
102
|
+
fs.ensureDirSync(path.join(projectPath, "src"));
|
|
103
|
+
fs.writeFileSync(runtimeConfigPath, runtimeConfigContent);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=generate-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-config.js","sourceRoot":"","sources":["../../src/helpers/generate-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,UAAoB,EACpB,YAAY,GAAG,KAAK;IAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,aAAa,GAAG;;;;;;KAMjB,CAAC;IAEJ,0CAA0C;IAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,aAAa,IAAI;;;;;;KAMhB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,IAAI;;;cAGP,CAAC;IACb,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,aAAa,IAAI;;;eAGN,CAAC;IACd,CAAC;IAED,aAAa,IAAI;;;;CAIlB,CAAC;IAEA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC5D,yCAAyC;IACzC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9B,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE5C,8DAA8D;IAC9D,qBAAqB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,WAAmB,EAAE,YAAqB;IACvE,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiD9B,CAAC;IAEA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC;IAClF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Generation for MCP-I Applications
|
|
3
|
+
*
|
|
4
|
+
* Generates Ed25519 keypairs and DID:key identifiers
|
|
5
|
+
* for persistent agent identity across deployments.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Generated identity structure
|
|
9
|
+
*/
|
|
10
|
+
export interface GeneratedIdentity {
|
|
11
|
+
did: string;
|
|
12
|
+
kid: string;
|
|
13
|
+
privateKey: string;
|
|
14
|
+
publicKey: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
type: 'development' | 'production';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generate a new Ed25519 identity with DID:key
|
|
20
|
+
*
|
|
21
|
+
* @returns Promise<GeneratedIdentity> - Complete identity with keys and DID
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateIdentity(): Promise<GeneratedIdentity>;
|
|
24
|
+
/**
|
|
25
|
+
* Validate that a string is a valid DID:key identifier
|
|
26
|
+
*
|
|
27
|
+
* @param did - String to validate
|
|
28
|
+
* @returns boolean - True if valid DID:key format
|
|
29
|
+
*/
|
|
30
|
+
export declare function isValidDIDKey(did: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Extract the base58-encoded multicodec key from a DID:key
|
|
33
|
+
*
|
|
34
|
+
* @param did - DID:key identifier
|
|
35
|
+
* @returns string - Base58-encoded multicodec key (without 'z' prefix)
|
|
36
|
+
*/
|
|
37
|
+
export declare function extractMultibaseFromDID(did: string): string | null;
|
|
38
|
+
//# sourceMappingURL=generate-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-identity.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAmCnE;AAmED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Generation for MCP-I Applications
|
|
3
|
+
*
|
|
4
|
+
* Generates Ed25519 keypairs and DID:key identifiers
|
|
5
|
+
* for persistent agent identity across deployments.
|
|
6
|
+
*/
|
|
7
|
+
import { webcrypto } from 'crypto';
|
|
8
|
+
import baseX from 'base-x';
|
|
9
|
+
/**
|
|
10
|
+
* Generate a new Ed25519 identity with DID:key
|
|
11
|
+
*
|
|
12
|
+
* @returns Promise<GeneratedIdentity> - Complete identity with keys and DID
|
|
13
|
+
*/
|
|
14
|
+
export async function generateIdentity() {
|
|
15
|
+
// 1. Generate Ed25519 keypair using Web Crypto API
|
|
16
|
+
const keyPair = (await webcrypto.subtle.generateKey({
|
|
17
|
+
name: 'Ed25519',
|
|
18
|
+
}, true, // extractable
|
|
19
|
+
['sign', 'verify']));
|
|
20
|
+
// 2. Export keys in PKCS#8 (private) and SPKI (public) formats
|
|
21
|
+
const privateKeyPKCS8 = await webcrypto.subtle.exportKey('pkcs8', keyPair.privateKey);
|
|
22
|
+
const publicKeySPKI = await webcrypto.subtle.exportKey('spki', keyPair.publicKey);
|
|
23
|
+
// 3. Extract RAW keys from PKCS#8/SPKI wrappers
|
|
24
|
+
// This matches WebCryptoProvider.generateKeyPair() behavior
|
|
25
|
+
const privateKeyRaw = extractEd25519PrivateKey(new Uint8Array(privateKeyPKCS8));
|
|
26
|
+
const publicKeyRaw = extractEd25519PublicKey(Buffer.from(publicKeySPKI).toString('base64'));
|
|
27
|
+
// 4. Convert to base64 strings for storage
|
|
28
|
+
const privateKey = Buffer.from(privateKeyRaw).toString('base64');
|
|
29
|
+
const publicKey = Buffer.from(publicKeyRaw).toString('base64');
|
|
30
|
+
// 5. Generate DID:key from raw public key bytes
|
|
31
|
+
const did = generateDIDFromPublicKeyBytes(publicKeyRaw);
|
|
32
|
+
// 5. Return complete identity
|
|
33
|
+
return {
|
|
34
|
+
did,
|
|
35
|
+
kid: `${did}#key-1`,
|
|
36
|
+
privateKey,
|
|
37
|
+
publicKey,
|
|
38
|
+
createdAt: new Date().toISOString(),
|
|
39
|
+
type: 'development'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Generate a DID:key identifier from raw Ed25519 public key bytes
|
|
44
|
+
*
|
|
45
|
+
* Following the DID:key specification:
|
|
46
|
+
* https://w3c-ccg.github.io/did-method-key/
|
|
47
|
+
*
|
|
48
|
+
* Format: did:key:z<multibase-base58btc(<multicodec-ed25519-pub><publicKey>)>
|
|
49
|
+
*
|
|
50
|
+
* @param publicKeyBytes - Raw 32-byte Ed25519 public key
|
|
51
|
+
* @returns DID:key string (e.g., "did:key:z6Mk...")
|
|
52
|
+
*/
|
|
53
|
+
function generateDIDFromPublicKeyBytes(publicKeyBytes) {
|
|
54
|
+
// 1. Ed25519 multicodec prefix (0xed 0x01)
|
|
55
|
+
const multicodecPrefix = new Uint8Array([0xed, 0x01]);
|
|
56
|
+
// 2. Combine multicodec prefix + public key
|
|
57
|
+
const multicodecKey = new Uint8Array(multicodecPrefix.length + publicKeyBytes.length);
|
|
58
|
+
multicodecKey.set(multicodecPrefix);
|
|
59
|
+
multicodecKey.set(publicKeyBytes, multicodecPrefix.length);
|
|
60
|
+
// 3. Encode with base58-btc (Bitcoin alphabet)
|
|
61
|
+
const base58 = baseX('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');
|
|
62
|
+
const base58Encoded = base58.encode(multicodecKey);
|
|
63
|
+
// 4. Add multibase prefix 'z' for base58-btc
|
|
64
|
+
const multibaseEncoded = 'z' + base58Encoded;
|
|
65
|
+
return `did:key:${multibaseEncoded}`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Extract the raw 32-byte Ed25519 private key from PKCS#8 format
|
|
69
|
+
*
|
|
70
|
+
* PKCS#8 format for Ed25519 (48 bytes total):
|
|
71
|
+
* - 16-byte header (algorithm identifier, version, etc.)
|
|
72
|
+
* - 32-byte raw Ed25519 private key
|
|
73
|
+
*
|
|
74
|
+
* @param pkcs8 - PKCS#8 private key as Uint8Array
|
|
75
|
+
* @returns Uint8Array - Raw 32-byte Ed25519 private key
|
|
76
|
+
*/
|
|
77
|
+
function extractEd25519PrivateKey(pkcs8) {
|
|
78
|
+
// Extract bytes 16-48 (the raw 32-byte key)
|
|
79
|
+
// This matches WebCryptoProvider.extractRawPrivateKey()
|
|
80
|
+
return pkcs8.slice(16, 48);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extract the raw 32-byte Ed25519 public key from SPKI format
|
|
84
|
+
*
|
|
85
|
+
* SPKI (SubjectPublicKeyInfo) format:
|
|
86
|
+
* - 12-byte header (algorithm identifier)
|
|
87
|
+
* - 32-byte raw Ed25519 public key
|
|
88
|
+
*
|
|
89
|
+
* @param publicKey - Base64-encoded SPKI public key
|
|
90
|
+
* @returns Uint8Array - Raw 32-byte Ed25519 public key
|
|
91
|
+
*/
|
|
92
|
+
function extractEd25519PublicKey(publicKey) {
|
|
93
|
+
const spkiBytes = Buffer.from(publicKey, 'base64');
|
|
94
|
+
// SPKI format: 12-byte header + 32-byte public key
|
|
95
|
+
// We extract the last 32 bytes
|
|
96
|
+
// This matches WebCryptoProvider.extractRawPublicKey()
|
|
97
|
+
return spkiBytes.slice(-32);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Validate that a string is a valid DID:key identifier
|
|
101
|
+
*
|
|
102
|
+
* @param did - String to validate
|
|
103
|
+
* @returns boolean - True if valid DID:key format
|
|
104
|
+
*/
|
|
105
|
+
export function isValidDIDKey(did) {
|
|
106
|
+
// DID:key format: did:key:z<base58-encoded-multicodec-key>
|
|
107
|
+
const didKeyRegex = /^did:key:z[1-9A-HJ-NP-Za-km-z]{47,}$/;
|
|
108
|
+
return didKeyRegex.test(did);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Extract the base58-encoded multicodec key from a DID:key
|
|
112
|
+
*
|
|
113
|
+
* @param did - DID:key identifier
|
|
114
|
+
* @returns string - Base58-encoded multicodec key (without 'z' prefix)
|
|
115
|
+
*/
|
|
116
|
+
export function extractMultibaseFromDID(did) {
|
|
117
|
+
if (!isValidDIDKey(did)) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
// Remove "did:key:z" prefix
|
|
121
|
+
return did.slice('did:key:z'.length);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=generate-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-identity.js","sourceRoot":"","sources":["../../src/helpers/generate-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Version Helper
|
|
3
|
+
*
|
|
4
|
+
* Reads dependency versions from the scaffolder's own package.json
|
|
5
|
+
* to ensure scaffolded projects use consistent, tested versions.
|
|
6
|
+
*
|
|
7
|
+
* This is the SINGLE SOURCE OF TRUTH for @kya-os/* package versions
|
|
8
|
+
* used in scaffolded templates.
|
|
9
|
+
*
|
|
10
|
+
* Benefits:
|
|
11
|
+
* - No more hardcoded canary versions in template files
|
|
12
|
+
* - Scaffolder's package.json already validated before publish
|
|
13
|
+
* - Consistent versions across all template types (Node.js, Cloudflare, etc.)
|
|
14
|
+
*/
|
|
15
|
+
interface PackageVersions {
|
|
16
|
+
"@kya-os/mcp-i": string;
|
|
17
|
+
"@kya-os/cli": string;
|
|
18
|
+
"@kya-os/mcp-i-cloudflare": string;
|
|
19
|
+
"@kya-os/contracts": string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get package versions from the scaffolder's package.json
|
|
23
|
+
*
|
|
24
|
+
* This function reads the create-mcpi-app package.json and extracts
|
|
25
|
+
* the @kya-os/* dependency versions, normalizing them for safe use
|
|
26
|
+
* in scaffolded templates.
|
|
27
|
+
*
|
|
28
|
+
* @returns Object with normalized package versions
|
|
29
|
+
* @throws Error if package.json cannot be read
|
|
30
|
+
*/
|
|
31
|
+
export declare function getPackageVersions(): Promise<PackageVersions>;
|
|
32
|
+
/**
|
|
33
|
+
* Clear the cached versions (useful for testing)
|
|
34
|
+
*/
|
|
35
|
+
export declare function clearVersionCache(): void;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=get-package-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-package-versions.d.ts","sourceRoot":"","sources":["../../src/helpers/get-package-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,UAAU,eAAe;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AA8BD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAwCnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Version Helper
|
|
3
|
+
*
|
|
4
|
+
* Reads dependency versions from the scaffolder's own package.json
|
|
5
|
+
* to ensure scaffolded projects use consistent, tested versions.
|
|
6
|
+
*
|
|
7
|
+
* This is the SINGLE SOURCE OF TRUTH for @kya-os/* package versions
|
|
8
|
+
* used in scaffolded templates.
|
|
9
|
+
*
|
|
10
|
+
* Benefits:
|
|
11
|
+
* - No more hardcoded canary versions in template files
|
|
12
|
+
* - Scaffolder's package.json already validated before publish
|
|
13
|
+
* - Consistent versions across all template types (Node.js, Cloudflare, etc.)
|
|
14
|
+
*/
|
|
15
|
+
import fs from "fs-extra";
|
|
16
|
+
import path from "path";
|
|
17
|
+
import { fileURLToPath } from "url";
|
|
18
|
+
// Get the directory of this module
|
|
19
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
20
|
+
const __dirname = path.dirname(__filename);
|
|
21
|
+
// Cache the versions to avoid repeated file reads
|
|
22
|
+
let cachedVersions = null;
|
|
23
|
+
/**
|
|
24
|
+
* Normalize a version string for use in scaffolded templates.
|
|
25
|
+
*
|
|
26
|
+
* Rules:
|
|
27
|
+
* - Stable versions (e.g., "^1.6.0"): Keep caret for minor updates
|
|
28
|
+
* - Canary versions (e.g., "^1.5.9-canary.29"): Remove caret to pin exact version
|
|
29
|
+
* (npm resolves ^canary to stable, which breaks canary-only features)
|
|
30
|
+
*
|
|
31
|
+
* @param version - The version string from package.json
|
|
32
|
+
* @returns Normalized version string safe for scaffolding
|
|
33
|
+
*/
|
|
34
|
+
function normalizeVersion(version) {
|
|
35
|
+
// Remove leading caret or tilde
|
|
36
|
+
const cleanVersion = version.replace(/^[\^~]/, "");
|
|
37
|
+
// For canary versions, use exact pinning (no caret)
|
|
38
|
+
// For stable versions, use caret to allow patch updates
|
|
39
|
+
if (cleanVersion.includes("canary")) {
|
|
40
|
+
return cleanVersion; // Exact: "1.5.9-canary.29"
|
|
41
|
+
}
|
|
42
|
+
// Stable version - use caret for flexibility
|
|
43
|
+
return `^${cleanVersion}`; // "^1.6.0"
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get package versions from the scaffolder's package.json
|
|
47
|
+
*
|
|
48
|
+
* This function reads the create-mcpi-app package.json and extracts
|
|
49
|
+
* the @kya-os/* dependency versions, normalizing them for safe use
|
|
50
|
+
* in scaffolded templates.
|
|
51
|
+
*
|
|
52
|
+
* @returns Object with normalized package versions
|
|
53
|
+
* @throws Error if package.json cannot be read
|
|
54
|
+
*/
|
|
55
|
+
export async function getPackageVersions() {
|
|
56
|
+
if (cachedVersions) {
|
|
57
|
+
return cachedVersions;
|
|
58
|
+
}
|
|
59
|
+
// Navigate from helpers/ up to the package root
|
|
60
|
+
// src/helpers/ -> src/ -> package root
|
|
61
|
+
const packageJsonPath = path.resolve(__dirname, "../../package.json");
|
|
62
|
+
try {
|
|
63
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
|
64
|
+
const deps = packageJson.dependencies || {};
|
|
65
|
+
// Extract and normalize versions
|
|
66
|
+
// Note: fallback versions here must match the error case fallbacks below
|
|
67
|
+
cachedVersions = {
|
|
68
|
+
"@kya-os/mcp-i": normalizeVersion(deps["@kya-os/mcp-i"] || "^1.7.13"),
|
|
69
|
+
"@kya-os/cli": normalizeVersion(deps["@kya-os/cli"] || "^1.5.9"),
|
|
70
|
+
"@kya-os/mcp-i-cloudflare": normalizeVersion(deps["@kya-os/mcp-i-cloudflare"] || "^1.7.76"),
|
|
71
|
+
"@kya-os/contracts": normalizeVersion(deps["@kya-os/contracts"] || "^1.7.21"),
|
|
72
|
+
};
|
|
73
|
+
return cachedVersions;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
// Fallback to safe default versions if package.json can't be read
|
|
77
|
+
console.warn("[getPackageVersions] Warning: Could not read package.json, using defaults");
|
|
78
|
+
return {
|
|
79
|
+
"@kya-os/mcp-i": "^1.7.13",
|
|
80
|
+
"@kya-os/cli": "^1.5.9",
|
|
81
|
+
"@kya-os/mcp-i-cloudflare": "^1.7.76",
|
|
82
|
+
"@kya-os/contracts": "^1.7.21",
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Clear the cached versions (useful for testing)
|
|
88
|
+
*/
|
|
89
|
+
export function clearVersionCache() {
|
|
90
|
+
cachedVersions = null;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=get-package-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-package-versions.js","sourceRoot":"","sources":["../../src/helpers/get-package-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,mCAAmC;AACnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAS3C,kDAAkD;AAClD,IAAI,cAAc,GAA2B,IAAI,CAAC;AAElD;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEnD,oDAAoD;IACpD,wDAAwD;IACxD,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,CAAC,2BAA2B;IAClD,CAAC;IAED,6CAA6C;IAC7C,OAAO,IAAI,YAAY,EAAE,CAAC,CAAC,WAAW;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,uCAAuC;IACvC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QAE5C,iCAAiC;QACjC,yEAAyE;QACzE,cAAc,GAAG;YACf,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC;YACrE,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC;YAChE,0BAA0B,EAAE,gBAAgB,CAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,SAAS,CAC9C;YACD,mBAAmB,EAAE,gBAAgB,CACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,SAAS,CACvC;SACF,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kEAAkE;QAClE,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,QAAQ;YACvB,0BAA0B,EAAE,SAAS;YACrC,mBAAmB,EAAE,SAAS;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Management Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for resetting and regenerating MCP-I identities
|
|
5
|
+
* for both Node.js (.mcpi/identity.json) and Cloudflare Workers (wrangler.toml).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Check if a directory is a Node.js MCP-I project
|
|
9
|
+
*/
|
|
10
|
+
export declare function isNodeMcpiProject(projectPath: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Check if a directory is a Cloudflare Worker MCP-I project
|
|
13
|
+
*/
|
|
14
|
+
export declare function isCloudflareProject(projectPath: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Reset identity by deleting existing identity files
|
|
17
|
+
*/
|
|
18
|
+
export declare function resetIdentity(projectPath?: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Regenerate identity by creating a new one
|
|
21
|
+
*/
|
|
22
|
+
export declare function regenerateIdentity(projectPath?: string): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=identity-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-manager.d.ts","sourceRoot":"","sources":["../../src/helpers/identity-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAI9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAYhE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDtF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkF3F"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Management Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for resetting and regenerating MCP-I identities
|
|
5
|
+
* for both Node.js (.mcpi/identity.json) and Cloudflare Workers (wrangler.toml).
|
|
6
|
+
*/
|
|
7
|
+
import fs from 'fs-extra';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import { generateIdentity } from './generate-identity.js';
|
|
11
|
+
/**
|
|
12
|
+
* Check if a directory is a Node.js MCP-I project
|
|
13
|
+
*/
|
|
14
|
+
export function isNodeMcpiProject(projectPath) {
|
|
15
|
+
const identityPath = path.join(projectPath, '.mcpi', 'identity.json');
|
|
16
|
+
const configPath = path.join(projectPath, 'xmcp.config.ts');
|
|
17
|
+
return fs.existsSync(identityPath) || fs.existsSync(configPath);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if a directory is a Cloudflare Worker MCP-I project
|
|
21
|
+
*/
|
|
22
|
+
export function isCloudflareProject(projectPath) {
|
|
23
|
+
const wranglerPath = path.join(projectPath, 'wrangler.toml');
|
|
24
|
+
if (!fs.existsSync(wranglerPath)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
// Check if wrangler.toml contains MCP-I or MCP-related content
|
|
28
|
+
const content = fs.readFileSync(wranglerPath, 'utf8');
|
|
29
|
+
return (content.includes('MCP_IDENTITY_AGENT_DID') ||
|
|
30
|
+
content.includes('[[durable_objects.bindings]]') ||
|
|
31
|
+
content.includes('AGENTSHIELD_API_KEY'));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Reset identity by deleting existing identity files
|
|
35
|
+
*/
|
|
36
|
+
export async function resetIdentity(projectPath = process.cwd()) {
|
|
37
|
+
console.log(chalk.cyan('\n🔄 Resetting identity...'));
|
|
38
|
+
let identityFound = false;
|
|
39
|
+
// Check for Node.js project
|
|
40
|
+
const mcpiDir = path.join(projectPath, '.mcpi');
|
|
41
|
+
const identityPath = path.join(mcpiDir, 'identity.json');
|
|
42
|
+
if (fs.existsSync(identityPath)) {
|
|
43
|
+
fs.removeSync(identityPath);
|
|
44
|
+
console.log(chalk.green('✅ Removed Node.js identity file'));
|
|
45
|
+
console.log(chalk.dim(` Deleted: ${identityPath}`));
|
|
46
|
+
identityFound = true;
|
|
47
|
+
}
|
|
48
|
+
// Check for Cloudflare project
|
|
49
|
+
const wranglerPath = path.join(projectPath, 'wrangler.toml');
|
|
50
|
+
const devVarsPath = path.join(projectPath, '.dev.vars');
|
|
51
|
+
if (fs.existsSync(wranglerPath)) {
|
|
52
|
+
let content = fs.readFileSync(wranglerPath, 'utf8');
|
|
53
|
+
if (content.includes('MCP_IDENTITY_AGENT_DID')) {
|
|
54
|
+
// Remove identity variables from wrangler.toml (handles both old and new formats)
|
|
55
|
+
content = content.replace(/# Persistent Identity.*?\nMCP_IDENTITY_AGENT_DID = ".*?"\nMCP_IDENTITY_PRIVATE_KEY = ".*?"\nMCP_IDENTITY_PUBLIC_KEY = ".*?"\n/gs, '');
|
|
56
|
+
content = content.replace(/# Persistent Identity.*?\nMCP_IDENTITY_AGENT_DID = ".*?"\n/gs, '');
|
|
57
|
+
fs.writeFileSync(wranglerPath, content);
|
|
58
|
+
console.log(chalk.green('✅ Removed Cloudflare Worker identity variables'));
|
|
59
|
+
console.log(chalk.dim(` Updated: ${wranglerPath}`));
|
|
60
|
+
identityFound = true;
|
|
61
|
+
}
|
|
62
|
+
// Remove .dev.vars if it exists
|
|
63
|
+
if (fs.existsSync(devVarsPath)) {
|
|
64
|
+
fs.removeSync(devVarsPath);
|
|
65
|
+
console.log(chalk.green('✅ Removed .dev.vars file'));
|
|
66
|
+
console.log(chalk.dim(` Deleted: ${devVarsPath}`));
|
|
67
|
+
identityFound = true;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Check if any identity was found
|
|
71
|
+
if (!identityFound) {
|
|
72
|
+
console.log(chalk.yellow('⚠️ No identity found to reset'));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
console.log(chalk.green('\n✨ Identity reset complete'));
|
|
76
|
+
console.log(chalk.dim(' Run regenerate command to create a new identity'));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Regenerate identity by creating a new one
|
|
80
|
+
*/
|
|
81
|
+
export async function regenerateIdentity(projectPath = process.cwd()) {
|
|
82
|
+
console.log(chalk.cyan('\n🔄 Regenerating identity...'));
|
|
83
|
+
const isNode = isNodeMcpiProject(projectPath);
|
|
84
|
+
const isCloudflare = isCloudflareProject(projectPath);
|
|
85
|
+
if (!isNode && !isCloudflare) {
|
|
86
|
+
console.log(chalk.red('❌ Not an MCP-I project'));
|
|
87
|
+
console.log(chalk.dim(' Could not detect .mcpi/identity.json or wrangler.toml with MCP_IDENTITY variables'));
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
// Generate new identity
|
|
91
|
+
const identity = await generateIdentity();
|
|
92
|
+
// Node.js project
|
|
93
|
+
if (isNode) {
|
|
94
|
+
const mcpiDir = path.join(projectPath, '.mcpi');
|
|
95
|
+
fs.ensureDirSync(mcpiDir);
|
|
96
|
+
const identityPath = path.join(mcpiDir, 'identity.json');
|
|
97
|
+
fs.writeJsonSync(identityPath, identity, { spaces: 2 });
|
|
98
|
+
console.log(chalk.green('✅ Generated new Node.js identity'));
|
|
99
|
+
console.log(chalk.dim(` DID: ${identity.did}`));
|
|
100
|
+
console.log(chalk.dim(` Saved to: ${identityPath}`));
|
|
101
|
+
}
|
|
102
|
+
// Cloudflare Worker project
|
|
103
|
+
if (isCloudflare) {
|
|
104
|
+
const wranglerPath = path.join(projectPath, 'wrangler.toml');
|
|
105
|
+
const devVarsPath = path.join(projectPath, '.dev.vars');
|
|
106
|
+
let wranglerContent = fs.readFileSync(wranglerPath, 'utf8');
|
|
107
|
+
// Remove old identity if exists from wrangler.toml
|
|
108
|
+
wranglerContent = wranglerContent.replace(/# Persistent Identity.*?\nMCP_IDENTITY_AGENT_DID = ".*?"\nMCP_IDENTITY_PRIVATE_KEY = ".*?"\nMCP_IDENTITY_PUBLIC_KEY = ".*?"\n/gs, '');
|
|
109
|
+
// Remove old DID-only format if exists
|
|
110
|
+
wranglerContent = wranglerContent.replace(/# Persistent Identity.*?\nMCP_IDENTITY_AGENT_DID = ".*?"\n/gs, '');
|
|
111
|
+
// Write private keys to .dev.vars (git-ignored)
|
|
112
|
+
const devVarsContent = `# MCP-I Identity Private Keys (NEVER COMMIT THIS FILE)
|
|
113
|
+
# Generated by create-mcpi-app
|
|
114
|
+
MCP_IDENTITY_PRIVATE_KEY="${identity.privateKey}"
|
|
115
|
+
MCP_IDENTITY_PUBLIC_KEY="${identity.publicKey}"
|
|
116
|
+
`;
|
|
117
|
+
fs.writeFileSync(devVarsPath, devVarsContent);
|
|
118
|
+
// Add only public DID to wrangler.toml
|
|
119
|
+
const varsMatch = wranglerContent.match(/\[vars\]/);
|
|
120
|
+
if (varsMatch) {
|
|
121
|
+
const insertPosition = varsMatch.index + varsMatch[0].length;
|
|
122
|
+
const identityVars = `
|
|
123
|
+
# Persistent Identity (generated by create-mcpi-app)
|
|
124
|
+
# Public DID - safe to commit
|
|
125
|
+
MCP_IDENTITY_AGENT_DID = "${identity.did}"
|
|
126
|
+
`;
|
|
127
|
+
wranglerContent =
|
|
128
|
+
wranglerContent.slice(0, insertPosition) +
|
|
129
|
+
identityVars +
|
|
130
|
+
wranglerContent.slice(insertPosition);
|
|
131
|
+
fs.writeFileSync(wranglerPath, wranglerContent);
|
|
132
|
+
console.log(chalk.green('✅ Generated new Cloudflare Worker identity'));
|
|
133
|
+
console.log(chalk.dim(` DID: ${identity.did}`));
|
|
134
|
+
console.log(chalk.dim(` Public DID saved to: ${wranglerPath}`));
|
|
135
|
+
console.log(chalk.dim(` Private keys saved to: ${devVarsPath}`));
|
|
136
|
+
console.log(chalk.yellow(' ⚠️ NEVER commit .dev.vars to version control!'));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
console.log(chalk.yellow('⚠️ Could not find [vars] section in wrangler.toml'));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
console.log(chalk.green('\n✨ Identity regeneration complete'));
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=identity-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-manager.js","sourceRoot":"","sources":["../../src/helpers/identity-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper Exports for @kya-os/create-mcpi-app
|
|
3
|
+
*
|
|
4
|
+
* This module exports helpers for programmatic use.
|
|
5
|
+
* The primary export is generateCloudflareProjectFiles for one-click deployment.
|
|
6
|
+
*/
|
|
7
|
+
export { generateCloudflareProjectFiles, type GeneratedFile, type GenerateFilesOptions, type GenerateFilesResult, } from "./generate-cloudflare-files.js";
|
|
8
|
+
export { generateIdentity, isValidDIDKey, extractMultibaseFromDID, type GeneratedIdentity, } from "./generate-identity.js";
|
|
9
|
+
export { fetchCloudflareMcpiTemplate } from "./fetch-cloudflare-mcpi-template.js";
|
|
10
|
+
export { fetchCloudflareTemplate } from "./fetch-cloudflare-template.js";
|
|
11
|
+
export { fetchMCPITemplate } from "./fetch-mcpi-template.js";
|
|
12
|
+
export { fetchXMCPTemplate } from "./fetch-xmcp-template.js";
|
|
13
|
+
export { createProject } from "./create.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,8BAA8B,EAC9B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|