{"_id":"@chelokot/sneak-out-patches","_rev":"23-6634432a6a1605e6f02638077101f9d0","name":"@chelokot/sneak-out-patches","dist-tags":{"latest":"0.8.1"},"versions":{"0.1.0":{"name":"@chelokot/sneak-out-patches","version":"0.1.0","_id":"@chelokot/sneak-out-patches@0.1.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"69eb60ef57431717b5e9d7c4197a7d03d4defd90","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.1.0.tgz","fileCount":35,"integrity":"sha512-xFhIqJb//z0rhXKmDrpyH5QmzhYvPk/r65I1D/qNCWTJeFH+NhUJkXaT0XtQifJf6NU5cQxAv3uVPRZeYThMNA==","signatures":[{"sig":"MEQCIBtv9nDsz1Ph64vdyqmQxT97jJmfqeeQndrAb4mxn6FtAiA5n2giMy1gOr2yjyuymE0mZkZNUazNLb/TGktfgcJg9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":944749},"type":"module","engines":{"node":">=20"},"gitHead":"2917a2308a01947cff74ed9a7e85a89f324e8c00","scripts":{"check":"npm run mods:build && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"},"_npmVersion":"10.9.3","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.1.0_1785704468949_0.366636323997128","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@chelokot/sneak-out-patches","version":"0.1.1","_id":"@chelokot/sneak-out-patches@0.1.1","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"5732966747c679ea89423acf8bff87f9b6c9ae52","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.1.1.tgz","fileCount":35,"integrity":"sha512-I6/oltKMAfXZ2KDAV8ZRsjiNna2x6AzwCo/DU9weoYf97xeJVAWhHfIMbpr8PpyHVwS7iJB9CEMBdyqkMDfdPw==","signatures":[{"sig":"MEUCIQDavzBnwlzvHH/6r7///xlYDmsFBSyfQM6jiWQUpSi3dgIgaBKKPNIxKPHHJ/n6Cvg+UvGpfe6XUkRgjhsitJdJHB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":948475},"type":"module","engines":{"node":">=20"},"scripts":{"check":"npm run mods:build && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"},"_npmVersion":"10.9.3","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.1.1_1785712021664_0.20527069829955913","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@chelokot/sneak-out-patches","version":"0.1.2","_id":"@chelokot/sneak-out-patches@0.1.2","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"8edcff348b1cc260ccc7a5e407e1f5aad223fce9","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.1.2.tgz","fileCount":35,"integrity":"sha512-KJw4PqLN+mxNQwk/Y1npq7RDdzVPJgUOUW6h9P7Feg2mS5q4ogxql4hpc37mO49V6YvkygdXmTeTdr16Gd29eQ==","signatures":[{"sig":"MEYCIQDwVn5DMMPJWT2aP8pdL/AmMnq1PHyChqfM4Zh8oUz7aAIhAISq4LGIUV+yXe3reqepSTNsQvoOfeNoT7WVlUkrFsq1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":948503},"type":"module","engines":{"node":">=20"},"scripts":{"check":"npm run mods:build && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"},"_npmVersion":"10.9.3","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.1.2_1785712214169_0.37062249817122117","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@chelokot/sneak-out-patches","version":"0.2.0","_id":"@chelokot/sneak-out-patches@0.2.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"9053fb396697b31be11e66b41fa61d79f0c168b9","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.2.0.tgz","fileCount":43,"integrity":"sha512-YjMz+64O5Zv3Mha10G+ob8AP3WOkJhn/WASKd4kZFV/IMT71mj0aZ59vKwp3HA8uuH9DYKSnQxjVeqGLc+ucoQ==","signatures":[{"sig":"MEQCIFsgrx4izVi4obLPG/Fmbkt3ae60xfyf99/VLzFfnYtaAiAYdxldxbyjli0oGAGKCQzJEKlxaoAuzFsAQ3cGqlVi/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1077639},"type":"module","engines":{"node":">=20"},"gitHead":"e08c4df6107b87ee4c16f11c3d2525a4ef8a0202","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.2.0_1785745649699_0.42716628451490024","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@chelokot/sneak-out-patches","version":"0.2.1","_id":"@chelokot/sneak-out-patches@0.2.1","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"75f33d330ca617f02ed8ab009cde2e5302cb05bc","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.2.1.tgz","fileCount":43,"integrity":"sha512-bkRdwDeEWoLfoJNQhfEfahnf3CSbHI8FOAMfPAwOuhlf3TmXa6JUp0y1lE0sII3g7RKmMTSbYbUqYgP9WlN5PA==","signatures":[{"sig":"MEYCIQD5ORpzUjo/CC5+Es/YbDVq6PTVLoaaePM/0s08ehb6fQIhAJsNF4Y/7kOsQ8Y3MuWqhfOXBWwmzTBx1y+e5DSvkII6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083783},"type":"module","engines":{"node":">=20"},"gitHead":"8d50314862478c7de5fccbe30a1ad1ffacf5656a","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.2.1_1785749489401_0.08552426948930081","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@chelokot/sneak-out-patches","version":"0.3.0","_id":"@chelokot/sneak-out-patches@0.3.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"f5659068ec0ac630e4c295bdb940d2894bd4a888","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.3.0.tgz","fileCount":47,"integrity":"sha512-Tghjc/sKPtdvYGkWBo6GXZ02v1yiBqTEp/VmSKpGsX9fjmcw3bekCEPpZ8F9AmIYN0xRsezSZzqECD03qz43DA==","signatures":[{"sig":"MEUCIQCrsau8iY00K2KVaJA8/cLk/ID7gEInPqaPh01fviHUwgIgR498qJp1aL7QxeGn5uRXFKnhHDEMVFYp3YwFR3R4DTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1131729},"type":"module","engines":{"node":">=20"},"gitHead":"20ccc5f752cb7536501fd5f223326048635a8103","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.3.0_1785759203066_0.7677696812000563","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@chelokot/sneak-out-patches","version":"0.3.1","_id":"@chelokot/sneak-out-patches@0.3.1","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"122b5bef7fb53dc7afd91829da90c9cd975f29d7","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.3.1.tgz","fileCount":47,"integrity":"sha512-VcUBUkp47zziY9H2weMZJlamIqGbzJvgdiKGNPKdnuxWiEfDqPYIRdry17DG0f0dVgptOhxqPCdwbmMyOjVd3Q==","signatures":[{"sig":"MEQCIGa9yDURJLc1ZVKbcDTcgjSiG/0B6amovGF3WvqnL0HbAiA/xf1ym4rHnyriZb1czDyvlGLiPh3ubSxGHiM/EujTEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1131217},"type":"module","engines":{"node":">=20"},"gitHead":"5614ecbef70bf8f476e08713657c4660a548b2ec","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.3.1_1785760734030_0.43339861537923485","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@chelokot/sneak-out-patches","version":"0.4.0","_id":"@chelokot/sneak-out-patches@0.4.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"78a58c62cbfbbd479c81f674250bd252e3685e42","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.4.0.tgz","fileCount":47,"integrity":"sha512-zzwzM0pQ3G9hi7KxtyjkUBEcWv55gXYyJVufH/K7Edrd0E2pMujL/VU+LR1bzMrhFPz1RT/VsVrmvjIUlkTVkA==","signatures":[{"sig":"MEUCIQD6hCyB5N9e8MLHZlzcU9rsGNEcnL5ebTb0Mxuab78ZtgIgSjmUjIr/Nri/uhxMrYMuC3OFGTMkF+EkRH8S2+c1BMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1142605},"type":"module","engines":{"node":">=20"},"gitHead":"5f5c3e7f3e32912dcc047936f6433caf6b413548","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.4.0_1785772255757_0.9961693932336313","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@chelokot/sneak-out-patches","version":"0.5.0","_id":"@chelokot/sneak-out-patches@0.5.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"a3f72d96b7750c2545a3cfed417c8431ce4c1b77","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.5.0.tgz","fileCount":47,"integrity":"sha512-oX0zMPzdHDHdidEajjnYHAs0YNSCex69+MfSchiaLpOU4AZ+0+mcjx2WOfoBGG496Ey96G8xYjvjUxhDr6dP2Q==","signatures":[{"sig":"MEYCIQDKuT4+d0BP3A2Ck/SsY2FiLsuTpxekk3hjWMosVk2bYAIhAOv2DCSGTLRv9RvyuJ0IaTrDVDSXKm2572qYA5T4CDpo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1178091},"type":"module","engines":{"node":">=20"},"gitHead":"96d5321ce5c212a19ed772077ac589cd45b22c4d","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.5.0_1785828352790_0.08471788389017254","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@chelokot/sneak-out-patches","version":"0.6.0","_id":"@chelokot/sneak-out-patches@0.6.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"e05d97db0297168e6e4274b27355b0c7dac40abd","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.0.tgz","fileCount":51,"integrity":"sha512-YaNi5WHxTZOGRclEQEGHcD4m0PbGPZsVr3FeWnG5/Y/IeEjrvFyaFmqYWK51RISjB4ebxgHVe3kVcIZ1ixt5gQ==","signatures":[{"sig":"MEYCIQDTORWMh2dhIMdsmo6jMplKEEkC3Pa+r8ENJWTFR5BieQIhAMohj9etdY+WMYXrr7e8R4Sj+sKsHCM8lhPpSrP0sgNL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1213853},"type":"module","engines":{"node":">=20"},"gitHead":"21ab31f3ee78e1565a6b35770f7abf1176609814","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.0_1785836817836_0.9732926938673476","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@chelokot/sneak-out-patches","version":"0.6.1","_id":"@chelokot/sneak-out-patches@0.6.1","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"e7dd1c2c2aba87bb49412569b4ac03e3dd024edf","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.1.tgz","fileCount":51,"integrity":"sha512-sLDhT+FffD5b0HIWWocBD7UKONZb46q/r8U150xeTTCQNSxWZ+ImUstERg2/wgFxvAPZpZJ1PTCcn4JRw9O/2g==","signatures":[{"sig":"MEYCIQDvGIliVoaYkuGWCYS13XAk4GkwTQQGkHTrmjavGgJLUwIhANamhoChJGnVDRttX15InYoHwyyPU8VhES2epHl2ASql","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1213853},"type":"module","engines":{"node":">=20"},"gitHead":"7025efb0da9e250d414fb1c097fc6348195225a3","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.1_1785838194763_0.24984975993500091","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@chelokot/sneak-out-patches","version":"0.6.2","_id":"@chelokot/sneak-out-patches@0.6.2","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"9e3740f0e18cfb3c8206bae0e0136d53fafccbfe","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.2.tgz","fileCount":51,"integrity":"sha512-0uQcFJi4+u7nVr1fM1KALqhsMOen6jgWrRnpAk80AC+bNhg5OOLygMD8SzqzlnkNhFhja3pFebqanxDB1XPvHQ==","signatures":[{"sig":"MEUCIH6mQ4sjBPiCShqVWebdgi6+iZBIFttROidxhT7gqwJ1AiEA6NwodL3hYrT5/YIIPl+WBwNB1dqylvRLWTLLHYtRs00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1220577},"type":"module","engines":{"node":">=20"},"gitHead":"4600839d21ee4f97cae4229679281d12d73c04ac","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.2_1785843171840_0.011966013730206226","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@chelokot/sneak-out-patches","version":"0.6.3","_id":"@chelokot/sneak-out-patches@0.6.3","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"d3095e0c7241271bc520f0fe9c3b33dd9bf39ebc","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.3.tgz","fileCount":51,"integrity":"sha512-eGSROQnc649nx/1oHVY6TTUglDI574TNb5mAeaMVhBnYTxzEXnqj2wJbfeXFMbqG0/tQnjB99d+/iz4QZe7kxA==","signatures":[{"sig":"MEUCIQC2qManIJusBqpD/MIUQp+ng1WRXMUQHVduyaw4nEp+2wIgLE5zg5AJccCOZ3ew9lHQPC9kKnrsl84bjZWs7YUuyHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1220530},"type":"module","engines":{"node":">=20"},"gitHead":"9d0084ff225ccb73fff64fe1488a9bc8c850cdac","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.3_1785845292768_0.4244637018182069","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@chelokot/sneak-out-patches","version":"0.6.4","_id":"@chelokot/sneak-out-patches@0.6.4","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"271cf6c7d367b6ea05d974b517d6fee10e24effe","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.4.tgz","fileCount":51,"integrity":"sha512-OlvtgeVAuGsBfk9th4rm075HL1PvvD8msS47rB7VtcsDixdm9/YqUNPyiPNqSd8MdIgbyfYceszaby6ftuHVNg==","signatures":[{"sig":"MEUCIQDv88ZS1zPHG5ldB6J8IDqgVZaZLL+AXRiXpDdjD8Jm4gIgBsFtbQi2tUVBRATG+hzp0qmVB8pqL+HJa0xSso8b/w8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1214898},"type":"module","engines":{"node":">=20"},"gitHead":"c8b35bc1c7c27613b91c44e09e3bb28ac766febb","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.4_1785861205737_0.18051404964326934","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@chelokot/sneak-out-patches","version":"0.6.5","_id":"@chelokot/sneak-out-patches@0.6.5","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"51ec37ef93c9e7c2794220fe55894823399fbd02","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.5.tgz","fileCount":51,"integrity":"sha512-A0E/YRPOeXFsvKCvG/Iw9xlSjOva9j8YlglKIDuUpUVGJLiP7qdSZXHKFGLqX7q3WQgrG7unEjQsKrQ3uuETkA==","signatures":[{"sig":"MEYCIQDi8U/6G3MuvZgvMPc8p+okl1ZKWP88bm/G61H2Gytr/wIhANdxXfF8eLtGAWXQgJYHtCUHUzV0ngcgkVjpu04MF1Z/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1219867},"type":"module","engines":{"node":">=20"},"gitHead":"0890d5a697362950cfac0038ff1bd7bddc53dd4c","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.5_1785863483334_0.384311941527834","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@chelokot/sneak-out-patches","version":"0.6.6","_id":"@chelokot/sneak-out-patches@0.6.6","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"791eec874b93667bacc3ef7ab86dad27a26b8e08","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.6.tgz","fileCount":51,"integrity":"sha512-xpgNFEculAb+67YoYRCw6i51H43Cz0gQQCWeSGLHt1zXKMnz90Ln9CA+CSXbYN2TlZ3R2qQo8BkjJYQyK9HIMg==","signatures":[{"sig":"MEUCIQDrWumOyI96wbUOp7XBe5GEZj5YKGBEuVqQoyKiZUBdsgIgXdBMYhE/huENytBCwa3aSWMFq1ouWLzDlKFGiULKANo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1222033},"type":"module","engines":{"node":">=20"},"gitHead":"1565adfdd8d71da93bc2be673b129d372aee54cd","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.6_1785877242735_0.7329563252659248","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@chelokot/sneak-out-patches","version":"0.6.7","_id":"@chelokot/sneak-out-patches@0.6.7","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"0e16e096e1525020903cc5232e777f197287f16c","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.7.tgz","fileCount":51,"integrity":"sha512-GAa+WG7PRpBoyS1Uu5xNhSCEAa5vnIRdZaI7NJj4YY0I8efZh0NtXFlOYVcBZwEI+YKRtDXcsHE7NcQgnYTOig==","signatures":[{"sig":"MEUCIQCdl07XjDRsq83g7oKBJGtNnMk2Mx+hEuJDYP+Uf3QlAwIgcfaaplo9sN3B5o/RL1XskGXMeWFj4FN/EHtx9GXm6Pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1226212},"type":"module","engines":{"node":">=20"},"gitHead":"f50a3f6718008793d58245dbebf9087761722d1a","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.7_1785881769332_0.6934736516301976","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@chelokot/sneak-out-patches","version":"0.6.8","_id":"@chelokot/sneak-out-patches@0.6.8","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"0693439b909309858012879bc34788b862535315","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.8.tgz","fileCount":51,"integrity":"sha512-bT6l5bABPrA1o7rZfMReT8rKtw3O5O36V2+awjieJ+GkYvbFgps5MDwdPYuHNltJO3apjXwZhcvqniOEwya3wQ==","signatures":[{"sig":"MEMCH3M/VAttAuyt7crQAPZjwmnrJ0fLv5Dx+6u/kBAuJvoCICaHJl8e/wizGT7wv+GqujVFtMfH3R/i39FckeeRe1vN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1228865},"type":"module","engines":{"node":">=20"},"gitHead":"98f0c49132f3cbd82049eb74d13a1a496315a69a","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.8_1785927154656_0.07596221046628404","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"@chelokot/sneak-out-patches","version":"0.6.9","_id":"@chelokot/sneak-out-patches@0.6.9","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"23132417899a348c127e4801d30dd00afb20bf7a","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.9.tgz","fileCount":51,"integrity":"sha512-w74yqVPulvT22p+ZIgpmWuLIy9LkijP5NJezy/Ia7agq4VYzn5OKY1kBXEz633G9E3HSH++013W9s5jmYUzU4Q==","signatures":[{"sig":"MEQCIGWPFH6CJhBiOGrxE1mlNMMSPXbL77p4s6HfYM3IxZAcAiAEEmJ7G656qMU6MvF0+lXFkUD3qU8OV7Zaix60iRk5wQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1228930},"type":"module","engines":{"node":">=20"},"gitHead":"ecd94241511e0fca6036c259fac73c10c53eed06","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.9_1785933986416_0.20327581894692237","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@chelokot/sneak-out-patches","version":"0.6.10","_id":"@chelokot/sneak-out-patches@0.6.10","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"4e788dcea8aa5c4795378655169c69d16f9e7c64","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.6.10.tgz","fileCount":51,"integrity":"sha512-OpleMqLXMNrd1yhfjYfyXxdvlHcSIGU6q+VQ9BU3tYCEEUJeL4xOwTV4AwzOzhMQu4RwH/4aWV7SkbBHZWvtiQ==","signatures":[{"sig":"MEUCIB5zJfCi9sA+x8l3l/psmKiM9YWGdZKvyqZ9jFTxvb62AiEA55GxhOCTnMd+tUsbof7t8S8WGHOGebE/6PfPOJkF9S8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.6.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1231823},"type":"module","engines":{"node":">=20"},"gitHead":"87a7c49b0e0d3ff3029d6c482cf2eea0412596ee","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","chair:geometry":"node scripts/run-python.mjs tools/chair_jump_geometry.py","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.6.10_1785947538971_0.1036001232607684","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@chelokot/sneak-out-patches","version":"0.7.0","_id":"@chelokot/sneak-out-patches@0.7.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"02fe3c92c510d3356960601fc176197c4dec7ba2","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.7.0.tgz","fileCount":51,"integrity":"sha512-9BIj4HxVFllINuySqLzzXbJv5qw0vMs5ATCprEuGtUpriay3/nHR9U62GggDkyTAEaMMuczU3llroEzy4W/ikA==","signatures":[{"sig":"MEQCIBf5lz5ESaYGcr11tw7ta3tHTqICL9JdLuLz3ibpNM12AiB8oLhVw4TWu+N8I3XIzbmgjnADDuAVcVS4H4BE9hxySQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1244145},"type":"module","engines":{"node":">=20"},"gitHead":"69b93fac15659507448073d5de37353cb3692ab7","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","chair:geometry":"node scripts/run-python.mjs tools/chair_jump_geometry.py","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.7.0_1785956150319_0.8665458192767079","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@chelokot/sneak-out-patches","version":"0.8.0","_id":"@chelokot/sneak-out-patches@0.8.0","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"homepage":"https://github.com/chelokot/sneak-out-patches#readme","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"dist":{"shasum":"3f0677393152a6fb17ef2d6f9b6f7ac9181c9b3a","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.8.0.tgz","fileCount":53,"integrity":"sha512-qk66GcvMl7fmWD95i7h9LoTbDXqkX38jUWSgRyX2Wsy6OXanWLifuuYr7j2y5XX7Yd17uUHxvFHd/GgtOIn/UA==","signatures":[{"sig":"MEQCID8887wUowZx+wQDGF+F147YVquWUme7mw1n71WOr1L0AiB6OzWMDSOR4KX5rav2SHUhJsyLSK5a5CY7iiBul2CBTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1321866},"type":"module","engines":{"node":">=20"},"gitHead":"c7b67a800cbeaad2407334d63971e19a4f88cedd","scripts":{"check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","chair:geometry":"node scripts/run-python.mjs tools/chair_jump_geometry.py","installer:test":"node --test tests/installer/install-uninstall.test.mjs","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","runtime:session":"node scripts/runtime-session.mjs","tooling:install":"node scripts/install.mjs","installer:payload":"node scripts/package-installer-payload.mjs","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","performance:analyze":"node scripts/analyze-performance-session.mjs","performance:session":"node scripts/performance-session.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"repository":{"url":"git+https://github.com/chelokot/sneak-out-patches.git","type":"git"},"_npmVersion":"11.15.0","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"fflate":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@10.9.0","_npmOperationalInternal":{"tmp":"tmp/sneak-out-patches_0.8.0_1786019281819_0.977578704003264","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@chelokot/sneak-out-patches","version":"0.8.1","description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","repository":{"type":"git","url":"git+https://github.com/chelokot/sneak-out-patches.git"},"type":"module","bin":{"sneakout-patches":"cli/sneakout-patches.mjs"},"publishConfig":{"access":"public"},"packageManager":"npm@10.9.0","engines":{"node":">=20"},"scripts":{"tooling:install":"node scripts/install.mjs","doctor":"node scripts/doctor.mjs","patcher":"node scripts/run-python.mjs tools/patch_sneak_out.py","runtime:session":"node scripts/runtime-session.mjs","runtime:session:host":"node scripts/runtime-session.mjs --host-launch","performance:session":"node scripts/performance-session.mjs","performance:analyze":"node scripts/analyze-performance-session.mjs","chair:geometry":"node scripts/run-python.mjs tools/chair_jump_geometry.py","runtime:profiler:configure":"node scripts/configure-runtime-profiler.mjs","runtime:profiler:off":"node scripts/configure-runtime-profiler.mjs off","interop:inspect":"node scripts/run-dotnet.mjs run --project tools/interop_inspector/InteropInspector.csproj --","mod:list":"node scripts/build-runtime-mod.mjs --list","mod:build":"node scripts/build-runtime-mod.mjs","mods:build":"node scripts/build-runtime-mod.mjs --all","installer:payload":"node scripts/package-installer-payload.mjs","installer:test":"node --test tests/installer/install-uninstall.test.mjs","voice:test":"node scripts/run-dotnet.mjs run --project tools/proximity_voice_tests/ProximityVoiceTests.csproj --","gameplay-fixes:test":"node scripts/run-dotnet.mjs run --project tools/gameplay_fixes_tests/GameplayFixesTests.csproj --","check":"npm run mods:build && npm run voice:test && npm run gameplay-fixes:test && npm run installer:test"},"dependencies":{"fflate":"0.8.2"},"gitHead":"910ecf062668a25f7e49872c1f86c4b2d1d3c546","_id":"@chelokot/sneak-out-patches@0.8.1","bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"homepage":"https://github.com/chelokot/sneak-out-patches#readme","_nodeVersion":"24.18.0","_npmVersion":"11.15.0","dist":{"integrity":"sha512-3DDQYC2l9//izwt0bA+hmBcxu1PAWuzOAjhRiqmBjGtd+tLk+J8K1kYip0kf+y9R8Zb4NdpKTaI8H1hOTmukEQ==","shasum":"2753b5c56dd7eea0efa0e809808307965b67f05b","tarball":"https://registry.npmjs.org/@chelokot/sneak-out-patches/-/sneak-out-patches-0.8.1.tgz","fileCount":51,"unpackedSize":1357121,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chelokot%2fsneak-out-patches@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF9k2rot0laRrRKPVjkaW5qhOakHn2fImygS1sNM4W19AiAc0RYU0IbXUV3d0h8fVOw71/t9d3dmcXj96OEY1awwEw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f0c41a9c-88d3-47b8-b3ab-095a413bfc87"}},"directories":{},"maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sneak-out-patches_0.8.1_1786058925434_0.46252479547690784"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-02T21:01:08.771Z","modified":"2026-08-06T23:28:45.980Z","0.1.0":"2026-08-02T21:01:09.101Z","0.1.1":"2026-08-02T23:07:01.874Z","0.1.2":"2026-08-02T23:10:14.348Z","0.2.0":"2026-08-03T08:27:29.839Z","0.2.1":"2026-08-03T09:31:29.574Z","0.3.0":"2026-08-03T12:13:23.216Z","0.3.1":"2026-08-03T12:38:54.196Z","0.4.0":"2026-08-03T15:50:55.937Z","0.5.0":"2026-08-04T07:25:52.950Z","0.6.0":"2026-08-04T09:46:58.014Z","0.6.1":"2026-08-04T10:09:54.921Z","0.6.2":"2026-08-04T11:32:52.001Z","0.6.3":"2026-08-04T12:08:12.931Z","0.6.4":"2026-08-04T16:33:25.920Z","0.6.5":"2026-08-04T17:11:23.525Z","0.6.6":"2026-08-04T21:00:42.877Z","0.6.7":"2026-08-04T22:16:09.548Z","0.6.8":"2026-08-05T10:52:34.814Z","0.6.9":"2026-08-05T12:46:26.598Z","0.6.10":"2026-08-05T16:32:19.212Z","0.7.0":"2026-08-05T18:55:50.525Z","0.8.0":"2026-08-06T12:28:02.022Z","0.8.1":"2026-08-06T23:28:45.670Z"},"bugs":{"url":"https://github.com/chelokot/sneak-out-patches/issues"},"homepage":"https://github.com/chelokot/sneak-out-patches#readme","repository":{"type":"git","url":"git+https://github.com/chelokot/sneak-out-patches.git"},"description":"Sneak Out reverse-engineering, patching, and runtime mod tooling.","maintainers":[{"name":"chelokot","email":"andrey.vlasenko.work@gmail.com"}],"readme":"# Sneak Out Runtime Mods\n\nReverse-engineering notes, runtime mod code, and installation tooling for `Sneak Out`.\n\nThe repository is runtime-mod first:\n\n- no `GameAssembly.dll` byte patches are currently shipped\n- the patcher installs `BepInEx IL2CPP` and selected runtime mods\n- committed DLL artifacts in `artifacts/runtime_mods/` let other people install with `--nobuild`\n\n## One-line installation\n\nThe same commands work in Windows PowerShell, Command Prompt, and Linux shells. They require Node.js 20 or newer, but do not require Git, Python, .NET, a repository checkout, or local mod compilation.\n\nInstall the current stable default set into an automatically detected Steam installation:\n\n```bash\nnpx -y @chelokot/sneak-out-patches install\n```\n\nRemove everything managed by the installer and restore replaced files:\n\n```bash\nnpx -y @chelokot/sneak-out-patches uninstall\n```\n\nConfirm or change the detected path and choose every mod individually:\n\n```bash\nnpx -y @chelokot/sneak-out-patches install --interactive\n```\n\nThe CLI downloads the latest payload from GitHub Releases, verifies its SHA-256, checks the installed Steam build and native game fingerprints, installs the pinned BepInEx IL2CPP loader, and validates every selected plugin. Experimental and debug mods remain opt-in; use `--all` to include them in a noninteractive install.\n\nUseful overrides:\n\n```bash\nnpx -y @chelokot/sneak-out-patches install --game-dir \"C:\\path\\to\\Sneak Out\"\nnpx -y @chelokot/sneak-out-patches install --mods keyboard-layout-fix,portal-mode-selector\nnpx -y @chelokot/sneak-out-patches install --allow-unsupported-build\n```\n\n## Tooling bootstrap\n\n```bash\nnpm install\nnpm run tooling:install\n```\n\nOn Linux you can use:\n\n```bash\nmake install\n```\n\nThe second command bootstraps into `.tmp/`:\n\n- a repo-managed `.NET SDK`\n- a repo-managed `BepInEx Unity.IL2CPP x64` bundle\n\nThe runtime mods compile against interop assemblies generated by BepInEx after the game has been started once. Check the complete toolchain and the installed game build with:\n\n```bash\nnpm run doctor\n```\n\nExternal prerequisites:\n\n- `Node.js 20+`\n- `Python 3`\n\n## Repository layout\n\n- `mods/`\n  Runtime BepInEx IL2CPP plugins.\n- `runtime_mods_manifest.json`\n  The single source of truth for runtime mod ids, labels, categories, build paths, and default install settings.\n- `supported_game_build.json`\n  The supported Steam build and native/interop fingerprints checked by `doctor`.\n- `mods/Directory.Build.props`\n  Shared portable build paths and references for all runtime mod projects.\n- `config_templates/runtime_mods/`\n  Default config templates consumed by the patcher.\n- `artifacts/runtime_mods/`\n  Committed runtime mod DLLs for `--nobuild` installs.\n- `scripts/`\n  Repo bootstrap, build helpers, runtime automation, and profiler configuration.\n- `tools/patch_sneak_out.py`\n  Interactive installer, rollback tool, and validator for the game directory.\n- `tools/interop_inspector/`\n  Helper for inspecting BepInEx-generated interop assemblies.\n- `docs/`\n  Reverse-engineering notes, gameplay findings, and historical experiments.\n\n## Runtime mod catalog\n\nThe normal install enables every stable mod below. `Network Host Selector` and\n`Alternate Skill Hotkey` are opt-in gameplay modifiers; `Lobby Test Bot` and\n`Runtime Profiler` are development tools. Install any of them with `--all` or select\nthem with `--interactive`.\n\n| Mod id | Name | Default | What it does |\n| --- | --- | :---: | --- |\n| `performance-optimizer` | Performance Optimizer | Yes | Preserves compatible interop caches for faster starts, follows the display refresh rate, removes measured main-thread scans and adapts the expensive additional-light shadows/vSync only under sustained low FPS. Normal play keeps its frame histogram in memory and performs no periodic telemetry writes. |\n| `uniform-seeker-random` | Uniform Seeker Random | Yes | Replaces the game's biased/default seeker selection with an equal random choice between eligible real players. |\n| `portal-mode-selector` | Portal Mode Selector | Yes | Adds a stock-styled Maps settings row for choosing Classic or Crown maps before matchmaking, without permanently editing Unity scenes. |\n| `network-host-selector` | Network Host Selector | No | Experimental: lets the party leader choose which real player receives Fusion network authority for the next match. It is disabled by default while invite-to-match reconnection stability is being investigated. |\n| `minimap` | Minimap | Yes | Generates a lightweight camera-aligned floor plan with rounded rooms, doors, pass-through doorway frames, teleport wardrobes, and item rollers from loaded runtime geometry. Zoomed views guide off-screen task rooms and POIs with colored perimeter strips and dots. It shows only the local player and uses no second render camera. |\n| `mummy-unlock` | Mummy Unlock | Yes | Restores Mummy as a selectable hunter, including its shop entry, localized text, abilities and current-client selection flow. |\n| `unlock-everything` | Unlock Everything | Yes | Exposes supported characters, emotes and skill cards, shows every declared skin part (including hidden/unreleased entries) as locally purchasable for exactly 1000 Gold, persists the purchase ledger and subtracts it from the authoritative Gold balance after every refresh, persists loadouts, and restricts live outfit writes to the local input-authority player. Missing client assets appear as blank cards instead of blocking the wardrobe. |\n| `alternate-skill-hotkey` | Alternate Skill Hotkey | No | Maps Left Alt to the character's unequipped alternate active perk through the ordinary skill dispatch path. It is deliberately separate and disabled by default. |\n| `prop-buff` | Prop Buff | Yes | Lets a transformed prop move at 25% speed and cycle through the game's supported prop models with the mouse wheel. Rerolls use the stock all-client prop RPC and preserve the current ability duration and cooldown. |\n| `start-delay-reducer` | Start Now | Yes | Keeps the normal 30-second connection grace period for slow clients but gives the authoritative host a `Start now` button once the lobby is ready. |\n| `locker-stun-fix` | Locker Stun Fix | Yes | Keeps Boo on a penguin's own locker exit, but prevents the stun and cooldown spend when another player opened the occupied locker first. |\n| `magic-wardrobe-hook-fix` | Magic Wardrobe Hook Fix | Yes | Cancels a pending magic-wardrobe teleport when a Butcher hook interrupts entry, so the pulled player is not snapped back to the wardrobe after the animation finishes. |\n| `chair-wall-throw-fix` | Chair Wall Throw Fix | Yes | Lets an already held chair/stool, barrel or task ingredient be released beside walls: bypasses the stock forward-ray `None` result and hides its crossed-out `E` overlay without disabling the shared obstacle detector. Immediately before a chair receives throw velocity, a torso-height wall probe and five held-pose support rays clamp its full projected collider radius to the player's side; overlap fallback compares player/chair obstacle distances before choosing its correction direction. |\n| `pumpkin-radius-indicator-fix` | Pumpkin Radius Indicator Fix | Yes | Makes the persistent hunter-only ring match the authoritative trigger radius. Once triggered, it shows a full-opacity kill-radius ring and a 20%-opacity outer stun-radius ring without changing gameplay radii. |\n| `ripper-corner-blink-fix` | Ripper Corner Blink Fix | Yes | Lets the equipped `ReaperHelloThere` through-wall perk traverse the game's dedicated room-corner intersection strips even when ordinary scenery is also detected. It does not grant wall blink without the perk. |\n| `background-loading-guard` | Background Loading Guard | Yes | Temporarily keeps Unity updating while a scene loads, then restores the player's previous background-running preference instead of forcing it permanently. |\n| `keyboard-layout-fix` | Keyboard Layout Fix | Yes | Repairs physical WASD movement on Wine with Cyrillic layouts without injecting an entire synthetic keyboard, refreshes visible key labels when the layout changes, and checks again when the game regains focus. |\n| `proximity-voice-chat` | Proximity Voice Chat | Yes | Adds Steam-relayed positional voice with push-to-talk, voice activation and always-on modes, stock-style in-game audio settings, fixed 10-metre distance falloff and wall occlusion. Living players hear living players; ghosts hear living players and other ghosts, while living players cannot hear ghosts. |\n| `friend-invite-unlock` | Friend Invite Unlock | Yes | Keeps offline Steam friends available in the lobby invite list while preserving the normal self, teammate, leave and remove actions. |\n| `lobby-skill-sandbox` | Lobby Skill Sandbox | Yes | Enables the penguin skill panel and lobby-safe slide for practice. Match-only prop transformation is deliberately suppressed because the stock RPC has no safe lobby state and can freeze movement or drop the player through the floor. |\n| `lobby-test-bot` | Lobby Test Bot | No | Adds a native Dummy bot settings row that spawns or removes one inert real Fusion bot and chooses Penguin or Hunter Priority for Classic private tests. A hunter bot automatically confirms the stock Ripper so selection cannot stall. It is excluded from compatibility and host-selection counts. |\n| `runtime-profiler` | Runtime Profiler (Debug) | No | Instruments explicitly selected managed methods and writes timing reports for focused performance investigations. Expensive broad profiling is not enabled by default. |\n\n`runtime_mods_manifest.json` is the authoritative machine-readable source for these ids,\ncategories and default states.\n\n## Common commands\n\nList runtime mods:\n\n```bash\nnpm run mod:list\n```\n\nBuild one runtime mod:\n\n```bash\nnpm run mod:build -- unlock-everything\n```\n\nBuild all runtime mods:\n\n```bash\nnpm run mods:build\n```\n\nThe build helper resolves interop assemblies from `SNEAKOUT_INTEROP_DIR`, then the repo-local `.tmp/runtime-mod/interop` cache, then an automatically detected Steam install. Set `SNEAKOUT_GAME_DIR` when the Steam library cannot be detected. Direct `dotnet build` calls support the same variables; `SNEAKOUT_BEPINEX_CORE_DIR` overrides the repo-managed BepInEx references.\n\nInspect a nonstandard game or interop location:\n\n```bash\nnpm run doctor -- \\\n  --game-dir \"/path/to/Sneak Out\" \\\n  --interop-dir \"/path/to/Sneak Out/BepInEx/interop\"\n```\n\nStart the interactive installer:\n\n```bash\nnpm run patcher\n```\n\nInstall specific runtime mods into an explicit game directory:\n\n```bash\nnpm run patcher -- \\\n  --game-dir \"/path/to/Sneak Out\" \\\n  --mods unlock-everything,start-delay-reducer\n```\n\nInstall from committed artifacts without local builds:\n\n```bash\nnpm run patcher -- \\\n  --game-dir \"/path/to/Sneak Out\" \\\n  --mods unlock-everything,start-delay-reducer \\\n  --nobuild\n```\n\nRollback script-managed changes:\n\n```bash\nnpm run patcher -- --rollback --game-dir \"/path/to/Sneak Out\"\n```\n\nValidate the current install:\n\n```bash\nnpm run patcher -- --validate --game-dir \"/path/to/Sneak Out\"\n```\n\n## Patcher behavior\n\nWhen started without `--game-dir`, the patcher:\n\n1. detects the current operating system\n2. looks for Steam library folders\n3. tries to locate the `Sneak Out` install automatically\n4. asks for confirmation before installing into that directory\n\nThe interactive selector is runtime-mod oriented and keyboard driven:\n\n- `Up` and `Down`\n  Move between runtime mod options.\n- `Space`\n  Toggle the highlighted runtime mod.\n- `Enter`\n  Apply the selected install set.\n\n`--list-mods` prints ids, labels, and categories directly from `runtime_mods_manifest.json`.\n\n## Linux and Proton\n\nWhen the target install is the Proton Windows build, BepInEx also needs:\n\n```text\nXMODIFIERS=@im=none WINEDLLOVERRIDES=\"winhttp=n,b\" %command%\n```\n\nThe patcher configures that launch option automatically on Linux Steam installs by updating Steam `localconfig.vdf` for app `2410490`. Disabling XIM only for the game keeps GNOME/IBus character translation from swallowing physical gameplay bindings; it does not change the desktop input sources. When Linux GameMode is available, the same per-game command uses `gamemoderun`; the measured Map02 route improved from 71.49 to 88.40 FPS without lowering render scale or quality.\n\n## Runtime automation\n\nUseful commands:\n\n```bash\nnpm run runtime:session\nnpm run runtime:session:host\nnpm run performance:session -- --duration-seconds 120 --session baseline\nnpm run performance:analyze -- .tmp/performance-sessions/<session>\nnpm run runtime:profiler:configure -- lobby-hotspots\nnpm run runtime:profiler:off\n```\n\nThe performance runner samples the exact game PID, GPU and cgroup I/O, captures only newly changed in-game reports, restores temporary window-manager compatibility state, and closes the test client. The runtime session tooling snapshots multiple real log channels because `BepInEx/LogOutput.log` is not always populated during automated launches.\n\nSee [the measured performance report](docs/performance/performance-overhaul.md) before enabling aggressive graphics overrides. The default `Auto` preset retains normal visuals until sustained low frame rate triggers the measured additional-shadow/vSync fallback. Heavyweight scene census, interval CSV writes and experimental Unity recorders are opt-in because profiling work can itself cause hitches.\n\n### Chair jump geometry replay\n\nThe chair release analyser reads the shipped `rig|emote_jumpup.kinguin` clip, the\ncomplete player rig, the held-item transform, and each chair's real mesh and\ncollider directly from `resources.assets`. It replays the exact swept chair box\nplus the five diagnostic support rays and labels frames where the old rays miss\na short wall but the volume sweep correctly clamps the chair:\n\n```bash\npython3 -m pip install UnityPy numpy matplotlib tornado\nnpm run chair:geometry\n```\n\nUse the emote and wall sliders to inspect individual frames, or click **Find\nfalse clear** to search the exact animation trajectory. `--chair chair-a` through\n`chair-d` and `--chair stool` select the real prefab geometry. `--save\n.tmp/chair-jump.png` renders the current default frame without opening a window.\n`--find-false-clear` searches first and then opens or renders the counterexample.\nOn systems without Tk/Qt/GTK (including a minimal Fedora toolbox), Matplotlib's\nWebAgg backend opens the same interactive canvas in the browser; keep the command\nrunning while using it.\nThe wall transform remains a slider because the historical network log recorded\nonly `EnvironmentCollider`, not the transform/path ID of the particular wall.\n\n## Interop inspection\n\nExample:\n\n```bash\nnpm run interop:inspect -- \\\n  \"/path/to/Sneak Out/BepInEx/interop/Assembly-CSharp.dll\" \\\n  \"PortalPlayView\"\n```\n\n## Documentation\n\nSee [docs/README.md](docs/README.md).\n\nHistorical patching notes are still kept under `docs/patching/`, but they describe previous binary-patch eras and should not be treated as the current install architecture.\n","readmeFilename":"README.md"}