{"_id":"@deeeed/metamask-recipe-runner","_rev":"10-ed5a54caf81683fd921619bc51ad9018","name":"@deeeed/metamask-recipe-runner","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.0":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.0","_id":"@deeeed/metamask-recipe-runner@0.1.0","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/abretonc7s/metamask-recipe-runner#readme","bugs":{"url":"https://github.com/abretonc7s/metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"./bin/metamask-recipe"},"dist":{"shasum":"94f17a9c589c8ff38ba7e905010dc47e8187f2c2","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.0.tgz","fileCount":73,"integrity":"sha512-ZKteoSWpWxmrOnFAu2Wyjdu64yngzgS2A3HLPUNtgZJgsvgNqlDRLISa5AcfGUx2AWApAiaV1YC+0sul2RRyoA==","signatures":[{"sig":"MEYCIQC5bwHaFLmn8alQ0QCb05PijYgzDd6N5wzueTXvcly5fgIhAJK5GCdepo/iIH2HFMyiCssU3O6vq4Ubo/IuyozbyqrH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550146},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"31fe746f0384c961510d9289efac729c84b7e707","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/abretonc7s/metamask-recipe-runner.git","type":"git"},"directories":{},"dependencies":{"tsx":"^4.19.0","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.0_1780665507786_0.3739734969660333","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.1","_id":"@deeeed/metamask-recipe-runner@0.1.1","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/abretonc7s/metamask-recipe-runner#readme","bugs":{"url":"https://github.com/abretonc7s/metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"d1345459963f6fd82a696599dcfb360faec806eb","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.1.tgz","fileCount":94,"integrity":"sha512-CYbN21RZApmeSiolmvJXM92Xc9hEexOP0InvGBuIHmw6c3yAVzv0MiRikAWieqBSFWvowPZUBvu8swOKAoL8yw==","signatures":[{"sig":"MEYCIQCqqDz4mrc6C+rXEkfZs6rbOt2jUOYPZtEG3kCUwhjClQIhAOi66bAldCHy325PUNGA8lRD3nSdcFUuTBdKRA2RvQCn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":808461},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"14103911426ed7357bb936b4181309d9c2a777d8","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/abretonc7s/metamask-recipe-runner.git","type":"git"},"_npmVersion":"11.12.1","description":"MetaMask-specific runner for Recipe Protocol v1. Protocol reference: https://farmslot.io/docs/reference/recipe-protocol-v1.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"tsx":"^4.19.0","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.1_1780759349752_0.9588498574969819","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.2","_id":"@deeeed/metamask-recipe-runner@0.1.2","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/abretonc7s/metamask-recipe-runner#readme","bugs":{"url":"https://github.com/abretonc7s/metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"8ff9b8cd06b609c4e8796a42d5443f99fda451bd","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.2.tgz","fileCount":95,"integrity":"sha512-HYh2eYIb2+Y29nZgAv87Z+yxdKKht9Mw0aBOr19IbuyxYZVTNEb53AabVQNh7+p1R/SLs7pArNXoz1WCsribKA==","signatures":[{"sig":"MEQCIC5MEKJfdPmQVMESYcEcLmp0wcR/EC0GjkOEXGU2CRmoAiAnGpeGdysN1RyDhv/FOFBiSSu+xjZVdBgBwPzbZ9lPXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":822814},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"gitHead":"ec579ff0422980405e5a8807ad1a0bd8b0aa4d4b","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/abretonc7s/metamask-recipe-runner.git","type":"git"},"_npmVersion":"11.12.1","description":"MetaMask-specific runner for Recipe Protocol v1. Protocol reference: https://farmslot.io/docs/reference/recipe-protocol-v1.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"tsx":"^4.19.0","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.2_1781069140178_0.2678954836510723","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.3","_id":"@deeeed/metamask-recipe-runner@0.1.3","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/abretonc7s/metamask-recipe-runner#readme","bugs":{"url":"https://github.com/abretonc7s/metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"8218544799c95c7acd7209de3dc528bc6c58bba5","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.3.tgz","fileCount":123,"integrity":"sha512-szhuLZXShl36dTc/+DWzWBUnqNUCbKOVKsl/b7ru5OIkVKAYkK9Bx5PjMO6uG/teM6gHkB3KsDmrqzrsq7ZoTQ==","signatures":[{"sig":"MEUCIBK6/hNPmkQ8FKO5FDGAsmZfdoikPjGBQei4IKRaEAchAiEA62RrG4zS6ID9gp77Natg8HbOuRjEaeoJR5WAI8jqdPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":975443},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"}},"scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/abretonc7s/metamask-recipe-runner.git","type":"git"},"_npmVersion":"11.16.0","description":"Run Recipe Protocol checks against a local MetaMask Mobile or Extension checkout.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"tsx":"^4.19.0","viem":"^2.52.2","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.3_1781307417135_0.8036681504521026","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.4","_id":"@deeeed/metamask-recipe-runner@0.1.4","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"8325c0160fdd4c8a00b18ea3db5051f92ba35bb1","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.4.tgz","fileCount":131,"integrity":"sha512-MLSB1DpR0uv/WWpPcbmAJ2Q3/NE2sZbNb0ubHcrwV2mKqWIiHn/9YSDD8BHczqi8xqVM+Wwckqa4a49gPNMdrg==","signatures":[{"sig":"MEUCIC8ISGa02BvdCKtHuos/HA0lu9XEWTCO3X8NEeY7/9CTAiEA0oFkP8+pN5zIGXKmLsrWQY7sqow3QQPApg3lWjuGgdc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1076180},"main":"./runner/src/index.ts","type":"module","types":"./runner/src/index.ts","exports":{".":{"types":"./runner/src/index.ts","import":"./runner/src/index.ts"}},"gitHead":"5bfc69705f9affe4bc77b9baa2d7ee5d9ec5847f","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git","type":"git"},"_npmVersion":"10.9.4","description":"Run Recipe Protocol checks against a local MetaMask Mobile or Extension checkout.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"tsx":"^4.19.0","viem":"^2.52.2","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.4_1782306631854_0.6080510362418532","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.5","_id":"@deeeed/metamask-recipe-runner@0.1.5","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"416c543ff1187513f56c187ec0abbef4814658d4","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.5.tgz","fileCount":144,"integrity":"sha512-juTTMbTgcnCBuvHWjDLwnI6qR9yw5GliuTd4+vrD2YlA0yhgSEkPWyz9yZZIh/KUoypX9zNYT/U5QXligpTM2g==","signatures":[{"sig":"MEUCIQCI2Thc3Dw9QNm+65wVvuy5hXkIPiSOAKcRWcQ7L9bfDQIgAvPJwRbtTWqCEDD7vzGUGt+TNqZHO+ufNlVi0VoriCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215404},"main":"./runner/src/index.ts","type":"module","types":"./runner/src/index.ts","exports":{".":{"types":"./runner/src/index.ts","import":"./runner/src/index.ts"}},"gitHead":"4486466ef0457dc35f37078bdefeb1c9e460ee9e","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git","type":"git"},"directories":{},"dependencies":{"tsx":"^4.19.0","viem":"^2.52.2","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.5_1782485345678_0.4275727195199903","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.6","_id":"@deeeed/metamask-recipe-runner@0.1.6","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"128b095dfe66bb770711ef5c916eb0b1ed0f326e","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.6.tgz","fileCount":145,"integrity":"sha512-76SHWJKzu2WVMTIIKx05eav4KGWavupzIsjSq59djGA9PJRyMLc2tqewiGhRoz7JVQMKXxg+KTkvVQKCuHAD+Q==","signatures":[{"sig":"MEUCIQDUhojS565sXwSLULm6x0RtAuuoMYblPubJUObrG5hW8QIgbXfM+XbILBDhu9GyA3EPDCgrEm0bCzOsq7wfHijzQdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1226678},"main":"./runner/src/index.ts","type":"module","types":"./runner/src/index.ts","exports":{".":{"types":"./runner/src/index.ts","import":"./runner/src/index.ts"}},"gitHead":"f9905377ef86b6d22948941f76c1a7d06363bdd1","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Run Recipe Protocol checks against a local MetaMask Mobile or Extension checkout.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"tsx":"^4.19.0","viem":"^2.52.2","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.6_1782596352067_0.25959277614003073","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.7","_id":"@deeeed/metamask-recipe-runner@0.1.7","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"8018c8be1cdf212db8eed211a450231523f9feb0","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.7.tgz","fileCount":145,"integrity":"sha512-BO9ZbOAH8gES/hYdQpa9JENLIR5TnimY4e1bpuPrzKhsjY8nIrWrY8Vq6FVhM92eUfC9rp3n5fK0dVgNa8YCIQ==","signatures":[{"sig":"MEYCIQD6T1lSjDGnUJ2BC3U2o1Yp7suKkw+XU/wzuh6if8X+1QIhAMkL7e2XeapcgxnppuYwy/tWFXU4K93DyNCgc+zDYEvN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1228379},"main":"./runner/src/index.ts","type":"module","types":"./runner/src/index.ts","exports":{".":{"types":"./runner/src/index.ts","import":"./runner/src/index.ts"}},"scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Run Recipe Protocol checks against a local MetaMask Mobile or Extension checkout.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"tsx":"^4.19.0","viem":"^2.52.2","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.7_1782657183880_0.5908990299780359","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.8","_id":"@deeeed/metamask-recipe-runner@0.1.8","maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"bin":{"metamask-recipe":"bin/metamask-recipe"},"dist":{"shasum":"8e2fc7081cbb2f033e3c142a237f02e8db7f079f","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.8.tgz","fileCount":147,"integrity":"sha512-/AzKvPl1+dtRy19FBkYdS1R3fHjWSFsM6bZo8UJDPdWtEShM0amBk5xm5T4nquaLTQqI/XLGaE/K/hmknm+QKw==","signatures":[{"sig":"MEUCIBQDTW+CeZ/WosKOPinCN/Ru71C8iGeAtTEoijtwnLoBAiEAmOsHewDUVSbBkKB6OFhBCWe5Uld8+lDwXQ8ghcrV9BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1241981},"main":"./runner/src/index.ts","type":"module","types":"./runner/src/index.ts","exports":{".":{"types":"./runner/src/index.ts","import":"./runner/src/index.ts"}},"gitHead":"4ad9b77fbb93458a87615fe019292782f28bbfc1","scripts":{"check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","dev:link-farmslot":"node scripts/link-local-farmslot.mjs","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json"},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"repository":{"url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git","type":"git"},"directories":{},"dependencies":{"tsx":"^4.19.0","viem":"^2.52.2","@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.3","devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metamask-recipe-runner_0.1.8_1782836778161_0.4872471049598883","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@deeeed/metamask-recipe-runner","version":"0.1.9","type":"module","bin":{"metamask-recipe":"bin/metamask-recipe"},"scripts":{"dev:link-farmslot":"node scripts/link-local-farmslot.mjs","check":"node scripts/check.mjs","self-test":"bin/metamask-recipe self-test","manifest:mobile":"bin/metamask-recipe manifest --adapter mobile --json","manifest:extension":"bin/metamask-recipe manifest --adapter extension --json","check:syntax":"find . -name '*.mjs' -print0 | xargs -0 -n1 node --check"},"dependencies":{"@farmslot/protocol":"^0.6.0","@farmslot/recipe-harness":"^0.3.0","tsx":"^4.19.0","viem":"^2.52.2"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0"},"main":"./runner/src/index.ts","types":"./runner/src/index.ts","exports":{".":{"types":"./runner/src/index.ts","import":"./runner/src/index.ts"}},"publishConfig":{"access":"public"},"packageManager":"yarn@4.5.3","repository":{"type":"git","url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git"},"bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","gitHead":"36a1120d1b93a0183da59ba8e55306cb80283ffa","_id":"@deeeed/metamask-recipe-runner@0.1.9","description":"Run Recipe Protocol checks against a local MetaMask Mobile or Extension checkout.","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-k/hyZUWeMvFYnBfVKqZG5UGjhYDWpnkWBfr7Ur0QnvYIHlAEwmd9EztpRm3kzQ2kY8oCY+pbp1n7gRzW7QYUvg==","shasum":"af307c959e001052b9e8349b66a925fc04a2bdd6","tarball":"https://registry.npmjs.org/@deeeed/metamask-recipe-runner/-/metamask-recipe-runner-0.1.9.tgz","fileCount":147,"unpackedSize":1243518,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEDm9gHPbmHk5iRvy+ALHvJGE0mwcnuUxObRO4W108L3AiAjfW4JhMjBqJFK6svCSoitfd8ovMJy1GEm/pCcPevFhg=="}]},"_npmUser":{"name":"abreton","email":"abreton@siteed.net"},"directories":{},"maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/metamask-recipe-runner_0.1.9_1782916194914_0.915474746110424"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T13:18:27.620Z","modified":"2026-07-01T14:29:55.274Z","0.1.0":"2026-06-05T13:18:27.997Z","0.1.1":"2026-06-06T15:22:29.907Z","0.1.2":"2026-06-10T05:25:40.341Z","0.1.3":"2026-06-12T23:36:57.295Z","0.1.4":"2026-06-24T13:10:32.067Z","0.1.5":"2026-06-26T14:49:05.884Z","0.1.6":"2026-06-27T21:39:12.253Z","0.1.7":"2026-06-28T14:33:04.005Z","0.1.8":"2026-06-30T16:26:18.316Z","0.1.9":"2026-07-01T14:29:55.125Z"},"bugs":{"url":"https://github.com/MetaMask/experimental-metamask-recipe-runner/issues"},"homepage":"https://github.com/MetaMask/experimental-metamask-recipe-runner#readme","repository":{"type":"git","url":"git+https://github.com/MetaMask/experimental-metamask-recipe-runner.git"},"maintainers":[{"name":"abreton","email":"abreton@siteed.net"}],"readme":"# MetaMask Recipe Runner\n\nRun Recipe Protocol checks against a local MetaMask Mobile or Extension checkout.\n\nOne package, two responsibilities:\n\n- **Recipe layer:** manifests, recipes, Mobile/Extension adapters, proof output.\n- **Runtime layer:** start/reuse Metro or Chrome, seed fixtures, wait for readiness.\n\nFarmslot and skills are wrappers around this CLI; they should not copy runner\nlogic.\n\n## Quick start\n\n```bash\n# 1) Prepare a runtime\nmetamask-recipe mobile prepare --target <metamask-mobile> --platform ios --port 8062 --simulator mm-2\nmetamask-recipe extension prepare --target <metamask-extension> --cdp-port 6662\n\n# 2) Run a recipe\nmetamask-recipe run recipe.json --adapter mobile --project-root <metamask-mobile> --artifacts-dir /tmp/recipe-artifacts --json\n```\n\nOutputs: `summary.json`, `trace.json`, screenshots, logs, and an artifact\nmanifest.\n\n## Mental model\n\n```text\nmetamask-recipe prepare   # runtime/orchestration: app is ready\nmetamask-recipe run       # runner/proof: actions execute and evidence is saved\n```\n\nDo not mix those layers. library/ = what recipes ARE (recipes, actions,\nmanifests — the content). runner/ = what EXECUTES them (engine, verify,\nevidence). orchestration/ = what CONTROLS the app and its instances (start,\nwindows, wallet state, health, ports, parallel).\n\n## Useful commands\n\n```bash\n# Capabilities\nmetamask-recipe manifest --adapter mobile --json\nmetamask-recipe manifest --adapter extension --json\nmetamask-recipe actions --adapter mobile --json\nmetamask-recipe actions --adapter extension --json\n\n# Runtime status\nmetamask-recipe mobile runtime-status --target <mobile> --port 8062 --json\nmetamask-recipe extension runtime-status --target <extension> --cdp-port 6662 --json\nmetamask-recipe ensure-ready --adapter extension --target <extension> --cdp-port 6662 --json\n\n# Operator CLI (via dotfiles `recipe` shim → mm-recipe / mme-recipe)\nrecipe                       # home status + suggested next commands\nrecipe up                    # decide + run minimum work to reach ready\nrecipe ports                 # slot ports, runtime paths, tmux hint\nrecipe rebuild               # extension: clean webpack + browser (2-8 min)\nrecipe refresh               # fast incremental update when watcher is active\nrecipe logs                  # last ~10 build events (compact TUI)\nrecipe logs --full           # raw tail -f of webpack.log / metro.log\nrecipe debug                 # mobile: RN DevTools; extension: Chrome DevTools\nrecipe debug worker          # extension: service worker DevTools\nrecipe dev-menu              # mobile: React Native developer menu\n```\n\nSet `RECIPE_LOG_UI=compact|full|quiet` (default `compact`) and `RECIPE_LOG_EVENTS=10`\nto tune the compact view during `recipe watch`, `recipe rebuild`, and Metro startup.\n\n## Layout\n\n```text\nbin/            CLI and platform convenience commands\nrunner/         what EXECUTES recipes: engine glue (runner/src) +\n                per-platform verify (engine, verify, evidence)\norchestration/  what CONTROLS the app and its instances: launch/live/\n                watch/windows/wallet state/health/inject/cleanup per\n                platform, shared lib, manifest.json + doctor.mjs\nlibrary/        what recipes ARE: recipes/ (recipe JSONs), actions/\n                (per-platform implementations), manifests/ (capability)\nscripts/        dev tooling (yarn check, local farmslot link, e2e validation)\ndocs/           details when this README is not enough\n```\n\nDefaults for installed harness/runtime paths live in\n`orchestration/lib/path-defaults.json`.\n\n## Runtime-readiness ownership\n\nGeneric readiness mechanics live in `@farmslot/recipe-harness` (0.3+):\n\n- `@farmslot/recipe-harness/runtime/deps-readiness` — install fingerprint + baseline\n- `@farmslot/recipe-harness/runtime/log-analysis` — bundle-log boundaries, unresolved-module scoping\n- `@farmslot/recipe-harness/runtime/metro-probe` — Metro `/status` reachability\n\nThis repo adds **MetaMask adapters only**: `orchestration/mobile/deps-markers.ts`,\n`orchestration/mobile/runtime-decision.ts`, `orchestration/extension/runtime-decision.ts`,\nand shell launch in `bin/mm-recipe` / `bin/mme-recipe`. Do not re-copy harness\nprimitives into `orchestration/lib/`. CI installs harness from npm — publish\n`@farmslot/recipe-harness` before bumping the dependency here.\n\n## Runtime notes\n\n- `tmux` is recommended for long-lived Metro/webpack processes; standalone use\n  falls back to detached `nohup` where possible.\n- Mobile may inject a local development bridge/HUD into older checkouts. Do not\n  commit those product patches.\n- Extension does not patch product source; it drives `dist/chrome` through Chrome\n  CDP.\n\n## Validate changes\n\n```bash\nyarn check\nbash -n bin/metamask-recipe bin/mm-recipe bin/mme-recipe orchestration/{mobile,extension,core}/*.sh runner/{mobile,extension}/verify.sh\nnode --check orchestration/extension/inject.mjs orchestration/extension/cleanup.mjs orchestration/extension/readiness.mjs orchestration/extension/launch-browser.cjs orchestration/lib/open-debug.mjs orchestration/lib/cli-home.mjs orchestration/lib/log-tui.mjs orchestration/lib/progress.mjs orchestration/lib/recipe-paths.mjs scripts/check.mjs\n```\n\nMore detail: [Architecture](docs/architecture.md), [Package boundaries](docs/package-boundaries.md), [Runtime file conventions](docs/runtime-file-conventions.md).\n","readmeFilename":"README.md","description":"Run Recipe Protocol checks against a local MetaMask Mobile or Extension checkout."}