{"_id":"meitu-cli","_rev":"27-134b10394d85236a36cca2922532ae47","name":"meitu-cli","dist-tags":{"beta":"0.1.8-beta.0","latest":"2.1.21"},"versions":{"0.1.8-beta.0":{"name":"meitu-cli","version":"0.1.8-beta.0","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.8-beta.0","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"d9bf6c7caacb50d5f3ba6feb16d976a8f778d394","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.8-beta.0.tgz","fileCount":12,"integrity":"sha512-S70ZUnFD/GrtK/cc4pstCOwsAvKtC5n8elmOLQtj8gd7vmmG5dQvjwqIr0yPQb1zs34o7g4gDyt1TlQt11Jpxg==","signatures":[{"sig":"MEUCIDoBuhjTQTnAQykOvVnKLgBkx4RBY+jK2Xu2O0J/miTeAiEA/kbThxraT3y1hqVcprqAhodC4HpkhYpaaGDNJCU6AD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136198},"type":"commonjs","engines":{"node":">=18"},"gitHead":"e7b8bc0f7c3d999882851d1254b72ee363fe0d60","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.8-beta.0_1774172839309_0.4727793655246362","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"meitu-cli","version":"0.1.8","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.8","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"95e1cfc3900808ee2e8f9486df435c75c8310ff0","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.8.tgz","fileCount":12,"integrity":"sha512-wyJz7r2g9IqqmB3wM5spPECxkwhszjZm+YerZueIvsS4r/HFq0QQvOznuyooJAOQKlPvMF6QLn8CAvqfPN3Gtw==","signatures":[{"sig":"MEYCIQDaVgz03joTPic/RMVToT4isUgEz1dB4O8+dNMvf3siIQIhAId+j0RNea5V2p/aBBqyKUabNP7C8XtiBSajXiQ2YEmn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137008},"type":"commonjs","engines":{"node":">=18"},"gitHead":"e7b8bc0f7c3d999882851d1254b72ee363fe0d60","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.8_1774175514963_0.44755725054775897","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"meitu-cli","version":"0.1.9","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.9","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"c07d4857abbcd9b724286c92aee8ea59d95d945a","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.9.tgz","fileCount":12,"integrity":"sha512-nGUdYZ3fwD2TgZ/CQ81eGxwR0teGrBy2TouM8Aw3+ZmU6sRKg7fvUgIZ9hTQLo1C+bffeWPuxBwZcJG4Yf4v/Q==","signatures":[{"sig":"MEYCIQCx7veMQfzE8Inz6h9Et8VPE7y7j+wTxQKR7COtPqMe9wIhAJgN5B0PAyhwTVd5ly3YiTComHE2ul0CggedYV8gw9MA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136992},"type":"commonjs","engines":{"node":">=18"},"gitHead":"e63f3a2ed72ff44e530a39d3f9442133733be477","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.9_1774178139680_0.4994760203950779","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"meitu-cli","version":"0.1.10","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.10","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"2141a21da38f2a380ca0c14333ac2669e5cfc0e4","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.10.tgz","fileCount":12,"integrity":"sha512-wB4il3V9PoPFbmD0hPi+JjPCm2ky1SGipoZdIOKNGSmK3i5qtX3GZJ8jFDcCrXcHmjg2FoudSe+FU07eVsceLw==","signatures":[{"sig":"MEQCIDPwAIK1Cl1s2e+b+HPJbi5WYIFMABE1DHuJgtJkFz5aAiBsMDaT2IqAkhnetP86zM5QaHiY/gf93DSNdhLGwEY12w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138921},"type":"commonjs","engines":{"node":">=18"},"gitHead":"f03c0152b5ab7cb508fc56309a8b69909a8fc531","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.10_1774238191106_0.6513267238918183","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"meitu-cli","version":"0.1.11","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.11","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"c604ba17500f6cdb48c680a9239fab2be57c81f1","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.11.tgz","fileCount":12,"integrity":"sha512-d+iyMzj3ymSm1apmcX+CBUipyxQ8qPIt15/IvRm1n/NLc08/EaP1W+lD2xCzFQWLHmtI9ccSwNUGplBrYVS+dw==","signatures":[{"sig":"MEUCIHqMuukR6mKYKALf3TpFqN6eKN7gGlQNQt6DV+zqvExQAiEApIQHoUkSHwrzLdXd887qVQkVylUVZJrIMSgpHUSEKMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140737},"type":"commonjs","engines":{"node":">=18"},"gitHead":"fa4c47d861745b2126907244bac70167d62c7474","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.11_1774249965964_0.271509787512521","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"meitu-cli","version":"0.1.12","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.12","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"4904ae2b498b3d25634bf03db661611fa975951c","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.12.tgz","fileCount":12,"integrity":"sha512-AyJ0PZHdAUsQ4SIEzG1OhDWhgMyq6Q5tLBVDSNjY5nbaNTxHsQnmOHOHV2lYAIFgqHifmcXblpgb+pHH9RCIwA==","signatures":[{"sig":"MEYCIQCWSd1Piq05IQBA+bJJMinv8sLGtqcimdXavX8E9Jxx2AIhAKZTx+55GTg/DP4ojbI0GQ7H3aQTLjeda3lmqfzIurKJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140843},"type":"commonjs","engines":{"node":">=18"},"gitHead":"d57821d426cd9cc0f189e2c3d43616863644373f","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.12_1774254406764_0.09894676743982811","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"meitu-cli","version":"0.1.13","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.13","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"7db59861c157e8700d2b03eca18b52dc8014b9b0","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.13.tgz","fileCount":12,"integrity":"sha512-AZS381Gqtl+g/gmkTVAVASOes/VczNs8Rk7wqzn4IDQdTyMvlQoshlObcxrIN3jqFkCUKQBUekHzcV1AYmTpmw==","signatures":[{"sig":"MEQCIF7x6+1Rwvm42QZ7tDqlAApS/riPM7Pu5EqCq6qWTbeAAiBYUb3+wu/M1ghEfNRX9XtieB2ydD+Dpb+/lPiUNAX30Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140645},"type":"commonjs","engines":{"node":">=18"},"gitHead":"ae25701c83fc4bad78a26b840ff26b2a8c7a3be3","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.13_1774266472956_0.6086550165405069","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"meitu-cli","version":"0.1.14","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.14","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"ffda88f3d57b63b7da237fd53b1791fa14ceca25","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.14.tgz","fileCount":12,"integrity":"sha512-hUptNcMIj10ikW3mk8Tg69R08e3tSdrEa2PSg1C7nZqJCS2uV/VdnV544rG4xc49j06qg/jCQt6DVX8kHPr8lQ==","signatures":[{"sig":"MEUCIQDDqGKLllYitU2IGY5m0FpM8lw8m+5CZYMhMVyI4VuxEwIgQwixFfx81rxN+MJNwjpoj3ZBfMHpr+b4MQsY7tePOkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142760},"type":"commonjs","engines":{"node":">=18"},"gitHead":"3e30f3d5aa2d93d60ca4d7afe42df1f5abc14847","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.14_1774277479749_0.9994700548670061","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"meitu-cli","version":"0.1.15","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@0.1.15","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"99f6f342abd48cc8eb6cb03f4342b49ab14afdd9","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-0.1.15.tgz","fileCount":12,"integrity":"sha512-XKhztIKwd25JXoZ7DF2V4ViOAzJGojjoA7bQ8Al88MVOdggvuAoeD2K/IxuGr4EhAPbzh9jNGCKttfsJwgOajA==","signatures":[{"sig":"MEUCIQClVby6vPBgzgJ4QfY43hiPgEmvfCTqt3tbbijrswS5UQIgJfInZHzVFcgXk8amybT+51gIMytObhB2k58mawUNFng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142466},"type":"commonjs","engines":{"node":">=18"},"gitHead":"b2ba7329facff7f1da79486980c6785ea6377fd9","scripts":{"test":"npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_0.1.15_1774946603946_0.20359254457956566","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"meitu-cli","version":"2.0.6","keywords":["meitu","cli","openapi","image","video","agent","openclaw"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.0.6","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"0020a0dfbcb7967b8893cab56146814cd9ffa4df","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.0.6.tgz","fileCount":13,"integrity":"sha512-ApPpTXcXChYwzf8ADwTqfUErUH+b3hxIhBItyTlsufJOM9wtncf+66wRmES0kvdq2XID7TQ5fuu2j9fLDiOJaw==","signatures":[{"sig":"MEUCIQDjKu63zo17bM1t4Er2vnybs0qQ1RTCTQHvXM9GaKCW2AIgFOiBIIQ73+LOkscHOsMBlzXG5z2SnrzUH/roe43OvE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170441},"type":"commonjs","engines":{"node":">=18"},"gitHead":"456ecd97269fae08c83ea89fcba84b748614b20b","scripts":{"test":"npm run test:unit && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.0.6_1778138254652_0.8552590786243874","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"meitu-cli","version":"2.1.6","keywords":["meitu","cli","openapi","image","video","agent","skills"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.1.6","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"b66846296e7efece443cf738592551dcf57f88bd","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.6.tgz","fileCount":19,"integrity":"sha512-4+roQ7cUlTQLkwMhGqY9cv71J48ufHSMYdengqV8qpMOVMfTkZIKA681f+N8O4O+FGIcp4ir3gCIWK/9UTHhIw==","signatures":[{"sig":"MEYCIQDQ17oljTXvsG2R4FEvOp6K8YYKmTyx9GpXT5CfBKiePgIhAMGSzUP602GvL3Z+YC3lVCR0tpN66JwQdNUC17APf9eQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451560},"type":"commonjs","engines":{"node":">=18"},"gitHead":"a2fbfb90801c5071d3248a4747337f083241ceb9","scripts":{"test":"npm run test:unit && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"yaml":"^2.9.0","commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.1.6_1780557391384_0.09038652636895961","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"meitu-cli","version":"2.1.7","keywords":["meitu","cli","openapi","image","video","agent","skills"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.1.7","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"a8a674ae7a4a01358c4c1426cb6c72273c9b64e8","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.7.tgz","fileCount":19,"integrity":"sha512-M9YFcRXMDgVBPAjQjXGOb6bIWFCJ/kV8ZznTqh1c9o32wD0BBK67/U+9Q7kM/6nmpGksDKzYAHfJtFVXPbuThg==","signatures":[{"sig":"MEYCIQCLI0qAb7YNlJwwkcvbj6ZwvTIQogvbnPl7H0QNpe3oLQIhANReoxsbFAfAHN/5bwf0+k7ZP6GI+E0j0vj03RO4LNhv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450746},"type":"commonjs","engines":{"node":">=18"},"gitHead":"a2fbfb90801c5071d3248a4747337f083241ceb9","scripts":{"test":"npm run test:unit && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"yaml":"^2.9.0","commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.1.7_1780559408366_0.9229562878879263","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"meitu-cli","version":"2.1.8","keywords":["meitu","cli","openapi","image","video","agent","skills"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.1.8","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"b52ba422b188076d8dadaef819ea7a22beaf7f7e","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.8.tgz","fileCount":19,"integrity":"sha512-LV02lSGHRxmUjJabuW5lvAGkQlbH4TxzGSJ3iKWMfkyoQBW1cU3Vn/VNNKWK+bRr/iO/SIHN98LNcpdYUgvzHQ==","signatures":[{"sig":"MEUCIHWGiuBuk7KL4G03f+WDF7ic1Lp7CCW8fFYvh8tgz9raAiEAqbARsgTIOrbZt288YrYJfIkv2Jg01XaS3r0KHRNoHzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":460154},"type":"commonjs","engines":{"node":">=18"},"gitHead":"ccb18a52df630876374cdfc94017dbd6cfd00fb1","scripts":{"test":"npm run test:unit && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build","validate:root-help":"node ./scripts/validate-root-help-bootstrap.js"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"yaml":"^2.9.0","commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.1.8_1781011200789_0.10009850867830372","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"meitu-cli","version":"2.1.9","keywords":["meitu","cli","openapi","image","video","agent","skills"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.1.9","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"81a08bdabd1298ab611a2a3230ffd68dd0a48447","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.9.tgz","fileCount":19,"integrity":"sha512-kPAoGtUO3nZn+nxelOezB6cJIAYG8+JCmXsS744ISB9kXn3XxuYC6G0Xwuzx1UW+KNhDMHB2cyihOuLHER+rtw==","signatures":[{"sig":"MEQCIFq0JdfV5xgWu4EYtf15hjUTJZvd6Oz+kj2Kj/9lVaU0AiAB41W78COJGINPnZtiacT7A3RqoJpxtMFzLdXYsohGkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462790},"type":"commonjs","engines":{"node":">=18"},"gitHead":"1fdd005ecf2f79ba941f087a1dbb2ca2e5c32e53","scripts":{"test":"npm run test:unit && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build","validate:root-help":"node ./scripts/validate-root-help-bootstrap.js"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"yaml":"^2.9.0","commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.1.9_1781333208690_0.1454755576692548","host":"s3://npm-registry-packages-npm-production"}},"2.1.10":{"name":"meitu-cli","version":"2.1.10","keywords":["meitu","cli","openapi","image","video","agent","skills"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.1.10","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"28a95c14bbdebe19917be90d8964218b13127226","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.10.tgz","fileCount":19,"integrity":"sha512-45JnQRWLNoea/5xZ56cHluvBk0MrE3lcekZ+249MZtMCwcP7zavJkfjgfoa2bc/j050EfO7VGHkd2/CWkjBQDg==","signatures":[{"sig":"MEUCICGitQkp3ZeK8eXjvi1H9LuSYKS7FqFawC0TKdfely1+AiEAjPzelwoOfgsqy3U6oHbOJNlphg7CSWPmYAZD4KTr5nU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462243},"type":"commonjs","engines":{"node":">=18"},"gitHead":"3a7d6f293bbd871584c6cf46a04cf5f66cfb163e","scripts":{"test":"npm run test:unit && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build","validate:root-help":"node ./scripts/validate-root-help-bootstrap.js"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"yaml":"^2.9.0","commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.1.10_1781532456356_0.024405478480745257","host":"s3://npm-registry-packages-npm-production"}},"2.1.19":{"name":"meitu-cli","version":"2.1.19","keywords":["meitu","cli","openapi","image","video","agent","skills"],"author":{"name":"Meitu"},"license":"MIT","_id":"meitu-cli@2.1.19","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"bin":{"meitu":"bin/meitu.js"},"dist":{"shasum":"3c56965675ceba931778f02fb95edcf6a18cf96e","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.19.tgz","fileCount":26,"integrity":"sha512-vOWRUZSFss330XhA1bBXmb5LuTlmPIufHNDIHR3LxtGrTIMDA2WxWpDH97cA6FRx3O/ai/RrLvRp1gX2v7UvYA==","signatures":[{"sig":"MEUCIQCeUnMWKk1kipn6kPagwk1UbvHjPLf60GtLr5TGsbTskAIgfkGglwF7Mlr1IVV7QVEapBBv4cenyCMnsHk60zDO+O0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588963},"type":"commonjs","engines":{"node":">=18"},"exports":{"./workflow-help":"./dist/workflow-help.js"},"scripts":{"test":"npm run test:unit && npm run test:coverage:auth-login && npm run test:coverage:auth-mode && npm run test:coverage:timeout && npm run test:coverage:time-format && npm run test:coverage:workflow && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"node --test ./test/*.test.js","prepublishOnly":"npm run build","test:e2e:workflow":"node ./scripts/e2e/workflow/run.js","validate:root-help":"node ./scripts/validate-root-help-bootstrap.js","test:coverage:timeout":"node --experimental-test-coverage --test-coverage-include=src/task-timeout.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/task-timeout-resolution.test.js ./test/task-timeout.test.js","test:coverage:workflow":"node --experimental-test-coverage --test-coverage-include=src/workflow.js --test-coverage-include=src/workflow-registry.js --test-coverage-include=src/workflow-help.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/workflow.test.js ./test/workflow-registry.test.js ./test/workflow-help.test.js","test:coverage:auth-mode":"node --experimental-test-coverage --test-coverage-include=src/auth-mode.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/auth-mode-preference.test.js","test:coverage:auth-login":"node --experimental-test-coverage --test-coverage-include=src/iam-login-progress.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/auth-login-progress.test.js","test:coverage:time-format":"node --experimental-test-coverage --test-coverage-include=src/time-format.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/time-format.test.js"},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"repository":{"url":"git+https://github.com/meitu/meitu-cli.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"yaml":"^2.9.0","commander":"^12.1.0","mime-types":"^2.1.35","@aws-sdk/client-s3":"^3.900.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/meitu-cli_2.1.19_1787741237472_0.6412019603147237","host":"s3://npm-registry-packages-npm-production"}},"2.1.21":{"name":"meitu-cli","version":"2.1.21","description":"Node.js CLI for Meitu OpenAPI image and media tasks.","author":{"name":"Meitu"},"license":"MIT","keywords":["meitu","cli","openapi","image","video","agent","skills"],"homepage":"https://github.com/meitu/meitu-cli#readme","bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"repository":{"type":"git","url":"git+https://github.com/meitu/meitu-cli.git"},"publishConfig":{"access":"public"},"bin":{"meitu":"bin/meitu.js"},"exports":{"./workflow-help":"./dist/workflow-help.js"},"type":"commonjs","engines":{"node":">=18"},"scripts":{"clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && javascript-obfuscator ./src --output ./dist --config obfuscator.json","prepublishOnly":"npm run build","test:unit":"node --test ./test/*.test.js","test:coverage":"c8 --all --include='src/**/*.js' --include='bin/**/*.js' --exclude='src/**/*-obfuscated.js' --reporter=text-summary --reporter=cobertura --reports-dir=coverage node --test ./test/*.test.js","test:coverage:auth-login":"node --experimental-test-coverage --test-coverage-include=src/iam-login-progress.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/auth-login-progress.test.js","test:coverage:auth-mode":"node --experimental-test-coverage --test-coverage-include=src/auth-mode.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/auth-mode-preference.test.js","test:coverage:partition":"node --experimental-test-coverage --test-coverage-include=src/partition.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/partition.test.js","test:coverage:timeout":"node --experimental-test-coverage --test-coverage-include=src/task-timeout.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/task-timeout-resolution.test.js ./test/task-timeout.test.js","test:coverage:time-format":"node --experimental-test-coverage --test-coverage-include=src/time-format.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/time-format.test.js","test:coverage:workflow":"node --experimental-test-coverage --test-coverage-include=src/workflow.js --test-coverage-include=src/workflow-registry.js --test-coverage-include=src/workflow-help.js --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test ./test/workflow.test.js ./test/workflow-registry.test.js ./test/workflow-help.test.js","test:e2e:workflow":"node ./scripts/e2e/workflow/run.js","validate:root-help":"node ./scripts/validate-root-help-bootstrap.js","test":"npm run test:unit && npm run test:coverage:auth-login && npm run test:coverage:auth-mode && npm run test:coverage:partition && npm run test:coverage:timeout && npm run test:coverage:time-format && npm run test:coverage:workflow && npm run build && node ./bin/meitu.js --help >/dev/null && node ./bin/meitu.js image-cutout --help >/dev/null"},"dependencies":{"@aws-sdk/client-s3":"^3.900.0","commander":"^12.1.0","mime-types":"^2.1.35","yaml":"^2.9.0"},"devDependencies":{"c8":"^10.1.3","javascript-obfuscator":"^5.3.0"},"_id":"meitu-cli@2.1.21","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-ggCFjpN520rrOXJf1VDcnAIyas7mheIs+w5IbK/KFmfGz9xaX/UQqzOiC7shz81JiSKh/hc3vUiI7UmVXN90NQ==","shasum":"2cf5a2dffe6e26d7cda3beac1c370a8bb5194449","tarball":"https://registry.npmjs.org/meitu-cli/-/meitu-cli-2.1.21.tgz","fileCount":27,"unpackedSize":619202,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuC52rxIJtaiz43F+aNEgAU8rpXXNsXg9ZedXnhWnLkAIhAKtTVs7B39pabTgkdW529Q91Sg1lWB11qPmHiXeznM25"}]},"_npmUser":{"name":"meitu-cli","email":"testmeitu2@gmail.com"},"directories":{},"maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/meitu-cli_2.1.21_1788776811451_0.2003517064911846"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T09:47:19.248Z","modified":"2026-09-07T10:26:51.771Z","1.0.0":"2017-03-09T10:27:29.927Z","1.0.1":"2017-03-09T10:28:52.892Z","1.0.2":"2017-04-12T11:24:44.535Z","1.0.3":"2017-04-13T02:45:12.634Z","0.1.8-beta.0":"2026-03-22T09:47:19.561Z","0.1.8":"2026-03-22T10:31:55.118Z","0.1.9":"2026-03-22T11:15:39.841Z","0.1.10":"2026-03-23T03:56:31.299Z","0.1.11":"2026-03-23T07:12:46.114Z","0.1.12":"2026-03-23T08:26:46.889Z","0.1.13":"2026-03-23T11:47:53.096Z","0.1.14":"2026-03-23T14:51:19.896Z","0.1.15":"2026-03-31T08:43:24.092Z","2.0.6":"2026-05-07T07:17:34.793Z","2.1.6":"2026-06-04T07:16:31.533Z","2.1.7":"2026-06-04T07:50:08.551Z","2.1.8":"2026-06-09T13:20:00.924Z","2.1.9":"2026-06-13T06:46:48.832Z","2.1.10":"2026-06-15T14:07:36.519Z","2.1.19":"2026-08-26T10:47:17.662Z","2.1.21":"2026-09-07T10:26:51.638Z"},"bugs":{"url":"https://github.com/meitu/meitu-cli/issues"},"author":{"name":"Meitu"},"license":"MIT","homepage":"https://github.com/meitu/meitu-cli#readme","keywords":["meitu","cli","openapi","image","video","agent","skills"],"repository":{"type":"git","url":"git+https://github.com/meitu/meitu-cli.git"},"description":"Node.js CLI for Meitu OpenAPI image and media tasks.","maintainers":[{"name":"meitu-cli","email":"testmeitu2@gmail.com"}],"readme":"# Meitu CLI\n\n[![coverage](https://git.meitu.com/meituhub/meitu-cli/badges/%{current_ref}/coverage.svg?job=coverage)](https://git.meitu.com/meituhub/meitu-cli/-/commits/%{current_ref})\n\nMeitu CLI is a command-line interface to Meitu's AI image and video capabilities. Everything accessible through the [Meitu AI Open Platform](https://www.miraclevision.com/open-claw) — cutout, beauty enhancement, image generation, virtual try-on, image-to-video, and more — is available directly from the terminal with the same models, parameters, and quality.\n\nIt is designed for:\n\n- **AI agents** — structured JSON output (`--json`), deterministic exit codes, and automatic task polling make it a natural fit for agentic workflows that need to call Meitu's image and video AI as a tool step (e.g. Claude Code, Cursor, or custom LLM agents).\n- **E-commerce & content teams** — batch-process product images at scale: cutout backgrounds, virtual try-on for fashion listings, beauty enhancement for portrait shots, or generate marketing visuals without a GUI.\n- **Developers building on Meitu OpenAPI** — prototype and debug API calls interactively from the terminal before integrating them into an application.\n\n## Docs\n\n- [Guides](docs/guides/cli-usage-guide.md) — CLI setup, authentication, environment overrides, passthrough usage, and local split-AK/SK workflows.\n- [User workflows](docs/guides/user-workflows.md) — discover and run account-visible user-created workflows.\n- [CN and INTL partitions](docs/guides/cli-partitions.md) — use one CLI package with isolated domestic and international credentials, sessions, and registries.\n- [Task timeout Registry contract](docs/guides/task-timeout-registry-contract.md) — backend fields, precedence, batch semantics, Help, and timeout recovery.\n- [Auth mode switch test guide](docs/release/auth-mode-switch-test-guide.md) — verify `auth use`, environment overrides, status fields, fail-closed behavior, effects, batch, and Workflow without deleting saved AK/SK.\n- [MCP passthrough spec](docs/mcp/cli-mcp-passthrough-spec.md) — detailed MCP-style passthrough behavior and implementation notes.\n\n### Reuse Workflow help generation\n\nNode.js projects can turn a pulled Workflow Registry item into the same structured options and display-ready help used by `meitu workflow <listing-code> --help`:\n\n```js\nconst { buildWorkflowCommandHelp } = require(\"meitu-cli/workflow-help\");\n\nconst help = buildWorkflowCommandHelp(registryItem);\nconsole.log(help.text);\n```\n\nUse `help.inputOptions` to register the generated flags in another CLI framework. The function is pure and performs no login, network, or cache access. See the [user workflow guide](docs/guides/user-workflows.md#reuse-the-help-generator) for the returned fields.\n\n## Install\n\nRecommended for most users (npm package):\n\n```bash\nnpm install -g meitu-cli\n```\n\nThen run the CLI directly:\n\n```bash\nmeitu --help\nmeitu auth verify --json\n```\n\nIf you do not want a global install, you can run the published package with `npx`:\n\n```bash\nnpx -y meitu-cli --help\nnpx -y meitu-cli auth verify --json\n```\n\nTool commands work the same way through `npx`:\n\n```bash\nnpx -y meitu-cli image-cutout --image ./test.png --json\n```\n\nNotes:\n\n- `npm install -g meitu-cli` installs the package globally and exposes the `meitu` command on `PATH`.\n- `npx -y meitu-cli ...` runs the published package without a separate global install.\n- Both forms use the same CLI behavior, configuration file, and environment variables.\n\n### Install meitu-skills (optional, for agent workflows)\n\nRecommended one-stop bootstrap (uses the bundled skills package installer):\n\n```bash\nnpm install -g meitu-cli\nmeitu skills install meituhub-skills\nmeitu skills doctor\n```\n\nThis downloads the official `meituhub-skills` runtime package from the Meitu\npackage registry, verifies its checksum, validates `PACKAGE_MANIFEST.json`, and\natomically installs the package into `$MEITU_SKILLS_HOME/skills/meituhub-skills`\n(default: `~/.meitu/skills/meituhub-skills`). No remote scripts are\nexecuted; install is always an explicit, user-triggered action.\n\nYou can also install from a local archive (useful for offline or local package\ntesting):\n\n```bash\nmeitu skills install meituhub-skills \\\n  --archive ./meituhub-skills-2.0.6.tar.gz \\\n  --json\n```\n\nOther useful subcommands:\n\n```bash\nmeitu skills update meituhub-skills  # update the installed skills package\nmeitu skills version                 # show installed skills + CLI version\nmeitu skills doctor --json           # diagnose CLI / credentials / registry / skills\n```\n\nCommon flags for `install` and `update`:\n\n- positional `<packageName>` — registry package name, for example `meituhub-skills`\n- `--target <dir>` — override skills root (default: `$MEITU_SKILLS_HOME/skills` or `~/.meitu/skills`)\n- `--version <ver>` — pin a specific package version (default: registry `latest`)\n- `--registry <url>` — override the package registry URL\n- `--archive <path>` — install from a local `.tar.gz` instead of the registry\n- `--force` — drop the auto-generated backup of any prior install\n- `--json` — emit structured JSON output for agents\n\nEnvironment variable overrides (optional):\n\n- `MEITU_SKILLS_HOME` — base directory for local skills files, default `~/.meitu`\n- `MEITU_SKILLS_PACKAGE_REGISTRY_URL` — package registry URL override\n- `MEITU_OPENAPI_BASE_URL` / `MEITU_OPENAPI_IMAGE_BASE_URL` — derive registry host\n\nLegacy alternatives (still supported):\n\n```bash\n# ClawHub\nnpm install -g clawhub\nclawhub install meitu-skills\n\n# Generic skills installer via GitHub URL\nnpx -y skills add https://github.com/meitu/meitu-skills --yes\n```\n\n## Configure\n\n### Select the service partition\n\nThe same CLI package supports the domestic (`cn`) and international (`intl`)\nservice partitions. Existing installations default to `cn`, so no command or\nlogin changes are required for domestic users.\n\n```bash\nmeitu config set-partition cn\nmeitu config set-partition intl\nmeitu config get-partition --json\n```\n\nFor CI or a single process, use an environment override:\n\n```bash\nMEITU_CLI_PARTITION=intl meitu auth login\nMEITU_CLI_PARTITION=intl meitu image-search --prompt \"cute cats\" --json\n```\n\n`MEITU_CLI_PARTITION` takes priority over the saved setting. Credentials,\nIAM sessions, authentication preferences, device identity, and Registry caches\nare isolated under `~/.meitu/partitions/cn/` and\n`~/.meitu/partitions/intl/`. The CLI never retries a failed request in the\nother partition.\n\nYou can save credentials locally:\n\n```bash\nmeitu config set-ak --value your_access_key\nmeitu config set-sk --value your_secret_key\n```\n\nOr provide them through environment variables:\n\n```bash\nexport MEITU_OPENAPI_ACCESS_KEY=your_access_key\nexport MEITU_OPENAPI_SECRET_KEY=your_secret_key\n```\n\nEnvironment variables take priority over the local credentials file.\n\nThe local credentials file is stored under the selected partition, for example\n`~/.meitu/partitions/cn/credentials.json`. Existing flat CN configuration is\ncopied automatically on first use and is not deleted.\n\nWhen both permanent AK/SK and an IAM session exist, select the execution identity\nwithout deleting either credential:\n\n```bash\nmeitu auth use iam    # force IAM for effects, batch, Registry, and Workflow\nmeitu auth use aksk   # force permanent AK/SK\nmeitu auth use auto   # compatibility default: permanent AK/SK, then IAM\nmeitu auth status --json\n```\n\nThe preference is stored separately inside the selected partition. The\n`MEITU_OPENAPI_AUTH_MODE=auto|iam|aksk` environment variable overrides the\nstored preference for the current process. Explicit `iam` or `aksk` mode fails\nclosed when its selected credential is unavailable; it never silently falls\nback to the other identity.\n\nBuilt-in defaults (unless overridden by environment variables below):\n\n- OpenAPI gateway host and strategy (file-upload token) host are set inside the CLI; override them only if your documentation or environment requires a different host (see Advanced Overrides).\n- verify path: `/demo/authorization`\n- image generate path: `/api/v1/sdk/push`\n- task status path: `/api/v1/sdk/status`\n- tool registry URL: follows the execution gateway domain by default, e.g. `https://openapi-global.meitu.com/api/v1/skills/tool_registry.json?consumer=meituhub`\n\n## Advanced Overrides\n\nFor normal external usage, you usually only need:\n\n- `MEITU_OPENAPI_ACCESS_KEY`\n- `MEITU_OPENAPI_SECRET_KEY`\n- `MEITU_CLI_PARTITION=cn|intl` when the international partition is required\n\nThe strategy service used for local file upload is built in and does not need to be configured in normal usage.\n\nIf you are testing against a private environment or a non-default deployment, the CLI also supports:\n\n- `MEITU_OPENAPI_BASE_URL` — overrides the built-in OpenAPI gateway host\n- `MEITU_IAM_BASE_URL` / `MEITU_IAM_CLIENT_ID` — override the selected partition's IAM API and public interactive client ID for a custom deployment. Do not configure or distribute an IAM Client Secret in the CLI.\n- `MEITU_OPENAPI_IMAGE_BASE_URL` — optional; image/task calls use this if set, otherwise `MEITU_OPENAPI_BASE_URL` (or the built-in default when that is unset)\n- `MEITU_OPENAPI_STRATEGY_BASE_URL` — overrides the built-in strategy host\n- `MEITU_OPENAPI_IMAGE_GENERATE_PATH` — overrides the push endpoint path used for tool and low-level generate calls\n- `MEITU_OPENAPI_TASK_STATUS_PATH` — overrides the task status endpoint path\n- `MEITU_OPENAPI_AUTH_MODE` — execution authentication override: `auto`, `iam`, or `aksk`. It has priority over `meitu auth use`; `auto` preserves AK/SK-first compatibility.\n- `MEITU_CLI_PARTITION` — process-level service partition override. Resolution order is environment override, saved partition, then `cn`.\n- `MEITU_OPENAPI_TASK_TIMEOUT_MS` — explicit task polling override in milliseconds for tool commands, `generate`, `batch`, and Workflow commands. Timeout precedence is environment override, command or Workflow item `task_timeout_ms`, Tool Registry `default_task_timeout_ms`, then the CLI fallback `600000` (10 minutes). Workflow Registry does not duplicate the global default. `predict_elapsed + 30000` may extend the effective wait. Batch timeouts apply independently to every task, not to the whole batch. A timeout includes the last observed task status and an executable `next_command`; do not submit again, continue querying the same `task_id`. A terminal success with an empty result keeps its existing exit code and recommends querying that task once more.\n- `MEITU_CLI_TIMEZONE` — optional IANA timezone (for example `Asia/Shanghai`) used by localized CLI timestamp fields. `workflow update/list --json` keep the stable UTC `updated_at` and add `updated_at_local` plus `updated_at_timezone`. Invalid or missing values fall back to the operating-system timezone, then UTC.\n- `MEITU_SKILLS_REGISTRY_URL` — overrides the default tool registry URL; when unset, the registry uses the same domain source as command execution (`MEITU_OPENAPI_IMAGE_BASE_URL` -> `MEITU_OPENAPI_BASE_URL` -> built-in default)\n- `MEITU_IAM_REFRESH_AHEAD_MS` — when using IAM token auth, refresh the session proactively this many milliseconds before access-token expiry; defaults to `300000` (5 minutes), set to `0` to only refresh after expiry\n- `MEITU_OPENAPI_TOOL_TASK_MODE` — optional compatibility guard; when set, it must stay `command` because tool commands now always send the CLI command name directly\n- `MEITU_CLI_OUTPUT_FORMAT` — controls `--json` output shape; `concise` (default) uses the historical wrapped CLI payloads, `full` keeps the full backend-response passthrough format\n- `MEITU_RECHARGE_URL` — overrides the partition-specific recharge page returned in insufficient-balance / order-limit responses. CN defaults to `https://meituhub.cn/zh-cn/pricing`; INTL defaults to `https://www.meituhub.com/en-us/pricing` and never falls back to the CN page.\n- `MEITU_CONSOLE_URL` / `OPENAPI_CONSOLE_URL` — overrides the console/configuration page returned for authorization or configuration errors; defaults to `MEITU_RECHARGE_URL` when unset\n\nThe strategy path and strategy type use built-in defaults and normally do not need to be changed:\n\n- strategy path: `/ai/token_policy` (override: `MEITU_OPENAPI_STRATEGY_PATH`)\n- strategy type: `mtai` (override: `MEITU_OPENAPI_STRATEGY_TYPE`)\n\nExample:\n\n```bash\nexport MEITU_OPENAPI_BASE_URL=https://api.example.com\nexport MEITU_OPENAPI_IMAGE_GENERATE_PATH=/api/v2/sdk/push\nexport MEITU_OPENAPI_STRATEGY_BASE_URL=https://strategy.example.com\nexport MEITU_OPENAPI_TOOL_TASK_MODE=command\nexport MEITU_CLI_OUTPUT_FORMAT=\"concise\"\n```\n\n### MCP-style passthrough\n\nWhen you need `meitu-cli` to behave more like an MCP proxy calling AIGCP, the CLI can augment push requests with MCP-style passthrough headers and payload fields.\n\nSupported push payload additions:\n\n- `request_id`\n- `trace_id`\n- `context`\n\nSupported passthrough request headers:\n\n- `x-mtcc-client`\n- `isStressTest`\n- `Authorization` (note: the standard `Authorization` header is still replaced by the CLI's SDK signature)\n\nRecommended environment variables:\n\n- `MEITU_OPENAPI_HEADER_X_MTCC_CLIENT`\n- `MEITU_OPENAPI_HEADER_ISSTRESSTEST`\n- `MEITU_OPENAPI_HEADER_MT_MCP_CONTEXT`\n- `MEITU_OPENAPI_HEADER_MT_MCP_UID`\n- `MEITU_OPENAPI_HEADER_MT_MCP_GID`\n- `MEITU_OPENAPI_HEADER_MT_MCP_TASK_ID`\n- `MEITU_OPENAPI_HEADER_X_REQUEST_ID`\n- `MEITU_OPENAPI_MCP_FROM`\n- `MEITU_OPENAPI_MCP_BIZ_LINE`\n\n`meitu-cli` will also auto-populate `x-mtcc-client.gnum` when it is not explicitly provided. The value is\npersisted under `~/.meitu/device.json` and generated once with `crypto.randomUUID()`, so the same CLI\nenvironment reuses a stable device-level `gnum` across AK/SK and IAM login flows.\nWhen IAM is the active execution identity, the CLI also writes the IAM session `uid` at the top level of\n`x-mtcc-client`, beside `gnum`. Automatic `uid` injection is disabled when AK/SK is the active identity.\n\nOptional advanced passthrough variables:\n\n- `MEITU_OPENAPI_PASSTHROUGH_HEADERS` — override passthrough header allowlist\n- `MEITU_OPENAPI_CONTEXT_EXTRA_JSON` — merge custom JSON fields into `context`\n- `MEITU_OPENAPI_MCP_SERVER_PROJECT` — override `context.mcp_server_project`\n- `MEITU_OPENAPI_MCP_SERVER_ADDR` — override `context.mcp_server_addr`\n- `MEITU_OPENAPI_AUTO_GENERATE_IDS` — auto-generate `request_id` / `trace_id` when missing\n- `MEITU_OPENAPI_FORWARD_ORIGINAL_AUTH_AS` — preserve the upstream auth value in a secondary header such as `X-Original-Authorization`\n\nExample:\n\n```bash\nexport MEITU_OPENAPI_HEADER_X_MTCC_CLIENT='eyJhcHBfaWQiOiIxMjMiLCJiaXpfaWQiOiI0NTYiLCJ1aWQiOiJ1c2VyLTEiLCJnbnVtIjoiZGV2aWNlLWdudW0tMDAxIn0='\nexport MEITU_OPENAPI_HEADER_ISSTRESSTEST=true\nexport MEITU_OPENAPI_HEADER_X_REQUEST_ID=req-demo-001\nexport MEITU_OPENAPI_HEADER_MT_MCP_TASK_ID=trace-demo-001\nexport MEITU_OPENAPI_MCP_FROM=app\nexport MEITU_OPENAPI_MCP_BIZ_LINE=default\n```\n\nFor the detailed implementation spec used by this repository, see `docs/mcp/cli-mcp-passthrough-spec.md`.\n\n## Usage\n\nVerify credentials:\n\n```bash\nmeitu auth verify --json\n```\n\nManage IAM session explicitly:\n\n```bash\nmeitu auth login --json\nmeitu auth refresh --json\nmeitu auth status --json\nmeitu auth use iam --json\nmeitu auth use auto --json\n```\n\nTool commands:\n\n- `video-motion-transfer`\n- `image-to-video`\n- `text-to-video`\n- `video-to-gif`\n- `image-generate`\n- `image-poster-generate`\n- `image-edit`\n- `image-upscale`\n- `image-beauty-enhance`\n- `image-face-swap`\n- `image-try-on`\n- `image-cutout`\n- `image-grid-split`\n\nBehavior in short:\n\n- task routing and task types are handled inside the CLI\n- local file paths and remote URLs are supported for media inputs\n- each subcommand exposes flags derived from the same tool metadata the CLI ships with; run `meitu <command> --help` for the exact options\n\nParameter wrapping rules (for JSON payloads sent to the API):\n\n- values from `parameter_input_alias` are wrapped as `{\"parameter\": {...}}`\n- values from `params_input_alias` stay at the top level of `params`\n- when a tool has no extra params, the CLI sends an empty string for `params`\n\nRun cutout with a local file:\n\n```bash\nmeitu image-cutout \\\n  --image ./test.jpg \\\n  --model_type 2 \\\n  --output ./outputs/cutout.png \\\n  --json\n```\n\nRun beauty enhancement with the default beauty mode:\n\n```bash\nmeitu image-beauty-enhance \\\n  --image ./portrait.jpg \\\n  --json\n```\n\nRun beauty enhancement with stronger beauty mode (flag name matches the OpenAPI field spelling):\n\n```bash\nmeitu image-beauty-enhance \\\n  --image ./portrait.jpg \\\n  --beatify_type 1 \\\n  --json\n```\n\nRun image generation with a prompt only:\n\n```bash\nmeitu image-generate \\\n  --prompt \"make it cinematic\" \\\n  --json\n```\n\nRun virtual try-on with the required media inputs:\n\n```bash\nmeitu image-try-on \\\n  --clothes_image_url ./cloth.png \\\n  --person_image_url ./person.png \\\n  --replace upper \\\n  --need_sd 1 \\\n  --json\n```\n\n## Advanced Generate Usage\n\nThe low-level `generate` command is still available when you need to call a custom task directly.\n\nRun intelligent cutout with a local file through the low-level command:\n\n```bash\nmeitu generate \\\n  --task /v1/photo_scissors/sod \\\n  --image-file ./test.jpg \\\n  --params-json '{\"parameter\":{\"nMask\":false,\"model_type\":0}}' \\\n  --download-dir ./outputs \\\n  --json\n```\n\nRun a task with an explicit `init_images` array:\n\n```bash\nmeitu generate \\\n  --task /v1/photo_scissors/sod \\\n  --task-type mtlab \\\n  --init-images-json '[{\"media_data\":\"./test.jpg\",\"resource_type\":\"file\",\"profile\":{\"media_profiles\":{\"media_data_type\":\"url\"},\"version\":\"v1\"}}]' \\\n  --params-json '{\"parameter\":{\"nMask\":false,\"model_type\":0}}' \\\n  --download-dir ./outputs \\\n  --json\n```\n\nRun a task with a remote image URL:\n\n```bash\nmeitu generate \\\n  --task /v1/photo_scissors/sod \\\n  --image-url https://example.com/test.jpg \\\n  --params-json '{\"parameter\":{\"nMask\":false,\"model_type\":0}}' \\\n  --json\n```\n\nWait for an existing task manually:\n\n```bash\nmeitu task wait t_xxx --output ./outputs/result.png --json\n```\n\nDownload behavior:\n\n- `--output <paths...>` saves files to the exact paths you provide\n- `--download-dir <dir>` saves files into a directory and lets the CLI generate filenames\n- if neither option is provided, the CLI only returns the backend response and does not download files\n- `--output` maps files by the order of `data.result.urls`\n- `--output` and `--download-dir` cannot be used together\n\nExamples:\n\n```bash\nmeitu image-face-swap \\\n  --head_image_url https://example.com/head.png \\\n  --sence_image_url https://example.com/scene.jpg \\\n  --prompt \"swap face\" \\\n  --output /tmp/face-swap.png \\\n  --json\n```\n\n```bash\nmeitu some-command \\\n  ...other args... \\\n  --output /tmp/result-1.png /tmp/result-2.png /tmp/result-3.png \\\n  --json\n```\n\nWhen downloads happen, JSON output includes:\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"success\",\n  \"data\": {\n    \"result\": {\n      \"urls\": [\n        \"https://example.com/result.png\"\n      ]\n    }\n  },\n  \"downloaded_files\": [\n    {\n      \"url\": \"https://example.com/result.png\",\n      \"saved_path\": \"/tmp/result.png\"\n    }\n  ]\n}\n```\n\n## Task Behavior\n\n- `meitu generate` automatically polls `/api/v1/sdk/status` when the create call returns a `task_id`\n- default polling interval: `1s`\n- `status = 0`, `1`, or `9` means the task is still running\n- `status = 10` means the task succeeded\n- `status = 2` means the task failed\n- any other non-success status is treated as a failure state\n\nWhen `--output` or `--download-dir` is used, the CLI downloads result URLs locally and returns `downloaded_files` in JSON output.\n\n## Skills Package Installer\n\n`meitu skills install meituhub-skills` is a bootstrapper for the official\n`meituhub-skills` package. It is intentionally conservative:\n\n- **Explicit only** — install/update only run when invoked by the user. Tool\n  commands such as `meitu image-edit` never auto-install or auto-upgrade\n  skills.\n- **No remote script execution** — the CLI never executes scripts shipped\n  inside the package. It only writes files into the local skills directory.\n- **Path-traversal protection** — the bundled tar.gz extractor rejects\n  absolute paths, parent traversal (`..`), Windows-rooted paths, NUL bytes,\n  symlinks, hardlinks, and device entries. Only regular files and directories\n  are extracted.\n- **Checksum verification** — when the registry entry includes `sha256`, the\n  download is verified before extraction. Local archives report the computed\n  digest in their result payload for auditing.\n- **Manifest validation** — the package must contain `SKILL.md` and a parseable\n  `PACKAGE_MANIFEST.json` after extraction; otherwise the install is aborted.\n- **Compatibility check** — when the manifest declares `compatibility.meitu_cli`,\n  the CLI rejects installs that don't satisfy the version range.\n- **Atomic replace with backup** — existing installs are renamed to\n  `<install-dir>.bak.<timestamp>` before the new directory is moved into place.\n  Use `--force` to drop the backup.\n- **Bounded download size** — packages over 256 MB are rejected.\n\nThe corresponding diagnostics command, `meitu skills doctor`, validates:\n\n- `meitu-cli` version\n- presence of credentials (env or the selected partition's `credentials.json`)\n- live `meitu auth verify` round-trip against the configured OpenAPI host\n- presence and freshness of the local tool registry cache\n  (`~/.meitu/partitions/<partition>/tool-registry.json`)\n- presence and structure of `~/.meitu/skills/meituhub-skills`\n- compatibility of the installed skill pack with the current `meitu-cli`\n\nRelated design documents (in this repository):\n\n- `docs/api/skills-package-registry-api-handoff.md` — server-side API spec for\n  the Skills Package Registry endpoint that `meitu skills install/update`\n  consumes. Hand this to backend engineers for registry-side implementation.\n\n## Development\n\nFrom the repository root:\n\n```bash\nnpm install\nnpm test\n```\n\nIf you want to preview the npm package contents locally:\n\n```bash\nnpm pack --dry-run --cache /tmp/meitu-node-npm-cache\n```\n","readmeFilename":"README.md"}