{"_id":"@kaeawc/auto-mobile","_rev":"76-152c235f7f5e484ee41c92abd409b4c5","name":"@kaeawc/auto-mobile","dist-tags":{"latest":"0.0.81"},"versions":{"0.0.6":{"name":"@kaeawc/auto-mobile","version":"0.0.6","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.6","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"e15940f6e9aeb21cc92e17d23475598f1c703278","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.6.tgz","fileCount":6,"integrity":"sha512-GHIdWJUo9W4y8ZXY/wxoUK+xdi3HuoaKMEEK0Cxw8n/Q9XKtoL/3MiMmQGRJ0aGXxABco/t3uiOEfjDlBYxaYQ==","signatures":[{"sig":"MEYCIQDq0/lIk4JMbEncJYeIj1RMM95tPytkJpLcpOuyd/Ur5QIhANKszKNpXwxu2eDkHQrI2i/OsHDVZBOy+BaePnox6LoZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14476884},"main":"dist/src/index.js","engines":{"bun":">=1.3.5"},"gitHead":"e12a4e575f8ce88a5ce2dc8ce538ed9f6fbb9f4c","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","postpublish":"mv README.md.backup README.md || true","test:coverage":"bun test --coverage","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","glob":"^11.1.0","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","js-yaml":"^4.1.1","fs-extra":"^11.3.2","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","async-mutex":"^0.5.0","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.71.2","zod-to-json-schema":"^3.25.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.5","devDependencies":{"tsx":"^4.20.5","eslint":"^9.38.0","esbuild":"^0.25.9","ts-node":"^10.9.2","@eslint/js":"^9.38.0","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^24.9.2","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","@types/express":"^5.0.5","@faker-js/faker":"^10.0.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.1","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.5.0","@typescript-eslint/utils":"^8.46.2","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.6_1767533075367_0.94124946403862","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@kaeawc/auto-mobile","version":"0.0.7","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.7","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"3b1558fa450a16f986d10af485a9a4b14fa763d5","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.7.tgz","fileCount":23,"integrity":"sha512-AEh1kFEWEBmfq3lPGe9WC5rPvU7WoepbDVVGBVB6V6kXsROETCH0rk1fS0Zq+imKdew+ZNb1ijyvdLNMvntXaA==","signatures":[{"sig":"MEUCIE4YdpjHFs34qxhlD96hr306v3JoiTIvOqPb5HugfWJ3AiEAvFVXxcstt2K1nm5CHq3MQFagCFurTjmmcT74Bp1nWw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17696665},"main":"dist/src/index.js","engines":{"bun":">=1.3.5"},"gitHead":"bef197c1af91995c2b6cdd2563b1af4976504912","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","postpublish":"mv README.md.backup README.md || true","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"npx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"npx ts-prune","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"_npmVersion":"11.6.2","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","zod":"^3.25.76","glob":"^11.1.0","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","fs-extra":"^11.3.2","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.71.2","zod-to-json-schema":"^3.25.1","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.5","devDependencies":{"tsx":"^4.20.5","knip":"^5.80.2","eslint":"^9.38.0","esbuild":"^0.25.9","ts-node":"^10.9.2","heapdump":"^0.3.15","ts-prune":"^0.10.3","@eslint/js":"^9.38.0","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^24.9.2","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","memwatch-next":"^0.3.0","@types/express":"^5.0.5","@faker-js/faker":"^10.0.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.1","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.5.0","@typescript-eslint/utils":"^8.46.2","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.7_1768458263457_0.05719602783345579","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@kaeawc/auto-mobile","version":"0.0.8","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.8","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"450b9867523bea517b584c8b40ae455f3e1a5674","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.8.tgz","fileCount":31,"integrity":"sha512-5o6Jgvl7WcRDeZ+lBoNiYwxw5K8eTxcVjUaKkrdaFj9hVE14ZbFC2fe2SqGIwLTPvw9UwVyYfiXpXzlhdE3SIg==","signatures":[{"sig":"MEYCIQDDMteu2vkllbJVAB8K9Ywn8qov51Jx9WioJaQsXIxnnQIhAP0ooUAaaQS2HZo2rPME1jF2mcedFEyyP0rWw0Prewcc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12580938},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"99d3e798dbcf6d737a06f498c8143a36de2f2a35","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"npx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"npx ts-prune","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"tar":"7.5.4","lodash":"^4.17.23"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"tar":"CVE-2026-23950: Race condition in path reservations via Unicode collisions on macOS APFS","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.8.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.5.0","dependencies":{"qs":"6.14.1","ws":"^8.19.0","ajv":"^8.17.1","zod":"^4.3.5","glob":"^13.0.0","hono":"4.11.5","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","fs-extra":"^11.3.3","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.71.2","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^5.81.0","eslint":"^9.38.0","esbuild":"^0.27.2","ts-node":"^10.9.2","heapdump":"^0.3.15","ts-prune":"^0.10.3","@eslint/js":"^9.38.0","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^25.0.9","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","memwatch-next":"^0.3.0","@types/express":"^5.0.5","@faker-js/faker":"^10.2.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.3","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/utils":"^8.53.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.8_1770187349687_0.9569488257530987","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@kaeawc/auto-mobile","version":"0.0.9","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.9","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"5feff42de936a637ed73e535aaaa3d076669a1c7","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.9.tgz","fileCount":31,"integrity":"sha512-y8MFCZRJHQExss9F31WDzPV6XXMquRUg5Lq4JZwZJnqlzotF2Yd1MOjBsPiZMc/yy4Plg5v3GeCOoH9bEyvwug==","signatures":[{"sig":"MEUCICYXMT1YOJlnwIlZs9kDe50bHRJmvCaTNYPr8lNlzdw7AiEAxPVPhZZprV3TEBux+QHH90ew9dYMsgROD2Ow70JzPzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12619233},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"7969cb6a9828eaaeea26e0cfdcfd29cec8c73321","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"npx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"npx ts-prune","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"tar":"7.5.7","lodash":"^4.17.23"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"tar":"CVE-2026-24842: Arbitrary file creation/overwrite via hardlink path traversal","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.8.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.5.0","dependencies":{"qs":"6.14.1","ws":"^8.19.0","ajv":"^8.17.1","zod":"^4.3.5","glob":"^13.0.1","hono":"4.11.7","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","fs-extra":"^11.3.3","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.72.1","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.25.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^5.81.0","eslint":"^9.38.0","esbuild":"^0.27.2","ts-node":"^10.9.2","heapdump":"^0.3.15","ts-prune":"^0.10.3","@eslint/js":"^9.38.0","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^25.0.9","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","memwatch-next":"^0.3.0","@types/express":"^5.0.5","@faker-js/faker":"^10.2.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.3","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/utils":"^8.53.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.9_1770188191318_0.5656072528438989","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@kaeawc/auto-mobile","version":"0.0.11","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.11","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"b8783835f470906feb708b02e7508990fd290956","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.11.tgz","fileCount":33,"integrity":"sha512-aSqeq8079PrXQ/Z0tOuYnlmMvN3VvjduqjTIKRgqBS9BqJszBweVZk228NUmOAOPgj3NlFoiHl1fDzxRNuZ2Ng==","signatures":[{"sig":"MEUCIQCwEmbQXh0zFDwsv+F5jf3YwVzXnpoYmgJG2h3XfHWrLwIgXAzTdp+79B72oEIzSj+uAoaCml8oheLnXY+cbT0r+Zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13016183},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"00e567be967da726b0d639a3d6900f85bb75c3f1","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"npx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"npx ts-prune","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"tar":"7.5.7","lodash":"^4.17.23"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"tar":"CVE-2026-24842: Arbitrary file creation/overwrite via hardlink path traversal","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.8.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.6.0","dependencies":{"qs":"6.14.1","ws":"^8.19.0","ajv":"^8.17.1","zod":"^4.3.5","glob":"^13.0.1","hono":"4.11.9","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","fs-extra":"^11.3.3","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.74.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^5.81.0","eslint":"^10.0.0","esbuild":"^0.27.2","ts-node":"^10.9.2","heapdump":"^0.3.15","ts-prune":"^0.10.3","@eslint/js":"^10.0.1","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^25.0.9","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","memwatch-next":"^0.3.0","@types/express":"^5.0.5","@faker-js/faker":"^10.2.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.3","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/utils":"^8.53.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.11_1770789233995_0.10360401514318607","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@kaeawc/auto-mobile","version":"0.0.12","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.12","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"ed9b4f1ecc4a0fd0c928c17fa9e07f4d242c8447","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.12.tgz","fileCount":33,"integrity":"sha512-vMKMeKGqfQ2VOWACQOMzFaK0zuSDDuIgC0RvCCGpwmXdqP26/Zz0AZ4pQG7wTXU0a7HUiPD0g/p62ULT60z1rg==","signatures":[{"sig":"MEUCIQC0Sg5MwC7OJp+Atiyu+9PtuIW1pQyeWnAfr8P7m/WCaAIgMITpZ8oJDP2Y1BJbK7TQWSpozzgAZC5gJPumQj3KD3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12964548},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"18685f30f60b92521d272eaf62cd8870d7764a8d","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"npx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"npx ts-prune","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"tar":"7.5.7","lodash":"^4.17.23"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"tar":"CVE-2026-24842: Arbitrary file creation/overwrite via hardlink path traversal","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.8.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.6.0","dependencies":{"qs":"6.14.1","ws":"^8.19.0","ajv":"^8.17.1","zod":"^4.3.5","glob":"^13.0.1","hono":"4.11.9","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","fs-extra":"^11.3.3","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.74.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^5.81.0","eslint":"^10.0.0","esbuild":"^0.27.2","ts-node":"^10.9.2","heapdump":"^0.3.15","ts-prune":"^0.10.3","@eslint/js":"^10.0.1","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^25.0.9","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","memwatch-next":"^0.3.0","@types/express":"^5.0.5","@faker-js/faker":"^10.2.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.3","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/utils":"^8.53.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.12_1770794094885_0.5190941182122959","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@kaeawc/auto-mobile","version":"0.0.13","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.13","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"fcd6cb445071b00d806d5e7daba7ef34f0daf87d","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.13.tgz","fileCount":33,"integrity":"sha512-tqQ8YrtOlZQIpq2asBXA1Ouru60584OA4YD9L3JoN+RKSlK3nXyMUifJN/s5TPch9OEXHqJq4dx1pskAQtL1OQ==","signatures":[{"sig":"MEYCIQDdsM1nPySV6DW/Dd37MJtJZ+8z8AkyfAq1rEBc/Vwi7gIhALPahVsvVHbhK37xehH+mKOnW2PS8Y2zlUFDJTIzcBmn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12974237},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"003e50c9d18ab42086e414aaf6995fd91f1434c3","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"dev":"bun --watch src/index.ts --transport streamable","lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","start":"bun run src/index.ts --transport streamable","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","dev:sse":"bun --watch src/index.ts --transport sse","dev:port":"bun --watch src/index.ts --transport streamable --port","dev:stdio":"bun run src/index.ts","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","dev:streamable":"bun --watch src/index.ts --transport streamable","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"npx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"npx ts-prune","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:streamable:port":"bun --watch src/index.ts --transport streamable --port","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"tar":"7.5.7","lodash":"^4.17.23"},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"tar":"CVE-2026-24842: Arbitrary file creation/overwrite via hardlink path traversal","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.9.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.6.1","dependencies":{"qs":"6.14.2","ws":"^8.19.0","ajv":"^8.17.1","zod":"^4.3.5","glob":"^13.0.1","hono":"4.11.9","jimp":"^1.6.0","uuid":"^13.0.0","pngjs":"^7.0.0","sharp":"^0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","fs-extra":"^11.3.3","@types/ws":"^8.18.1","pixelmatch":"^7.1.0","@types/uuid":"^11.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/js-yaml":"^4.0.9","onnxruntime-node":"^1.23.2","@anthropic-ai/sdk":"^0.74.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^5.81.0","eslint":"^10.0.0","esbuild":"^0.27.2","ts-node":"^10.9.2","heapdump":"^0.3.15","ts-prune":"^0.10.3","@eslint/js":"^10.0.1","proxyquire":"^2.1.3","typescript":"^5.9.2","@types/node":"^25.0.9","ts-node-dev":"^2.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","eslint-plugin":"^1.0.1","memwatch-next":"^0.3.0","@types/express":"^5.0.5","@faker-js/faker":"^10.2.0","@types/fs-extra":"^11.0.4","@eslint/eslintrc":"^3.3.3","@types/pixelmatch":"^5.2.6","@types/proxyquire":"^1.3.31","eslint-plugin-import":"^2.31.0","eslint-plugin-notice":"^1.0.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/utils":"^8.53.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.13_1770951761577_0.4611439691340007","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@kaeawc/auto-mobile","version":"0.0.14","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.14","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"1982ba771bcf223b16da017d47de7fae2e1faf2e","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.14.tgz","fileCount":33,"integrity":"sha512-/CsgsFV/dqeIg7/KJKdMQoXbfT/AMn0wC2X6AcrvBRZjTpKNRlkhj5oVoGXncKyieXLp6ruugiFnItljJ2VzQQ==","signatures":[{"sig":"MEUCIQDe6XSE6rmSkGpur/4lqwTlQ1GwMCKXu5Gu0oqUqY05hgIgbS+oYyoijgz9PBW/pG3SSuLIoqPvmGhZU0R+faZ8mMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12377130},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"e94099aa6fc506504b5edcba4e6e0ac685fd654c","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.11.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.80.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.14_1774494884187_0.26561069960407413","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@kaeawc/auto-mobile","version":"0.0.15","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.15","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"5d973018c50b6454344f25542a78ead8ed2937c9","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.15.tgz","fileCount":33,"integrity":"sha512-FtyMGdXqkM36e0MfnrMYqCLI3rhPLemlHYANfVoTAf3BROifezDi38k0WAv24zhIgVTFV9lB9rc4Zxr/+DlztQ==","signatures":[{"sig":"MEYCIQDoh00kyr22YSZrdjBEqQiYXiwAsOgzza12JUL1XuJF7wIhAMsfm/FTzPJNYAj5o9XxQJ9RaRnuCfnfxE3OXpYj9wUb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12377130},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"384ece43d40022e22d5a7ce96d81ef1be2fb33f1","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.11.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.8.2","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.80.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.15_1774577862668_0.17531350902931453","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@kaeawc/auto-mobile","version":"0.0.16","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.16","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"06dc80f9cebf9ca2460447e20e8cd541e2b287e7","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.16.tgz","fileCount":41,"integrity":"sha512-ZtXmLlMan61AHL0ijtJvQ5JKMQWa+fiHWPOzBi55GfoJtpgRObNPli9I2ZxG6Dk3KXSW9kjhPEgtbVeKWoPNDQ==","signatures":[{"sig":"MEUCIF777k1Kh2Y/d0K+jZEQ6xlSAih6EUENR7imCu87axUQAiEA4FYR7leghSyT6LyGRCA7d/mNZjDrOKfWT/3cjIFEC1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13199860},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"89aac50efa976102f7d5f67a4df3e473a30e738a","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.82.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.16_1775248481732_0.7699687202494341","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@kaeawc/auto-mobile","version":"0.0.17","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.17","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"414082c5446c3619cb044fa33af7b99d5e2d5c6e","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.17.tgz","fileCount":41,"integrity":"sha512-VugZG0kywPeu52Fqw9i9QfywcRba3dbYJB/azj5XQFjEesNGbBn/1WR/L4Ypf55viaSHWV9cdIR1Dv/z+H2+kg==","signatures":[{"sig":"MEUCICYff/2e+iuhXuJZMaG7DBl3CAYRRiXzbQks4o4gSBKuAiEA1V+6nwFG/pbdTJW8Z5bvKaG4cnhpXk4/5KTVmhaekm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13204607},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"942233a6ca6a40d0ab2d7951ccac3c2c70845ba2","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.86.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.17_1776303873835_0.14511836130146416","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@kaeawc/auto-mobile","version":"0.0.18","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.18","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"bc99fd658879f34629e4570e1aa4836586ea65cd","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.18.tgz","fileCount":41,"integrity":"sha512-adVdsXqgFRBP3G21uOZL3O68bF5kG8qINv8iv4CoxkInaQSYM0MjoxPNKAai9zeu5XRN3TTpK17znUXy/Z9J3Q==","signatures":[{"sig":"MEUCIGIJdi+gDZuuf70ZMqCrI8hPAb3kRsghDSVoYnDrmpR+AiEAwiiYsk3kJYYmUrs0AVMf1u5dbBRLqL60iZSbBaAjwQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13408901},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"f4bc426e11a9212f9c5b66e3a651916f61779eff","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.89.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.18_1776399198582_0.22882961605939056","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@kaeawc/auto-mobile","version":"0.0.19","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.19","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"ad4fa3872d3608bcd19efb3e17631a7a76d523c7","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.19.tgz","fileCount":41,"integrity":"sha512-NeNOKJfqvm5NF7LDUigkzrM2VwsJz6XuDT+jr4gdG0RF7jsCzCzL6Y1zg8Yg9/zeulKBz849stp94qmtCltD/Q==","signatures":[{"sig":"MEQCIHVWSYQ5OeXsBEzHoAVCrRyK4uNBmAZPSucOLOe+HTiMAiA2AdR4cI+QoxYnhp3oA87YlYCq3F08AXFCMugMmx69tQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13430230},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"81655e735626f5e4b26700d09b72437a9d93918d","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"deprecated":"Broken build artifacts — use 0.0.21+","repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.19_1777492881373_0.7830295389501718","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@kaeawc/auto-mobile","version":"0.0.20","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.20","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"3d3b59fc114fc09bfbd3034068056534315a9af6","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.20.tgz","fileCount":41,"integrity":"sha512-28egfyo/1TnmBKVpsqS/AYsdqoBYbywnIOEkkALP5ujI5aRBzi7IvG3KqQ6lhIycKWcpX6M4LwumVl7tYIEPeg==","signatures":[{"sig":"MEQCIBPQsW8R4CQkfPAhxLDAMw3NwYjZCD0eQ5qEbCbco1UwAiAOAMMlmGw+iagQTqu4qRTJkz8ADit7lT0P9JvermxBCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13657121},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"dde3513405a334a0421e98316ee36c87fbee0aeb","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"deprecated":"Broken build artifacts — use 0.0.21+","repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.20_1777540937088_0.4265105582334541","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@kaeawc/auto-mobile","version":"0.0.21","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.21","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"0f028b7dc5e8c0587d12475f3486354b4418e8a7","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.21.tgz","fileCount":41,"integrity":"sha512-LHnmM8n/d84Gt79b7GcExR8BLd/7HrUwY4ylH85EkXYEdWpbQQjY3c31iV5YgSXWGCbkZch/hQDEgFgg8nWcgQ==","signatures":[{"sig":"MEYCIQC4AyEZ/rEr5WXVLCTy3/bDK1jcKPvdOFxSdO8YHKX+PgIhAJtHlxA8N7GrRKVpnR5ViugW8B3a966h19dtLZ8DN7y0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13659435},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"8642b27633a98be41f0567d8d0e34679234eaf9d","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.21_1777544061967_0.7013158015741165","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@kaeawc/auto-mobile","version":"0.0.22","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.22","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"634c6a0c98988313fe806359135929b7fb1a5d6e","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.22.tgz","fileCount":41,"integrity":"sha512-nb0r1t2xB/WS3Yg/PaTLGlsm3YS8tRfAgwEzwOemYKkqBL4U+d243wbKU/7ol4RSQzjbkeUN68RzDzm0RDFFRQ==","signatures":[{"sig":"MEUCIEgZthXBDQlOqioRB8O0Qw9Ahz2uOPIQJFm24WZqtU7QAiEA8xpcx44pOm4pIwULxGa5XuxMuMcvXk9QaFxmVwADm9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13664557},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"f195b3dabb09ec184da1d32a1b54fc9b0728e492","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.22_1777561073166_0.9929191443587062","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@kaeawc/auto-mobile","version":"0.0.23","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.23","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"0691160c630a5881ebd6e61aa443145ae75427ce","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.23.tgz","fileCount":41,"integrity":"sha512-Ix7N1cN6NuQP5tSLT5OgiKrugXQrGz/Lg32PqNuGr/WtlVvnnsJZNM8igr3OTLvhclII6ZSpA0Lu2Ww2zdh4Ig==","signatures":[{"sig":"MEYCIQDYLw86NDwWTDUmocGZvZyyrBGnDT8ksIyrx04Vb1N8yAIhANvq9S/91DmDTuolDxQi/t+1cxfd6NSffe9SgFpqWL75","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13896372},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"840c17d505cdb12e12fd1841d488ae874d3746ce","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.23_1777584893441_0.8016321539975881","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@kaeawc/auto-mobile","version":"0.0.24","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.24","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f8a275439d7f1955e1ad7c6b5c51c2637cc69c95","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.24.tgz","fileCount":41,"integrity":"sha512-eM8xP4Tjj/tJmB0A5PjXNCQtA+tI3zwfwUbv5R+9QmtKkQ/S4xMHKawfuaZKQU9dud8ZM293+GbbSuhWXOvF0w==","signatures":[{"sig":"MEQCIFo+Xbumo0S/jWioRSbpfg/6LnenKcfrCQTw8a+0BaeGAiAJpnKtibg012OC7PEf8+exg0GGW5eLKAKn8zkCMX2VBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13904940},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"14ca015f1e58e38d3a2b3975e6b3141ceb5baa0f","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.24_1777606440784_0.510639331452488","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@kaeawc/auto-mobile","version":"0.0.25","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.25","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"702295b8c1e1f4378cb0637e534956ccc442320c","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.25.tgz","fileCount":41,"integrity":"sha512-D0m0nbBSECkmlUBVWoxNYguBN6pZc2GZoo/WpnnEqVIgGPtrLMMX2Ne0gcsLa1OXM6CEF71nevdoClVN/oLBgQ==","signatures":[{"sig":"MEUCIA4ljC3EBl3kIcFVvvFgxxIn/f/YiTW+VZoNDCX//JhhAiEA6TX0IuG2EwQtSqmenPL3ygVHWu3xnbicOdjAMx+bJxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13904940},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"7d144a1230f5ddb75765ccb90d63f3006b1dae21","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.93.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.25_1778081273041_0.28680281589139045","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@kaeawc/auto-mobile","version":"0.0.26","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.26","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"47ab0d8bfd1d994bd39fc2d60d588d79b9d05a12","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.26.tgz","fileCount":41,"integrity":"sha512-y4tMh+/ptTQkHwuz+WD/rEcasJcJdANul3T2dhf9y9HlljNRs0ZGWRoY6kPmYWaAm0HFqNJEKoUQNR0Z9M+ngw==","signatures":[{"sig":"MEUCIQDLbRd4F9CDC+o+QFFoDqGf+GYlOwaoaRiRvv96UW0PMAIgSA0BiqgMBQLipIWhkhCvIgCrS8wN/WQJHmmP4sT4oyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13904940},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"10b4e0c9e16ad1511babc728743344b5129e86b2","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"25.9.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.28.9","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.95.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.26_1778165713965_0.5886450424281919","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@kaeawc/auto-mobile","version":"0.0.27","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.27","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"7faaa7b5adc746ee4f455fdd8c34ecca2c9470d8","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.27.tgz","fileCount":41,"integrity":"sha512-1FksthXA/yZAq9FZ7ip+MLX6tPxgOCARjkLXQyYwL23tk+FColQ5rtqhwf9fWPKTcxuY14NrZPCGIoIwFdUORg==","signatures":[{"sig":"MEYCIQChd9mK/sz21mhrBNB3ctaeQqgNqQ2tsMOOHuVb/gvAPwIhAJDquPDGCGZxuUy0NzUVoGYWKNL6an/d2DRHgXXBW86O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14515083},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"ab7cfe192e50b4a8c26c95a54ad8241a5883e949","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.96.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.27_1779142553750_0.8640808695591851","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"@kaeawc/auto-mobile","version":"0.0.28","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.28","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"e02a405e318addb16c1b801dcbbe04e82beb2b32","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.28.tgz","fileCount":41,"integrity":"sha512-u0BGU5A5HqdSMvVfENnB4CsgZ9u7m6maaFiawmp+yKsxTetOZPY3DWs3GzQrdans2Ti2L1JrEH/ocowZdv5qlw==","signatures":[{"sig":"MEYCIQDiWIv4OhQptXM1hp+jGxxy4hZWqKsVr1wWP0TAbg5IIQIhAPxSRpIfjVtES9E6iw0s2v8oZ9potUa2omywrMKGTZBJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14569404},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"cc7b75a1651a8597109d4f252cf3da9e2d1836b6","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.96.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.28_1779217226846_0.5838354168602897","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@kaeawc/auto-mobile","version":"0.0.30","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.30","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"5f6fe53eea25938b4cd74dfd7476c3051efef50e","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.30.tgz","fileCount":41,"integrity":"sha512-Pxh9yTTnXHFqks51X6aTrBBv5NQfJuEyPxs2LL6b1JTuAbPUmoLmVGlsyrtGW5rD4VpDn3w0ipxSpfZPnWunZw==","signatures":[{"sig":"MEQCIE9x7Ray0VedIWWOgjonS12SY5BE71VyBIeDVpCuhbv3AiAW/8/IxzWKxeKgQn9cvCSOwen5iH4DdlgjhSaQ3DqnWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14692046},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"4059ba99e35b53a9fac6cdc8e5cb1bc1a916dd5c","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.97.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.30_1779291308558_0.8188335383549663","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@kaeawc/auto-mobile","version":"0.0.31","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.31","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"dbac66c6d83349880b145022ec5c421ed619c12d","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.31.tgz","fileCount":41,"integrity":"sha512-RXuDeshF0hxdKfmwytnSWsQGlbDOt66BmF0N7uqY1rsoSCY7UAJnPE6c39kCkCzjPMIneZ2zqiCFbQ+/UhgOkA==","signatures":[{"sig":"MEUCIQC2YOsJ9w9Hs40rFUAfOWksCTsE7dOtJ0wMARXPM4+hOgIgeiYfGBjBbbrixOpJmfVACGOEs4NW2RPc+QqyDUf+WBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14704687},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"7e88be0e4ae0f08c575cd4ecec3b3d3a16fceb4f","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.99.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.31_1779918871292_0.12498996408892471","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@kaeawc/auto-mobile","version":"0.0.32","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.32","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"96efa0a1ad36f5a43ec0e8566e4b300c755fc5e5","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.32.tgz","fileCount":41,"integrity":"sha512-gGS08BfFbtU+FP/iLWbiMQ09d9PTRYeMBdjm09bDIcXtbalLWXL24qDQP2T8T+qsvtpxke4nAgmJ2i1SkkHxyQ==","signatures":[{"sig":"MEYCIQC6yTDcOEPDDIZT++L+K3K4b/5Ajk6czG5U5Y7nRaZx6wIhAL8LvGnhLkzBn7i7pcm3lhBnb8k3wJJU+oIEYGcjh5jE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14732501},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"973c5da0133d0a83762452fbf2cbbd29c8f5550d","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.100.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.32_1780598182516_0.6512287813477806","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"@kaeawc/auto-mobile","version":"0.0.33","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.33","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"b09ad4ac02aa553759a421bca82066c4f9362cc7","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.33.tgz","fileCount":41,"integrity":"sha512-S74pCm3oZ8vD3JEMDgv1P08NNADPzIuJMqWKNwdnsDWF6MKeksAztpog98nQARDyVT8mNo1v5yMJhw0qVjwLng==","signatures":[{"sig":"MEUCIAPI44krwX+ILBGyIkABaGKdr2Wxo947KkY8yrKbgAqKAiEAg3rCPVx7SbRBV4y+U0V+IZDO4bcGGXnfrsLpuSzWaiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14754530},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"4d32d08831aacac28d5ee2b37c6846335ef9a03e","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.100.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.33_1780601570133_0.24632222236375623","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@kaeawc/auto-mobile","version":"0.0.34","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.34","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"fd932702e6abdba8263176b9cafed630ee90e515","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.34.tgz","fileCount":41,"integrity":"sha512-3D2W90XS0/vpj1DG9kFu2Snu+nIA4y9G51RKWwRDvrWMq+hz7n16HXdl4nZyyoyJoALDuNElYsO4TC3gwluSvw==","signatures":[{"sig":"MEUCIADa/ZtR/RNhLgOn80MhLhtrW737OqKoyjn5pwqSZrClAiEAskTJcRZv1v3o+dfnF/27vjkCsPns8XPhm+8K3CUFLL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14754954},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"0334f4b476087c695b50248c7acae5621d36ce5b","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.100.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.34_1780608055767_0.7395109762823242","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@kaeawc/auto-mobile","version":"0.0.35","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.35","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"8595268efc2f5e8fa8086e0ac5adc89ffc0801fa","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.35.tgz","fileCount":41,"integrity":"sha512-RMeuWtB0g6PbJx0ozatDw6OH/0M8G25k/CbqbwXlB7uXSf4YQG4DubbYfMmB67BO5+VpGJJY8rR8+81Fo5SPpg==","signatures":[{"sig":"MEUCIQDoiapgqK77t37948Yt68Q4XfJZkBNcrR9bX0+nFFPdpAIgDMJ5Ej6LPf6Ddgqngy0Rc3bBJPezpj/PjB8CIKrDVys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14852582},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"1a2a8166acd339fd9c64f43aab2f8ecdd663e471","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.12.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.0.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.102.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.0.9","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.35_1781054448703_0.6725920787157746","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"@kaeawc/auto-mobile","version":"0.0.36","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.36","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"19716681897b894137c30895be00b0af88a11fe7","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.36.tgz","fileCount":42,"integrity":"sha512-SXWgt5yqmhigVYVsp9JHIUHe8dhNQ+0syKydSUuIrcWQS8XqoZZ3L3T3IkR+UlKEcVUwhNpTvjCX5OTsXrj34g==","signatures":[{"sig":"MEUCIQCX1RZjHXD0yaboQDksR9Bib3EoKKDdi6lMEmJhBRcnrwIgXHNy1FHzxcw4piC369vP23gvsrKwlIjaQmLHWbNuhVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14907973},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"0e16fc83b1f50e07461949cd0d7f93c760714448","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.16.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.3.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.2","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.105.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.2","@img/sharp-linux-x64":"0.35.2","@img/sharp-win32-x64":"0.35.2","@img/sharp-darwin-x64":"0.35.2","@img/sharp-win32-ia32":"0.35.2","@img/sharp-linux-arm64":"0.35.2","@img/sharp-linux-ppc64":"0.35.2","@img/sharp-linux-s390x":"0.35.2","@img/sharp-win32-arm64":"0.35.2","@img/sharp-darwin-arm64":"0.35.2","@img/sharp-linux-riscv64":"0.35.2","@img/sharp-linuxmusl-x64":"0.35.2","@img/sharp-freebsd-wasm32":"0.35.2","@img/sharp-linuxmusl-arm64":"0.35.2","@img/sharp-libvips-linux-arm":"1.3.1","@img/sharp-libvips-linux-x64":"1.3.1","@img/sharp-libvips-darwin-x64":"1.3.1","@img/sharp-libvips-linux-arm64":"1.3.1","@img/sharp-libvips-linux-ppc64":"1.3.1","@img/sharp-libvips-linux-s390x":"1.3.1","@img/sharp-libvips-darwin-arm64":"1.3.1","@img/sharp-webcontainers-wasm32":"0.35.2","@img/sharp-libvips-linux-riscv64":"1.3.1","@img/sharp-libvips-linuxmusl-x64":"1.3.1","@img/sharp-libvips-linuxmusl-arm64":"1.3.1"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.36_1782245058671_0.08561608202918558","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"@kaeawc/auto-mobile","version":"0.0.37","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.37","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"380405732ba5251431a0e31a5b957395dcc01a59","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.37.tgz","fileCount":42,"integrity":"sha512-wPe8T/TQ9SgSTVheTY2Gr8jQ1/hfT/4jdDlM1Xuki+bCVOfuY4Me0f630Y1+KrS2OlN7pqRBGJkZsd5MjIbWcg==","signatures":[{"sig":"MEUCIQDLoMsFnH7Z9jMlRs1h3/8uBQJG4mffjwjno35XwTFajgIgDGpb12u73KkjlJHnWk3s8sCKxcRJMo8XnjMnDnYykQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14666904},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"46833aa1b2d133534ad34b9335ab180cbdca654e","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","test:sharp:bun":"bun scripts/ci/sharp-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.16.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.3.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.105.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.37_1782276413377_0.7837985014690616","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"@kaeawc/auto-mobile","version":"0.0.38","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.38","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"1dea0f63ed02466457e7c5e0f7bc6113ba49b055","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.38.tgz","fileCount":42,"integrity":"sha512-RSoaMoRN6nvUA0p/R0FogmrVgpU2kebrp5VmZGcI+6zdmhKP/9nVcHWG6e+xG72m6UwWzQYCwVPhmI863EIRQg==","signatures":[{"sig":"MEUCIHqHD8GhulMMEvQGSKlWzazfW097k/IhPFef7YqJ0jELAiEA4/MbRE78MerIxwf+GPdhXjS5QWV0+WHfxQm6XkpE6yI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15009520},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"a6dbb4618444d9f9178112897139c63a1feb601a","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","test:sharp:bun":"bun scripts/ci/sharp-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^4.1.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.106.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.38_1782419878774_0.8412239458453772","host":"s3://npm-registry-packages-npm-production"}},"0.0.39":{"name":"@kaeawc/auto-mobile","version":"0.0.39","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.39","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"8b0f7bfd49c2aca2d36476d668d26d758113e870","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.39.tgz","fileCount":42,"integrity":"sha512-YEtl8Nlbqhgfm8kYCUY3CT7oB/j3YNnuuh3deGMa9yhj59G6Rc/auzlsl3w8GXU+vv8j0maEhn9YIRqC/y99gA==","signatures":[{"sig":"MEUCICqn7I1Bd9r9H2CY3rrxdM8LgXkJfQDJ/l1JZOHCef50AiEA1VPFYEnw8JamOxPGl+nD4EkOc+kECDHw/TmrGDFIjsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15091673},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"62e7876f3ca49879b7b671dac41e497043705e4f","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"node --expose-gc --heap-prof --import tsx scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"node --expose-gc --inspect --import tsx scripts/detect-memory-leaks.ts --mode=profile","test:sharp:bun":"bun scripts/ci/sharp-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"node --expose-gc --import tsx scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^5.1.0","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.106.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","heapdump":"^0.3.15","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","memwatch-next":"^0.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.39_1782767112008_0.24148494021964795","host":"s3://npm-registry-packages-npm-production"}},"0.0.40":{"name":"@kaeawc/auto-mobile","version":"0.0.40","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.40","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f049fdd6ef5d9a95e981bb7cb31dbeef7196fc99","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.40.tgz","fileCount":42,"integrity":"sha512-dXznYdnaCIwjmUOfYxlP9ZcfMPui/4WS14LKky+zn6aWwA7IgIK7k6J5eNI462YqHT4aQEnyBTL1+HCVKojqxg==","signatures":[{"sig":"MEUCIAjPw1bLmEJVbk8tyo4NDWQSbvNV4JGf1iTbH5z58XDdAiEArHVnNvUkv7QN1r5COSnKl0VTimbmxj+0Qi+GbzLMkN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15317925},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"7a840beec66b7235185da0837fe14e5639fcc130","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:sharp:bun":"bun scripts/ci/sharp-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^5.1.0","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.107.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.40_1782863029456_0.3773317128942131","host":"s3://npm-registry-packages-npm-production"}},"0.0.41":{"name":"@kaeawc/auto-mobile","version":"0.0.41","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.41","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"0f75db3144f8ef4181786d84edacf450f14db877","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.41.tgz","fileCount":55,"integrity":"sha512-TCIMnJK42EfK+irXebwvEbwNKcuCXZZSOKfCdfXoon28PbJYBQBPcTwfWGgVUu4S5c2bxPQRctnLG5t8JXl0FQ==","signatures":[{"sig":"MEYCIQCQwNatn0wAk17TwwET9KXzjqzD6hem2ool+avfb73+UgIhANpbf82ZeYvo+GQBgARJSi/kDdhsIQMboCPp+Mp+Y2ef","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14684494},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"e9eb636636745cace8d7d20f53afa06e881a1277","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.110.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.41_1783648740528_0.17594681136342993","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"@kaeawc/auto-mobile","version":"0.0.42","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.42","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"997eb6e5c2d04e9af499fa221d20b76c5325a8ed","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.42.tgz","fileCount":55,"integrity":"sha512-0/E3OkqZUUfCNMNXjNrLHMSKARZufrC7dnwJzGCfEsXakzsovgpA8WQnWQCpdtMXLfxyfJ4fE8MAZtY0zRJtRA==","signatures":[{"sig":"MEUCIQCnBmTaAtmgU0qY4aeCaDgCHArwQsIEV0y/FD9Wrbo/wAIgNmk0yxCr4rtzC5dnSHqd/HO3e5ouzs5klN+0iirrPX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14685099},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"c3fb00afcbd0b74e1cf3694d845f048dd8756f5d","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.110.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.42_1783689545406_0.30886561651938127","host":"s3://npm-registry-packages-npm-production"}},"0.0.43":{"name":"@kaeawc/auto-mobile","version":"0.0.43","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.43","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"679bfa855656f72c22cd360cf3075e1de7cabe69","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.43.tgz","fileCount":55,"integrity":"sha512-Xukd8C35+McEtgCje0Fdb/L+DMrj+UUfVTq3GB3FG65uRQZUoH8wzqgpyw5cdbdZQ1iSSLgA3GrqE+y9tysvZw==","signatures":[{"sig":"MEUCIQCig5JkT9LvQoygj27ti+IwBWw1hdMKlYihmeNSFKIzrgIgdFO+ETmO6tnA3E+pzwYyCFZfMUlKWGPzkO2eo0jVoeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14696597},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"04e495be900efdb829b49dddd1cce2f28e1fa88c","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.110.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.43_1783701375885_0.9269048456922084","host":"s3://npm-registry-packages-npm-production"}},"0.0.44":{"name":"@kaeawc/auto-mobile","version":"0.0.44","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.44","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"bac68ba0f7fe97b3e8c19d4d2fffc1c96cac6868","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.44.tgz","fileCount":55,"integrity":"sha512-vzqqVA3/xRQrMM4s4W9TKIfnGIeOmKH/b6YzjzgfcAbsudUek0jMonNgJhW9Du/OcYWfBGzdIT2IZgW8DX2Adw==","signatures":[{"sig":"MEQCID7FshA7TbIW89SOiykobOsahj5TRvMU3pZt68LI6ipLAiAUXDkLOeyz0RFn9Sp1urDJBM+T0BcOfi1LHeumLIBcdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14733140},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"24ba239b2af8db8c3e1d4f129fe3f7d30d7f112b","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","xml2js":"^0.6.2","adm-zip":"^0.5.16","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@anthropic-ai/sdk":"^0.110.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.44_1783736338732_0.37843910011831317","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"name":"@kaeawc/auto-mobile","version":"0.0.45","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.45","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"e0ffaf648478539f574a515c06a75ec70abe265c","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.45.tgz","fileCount":77,"integrity":"sha512-ySVyVLA7jAiSsUuHX0+Nsxi3T6EhDppkBJM0ftuXlNOdyU8UrZylvGpyns/ICbdu0ud8DnEylSSwoO8xqlw8Ug==","signatures":[{"sig":"MEYCIQCsUOgR0BzThRqyvk2z90uOFl7zdpL2t+62fYjgXZLVDQIhAOnO6bFn2NwrUilmfQ3558Ln9REAgEfpwr5OnZsuQ0Qh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17182904},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"2c3468867cc731153a77841c176ec0e6678f3555","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix --pass-on-unpruned-suppressions && bash scripts/check-no-new-direct-simctl.sh && bun scripts/check-no-direct-plutil.ts && bash scripts/check-no-new-direct-xcodebuild.sh && bash scripts/check-no-new-direct-security.sh && bash scripts/check-no-new-direct-git-metadata.sh && bash scripts/check-no-local-shell-quote.sh && bash scripts/check-app-bundle-metadata-boundary.sh && bash scripts/check-ffmpeg-execution-boundary.sh && bash scripts/check-simulator-tcc-sqlite-boundary.sh && bash scripts/check-daemon-launcher-boundary.sh","test":"bun test","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"eslint . --prune-suppressions","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"eslint . --suppress-rule max-depth --suppress-rule complexity --suppress-rule max-nested-callbacks --suppress-rule auto-mobile/no-accumulator-foreach","test:coverage":"bun test --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","werift":"^0.23.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.113.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.45_1784866133869_0.41131873249942696","host":"s3://npm-registry-packages-npm-production"}},"0.0.46":{"name":"@kaeawc/auto-mobile","version":"0.0.46","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.46","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f62e0a4774e029a032adf401db76cbe31f74cd73","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.46.tgz","fileCount":57,"integrity":"sha512-ZDDnBTu2sYufrMM3Xzf+u4WLPt2k0e6/GsgxVCCka+AW/pjtMC2y6LlkTw0sh12e/FmVcxpMImM+O693j8lIHA==","signatures":[{"sig":"MEUCIQCknpsHx3ofAhNKoJuI69TLWx0/o+h+LDAFrOtbTQvJOwIgcCR/SjowiIQ5oW6RLJruJqdOO9qdOa4vmD/gIWRAtZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17994447},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"787aa2bfb2f1c6e87fbb85140b21ff1899219446","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix --pass-on-unpruned-suppressions && bun scripts/check-host-shell-boundary.ts && bash scripts/check-no-new-direct-simctl.sh && bun scripts/check-no-direct-plutil.ts && bash scripts/check-no-new-direct-xcodebuild.sh && bash scripts/check-no-new-direct-security.sh && bash scripts/check-no-new-direct-git-metadata.sh && bash scripts/check-no-local-shell-quote.sh && bash scripts/check-app-bundle-metadata-boundary.sh && bash scripts/check-ffmpeg-execution-boundary.sh && bash scripts/check-simulator-tcc-sqlite-boundary.sh && bash scripts/check-daemon-launcher-boundary.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"eslint . --prune-suppressions","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"eslint . --suppress-rule max-depth --suppress-rule complexity --suppress-rule max-nested-callbacks --suppress-rule auto-mobile/no-accumulator-foreach","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"kaeawc","email":"jason.d.pearson@gmail.com"},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"deprecated":"broken release","repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.17.0","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.46_1785337831051_0.7924965679004681","host":"s3://npm-registry-packages-npm-production"}},"0.0.47":{"name":"@kaeawc/auto-mobile","version":"0.0.47","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.47","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"8e446b0c9ccfe984d30e61a73ed4f000f08caa80","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.47.tgz","fileCount":57,"integrity":"sha512-DeqvSVjGyu38hDZx+pOXuoo/DY5Z95BsO/4ND6bBrwwPYhTbbeaexIN11VyPCUbYxruHi2CMNe99JepDBG0N+A==","signatures":[{"sig":"MEYCIQDyfsCEiCqgo3WOIY3/jHczK0KjB8RSVeGhJtEKZzm6ugIhAII+h8yJhAUH3MpdXuSxBtzdX51/baAyWZXlyVcUv0i9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17324434},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"edf8bb7126250470e74c4839ad0b0463ef2132c9","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix --pass-on-unpruned-suppressions && bun scripts/check-host-shell-boundary.ts && bash scripts/check-no-new-direct-simctl.sh && bun scripts/check-no-direct-plutil.ts && bash scripts/check-no-new-direct-xcodebuild.sh && bash scripts/check-no-new-direct-security.sh && bash scripts/check-no-new-direct-git-metadata.sh && bash scripts/check-no-local-shell-quote.sh && bash scripts/check-app-bundle-metadata-boundary.sh && bash scripts/check-ffmpeg-execution-boundary.sh && bash scripts/check-simulator-tcc-sqlite-boundary.sh && bash scripts/check-daemon-launcher-boundary.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"eslint . --prune-suppressions","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"eslint . --suppress-rule max-depth --suppress-rule complexity --suppress-rule max-nested-callbacks --suppress-rule auto-mobile/no-accumulator-foreach","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.47_1785434149118_0.7799695544345386","host":"s3://npm-registry-packages-npm-production"}},"0.0.48":{"name":"@kaeawc/auto-mobile","version":"0.0.48","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.48","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"5b57215b474caaece3ab66910a9b3d4de1d92abb","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.48.tgz","fileCount":58,"integrity":"sha512-41v2A99bXx5veMZ4xb2ZDfxt1lYf4tFei7bBFR2lrCHpA7lE3ZWMuKH0C1M3iCwqk5R6qeLoW3+xV8RBhfSiLA==","signatures":[{"sig":"MEYCIQDSJ6hCPQItnJe7TT8otzSyxBBT6wLjb8dpAIRar95HcgIhAOT3Jb05DEU7XLleG1w5dC5x9BMWYWEbO5dkzrCJzZ9f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17591183},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"53f7fbd374df3690b8e8558e0dbbf8c5874ba6f7","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix --pass-on-unpruned-suppressions && bun scripts/check-host-shell-boundary.ts && bash scripts/check-no-new-direct-simctl.sh && bun scripts/check-no-direct-plutil.ts && bash scripts/check-no-new-direct-xcodebuild.sh && bash scripts/check-no-new-direct-security.sh && bash scripts/check-no-new-direct-git-metadata.sh && bash scripts/check-no-local-shell-quote.sh && bash scripts/check-app-bundle-metadata-boundary.sh && bash scripts/check-ffmpeg-execution-boundary.sh && bash scripts/check-simulator-tcc-sqlite-boundary.sh && bash scripts/check-daemon-launcher-boundary.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"eslint . --prune-suppressions","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"eslint . --suppress-rule max-depth --suppress-rule complexity --suppress-rule max-nested-callbacks --suppress-rule auto-mobile/no-accumulator-foreach","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.34.5","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-wasm32":"0.34.5","@img/sharp-linux-arm":"0.34.5","@img/sharp-linux-x64":"0.34.5","@img/sharp-win32-x64":"0.34.5","@img/sharp-darwin-x64":"0.34.5","@img/sharp-win32-ia32":"0.34.5","@img/sharp-linux-arm64":"0.34.5","@img/sharp-linux-ppc64":"0.34.5","@img/sharp-linux-s390x":"0.34.5","@img/sharp-win32-arm64":"0.34.5","@img/sharp-darwin-arm64":"0.34.5","@img/sharp-linux-riscv64":"0.34.5","@img/sharp-linuxmusl-x64":"0.34.5","@img/sharp-linuxmusl-arm64":"0.34.5","@img/sharp-libvips-linux-arm":"1.2.4","@img/sharp-libvips-linux-x64":"1.2.4","@img/sharp-libvips-darwin-x64":"1.2.4","@img/sharp-libvips-linux-arm64":"1.2.4","@img/sharp-libvips-linux-ppc64":"1.2.4","@img/sharp-libvips-linux-s390x":"1.2.4","@img/sharp-libvips-darwin-arm64":"1.2.4","@img/sharp-libvips-linux-riscv64":"1.2.4","@img/sharp-libvips-linuxmusl-x64":"1.2.4","@img/sharp-libvips-linuxmusl-arm64":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.48_1785548946487_0.865401164543411","host":"s3://npm-registry-packages-npm-production"}},"0.0.49":{"name":"@kaeawc/auto-mobile","version":"0.0.49","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.49","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"a9e79add0ab4586499daff41e64a3d9d12d27ae8","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.49.tgz","fileCount":58,"integrity":"sha512-ilHBC7rFIq5i8cHn+swTAhg5vayuWLrcLP8u/vQRbSH+UOV8NGRndlK5FZp/9VoDBv5WuCoKSwZ4Aiv8kl60SA==","signatures":[{"sig":"MEUCIQD61kK8iJ/h2Xug04mCWYXr37C1czk45c3wum7Y5/ThqAIgcC19c6kirAw6UAVUUDAeR6R0sncQaZ0Pc8iQk5t99Zs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17761978},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"248830b952beec36181373022e3a1bf580c20e9d","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix --pass-on-unpruned-suppressions && bun scripts/check-host-shell-boundary.ts && bash scripts/check-no-new-direct-simctl.sh && bun scripts/check-no-direct-plutil.ts && bash scripts/check-no-new-direct-xcodebuild.sh && bash scripts/check-no-new-direct-security.sh && bash scripts/check-no-new-direct-git-metadata.sh && bash scripts/check-no-local-shell-quote.sh && bash scripts/check-app-bundle-metadata-boundary.sh && bash scripts/check-ffmpeg-execution-boundary.sh && bash scripts/check-simulator-tcc-sqlite-boundary.sh && bash scripts/check-daemon-launcher-boundary.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"eslint . --prune-suppressions","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"eslint . --suppress-rule max-depth --suppress-rule complexity --suppress-rule max-nested-callbacks --suppress-rule auto-mobile/no-accumulator-foreach","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.49_1785721073265_0.7875924717011737","host":"s3://npm-registry-packages-npm-production"}},"0.0.50":{"name":"@kaeawc/auto-mobile","version":"0.0.50","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.50","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"a32ee2bcbefac18372b3dc8b681473097eabab8f","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.50.tgz","fileCount":58,"integrity":"sha512-9f+HYJu/d/Jc+xUHV8OdKD6P4zPqfXLA7OKWPwCZ1QYkd4E5knGb6h/GkM1KYDdjlXjQP1NNRdcuCh6UOaZv9g==","signatures":[{"sig":"MEYCIQCaZL4vak4HHIA3H8ZqkB1LG0HaAfvV11P3YiUgtt414wIhAOBUgPRJas1dI3DI/HONzPItI8Vg9W80mjC6zYxcOxTB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17764365},"main":"dist/src/index.js","engines":{"bun":">=1.3.6"},"gitHead":"b49ff3dd5f748baadd7003b728f6efebeadcc19c","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"eslint . --fix --pass-on-unpruned-suppressions && bun scripts/check-host-shell-boundary.ts && bash scripts/check-no-new-direct-simctl.sh && bun scripts/check-no-direct-plutil.ts && bash scripts/check-no-new-direct-xcodebuild.sh && bash scripts/check-no-new-direct-security.sh && bash scripts/check-no-new-direct-git-metadata.sh && bash scripts/check-no-local-shell-quote.sh && bash scripts/check-app-bundle-metadata-boundary.sh && bash scripts/check-ffmpeg-execution-boundary.sh && bash scripts/check-simulator-tcc-sqlite-boundary.sh && bash scripts/check-daemon-launcher-boundary.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"eslint . --prune-suppressions","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"eslint . --suppress-rule max-depth --suppress-rule complexity --suppress-rule max-nested-callbacks --suppress-rule auto-mobile/no-accumulator-foreach","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"},"eslint-plugin-import":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.6","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","turbo":"^2.8.10","eslint":"^10.0.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","@types/pixelmatch":"^5.2.6","eslint-plugin-import":"^2.31.0","@stylistic/eslint-plugin":"^5.7.0","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.50_1785767795669_0.6468836617427167","host":"s3://npm-registry-packages-npm-production"}},"0.0.51":{"name":"@kaeawc/auto-mobile","version":"0.0.51","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.51","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"604476acb32fa8d924dce9af9770034974b1c3e6","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.51.tgz","fileCount":59,"integrity":"sha512-Z+pjPSPs0VOHu302/2K+NHr62o7c76i1MJId2iB+AYV4DISp7XdlLTqwt7cLxZu742UpwaGgqvEaQ9Z5kpx+Ag==","signatures":[{"sig":"MEUCIA8RRLZ9j5SIKbB/oLjzVRruSqKyOa8spqg5mrU1I4OCAiEA9ljv5LBkmpLPkSyfHVvbAxDEG2cnYzNTgMMoGa+j2dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17982354},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"706bb42967e41f229ceccc6602d220d7aec62fca","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.51_1786301760647_0.07028120043556574","host":"s3://npm-registry-packages-npm-production"}},"0.0.52":{"name":"@kaeawc/auto-mobile","version":"0.0.52","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.52","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f6b963b9109637ff29658f27c91b7f6d1d0926be","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.52.tgz","fileCount":59,"integrity":"sha512-LDlqnTdsR9UTKU6TLqy3tWbmcKT8xONROKMzKbdIoxoZv4JJn5GznjatW0GmAxZjyaQ5qvOSLXXFQKb9pe87iQ==","signatures":[{"sig":"MEQCIF5WcCz+atFfvDLbKJrqMTBln/hWS1faGt93vj+djcZ8AiB/nXflPf4+o315tX96vHv7Q6xeuavJWnXPLlOy5FsLxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17984621},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"93d33d0e71964816e4a5cc53802cef62acf9fcd0","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.115.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.52_1786330159344_0.5092359085218794","host":"s3://npm-registry-packages-npm-production"}},"0.0.53":{"name":"@kaeawc/auto-mobile","version":"0.0.53","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.53","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"91f865f83552b67add5c270db24b65f969319095","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.53.tgz","fileCount":59,"integrity":"sha512-4hw4dHtlbTx9nyrYGog2ZsCroNGm+CdBIaTsZ7+2LbZMq9I8W7kGs08IyAiUuUOM4KeeCWNH6/RQ86thiuXpwQ==","signatures":[{"sig":"MEQCIAQmZFR9MzWgke0lCfLbTsV9vrwPb5KSG0RC01Ps0EbTAiBwYgNWKKxK9HOEZoKL2/aY980DGSYRJWps66dPy398LA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18013546},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"b035d1f87ef6bcbb97c2c8fef7c54910ceaedd01","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.116.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.53_1786462865577_0.7869366720461721","host":"s3://npm-registry-packages-npm-production"}},"0.0.55":{"name":"@kaeawc/auto-mobile","version":"0.0.55","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.55","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"18607e42d920e4ace59c968b591bf58280423f08","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.55.tgz","fileCount":59,"integrity":"sha512-hqQtEHR4XG8V1OY+/kkxcmCGsGOVpxS3cKwujb2qs9w/xGjx+qseeZwqEF9u74KonKL7SxSzPIa6Px6/Lq0FZA==","signatures":[{"sig":"MEUCIEUY1MoYojoydLSRo58XKZS60qmkxMyWKbhxL+jHu9gcAiEAoZx+XeQvY85+ubZxNrHhakavw5gR7aCLEw8fLqPZSmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18111282},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"bb6baeaf99a07528ff02d5fe2ec23f2d20b067e4","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.116.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.55_1786639744978_0.1069847630855778","host":"s3://npm-registry-packages-npm-production"}},"0.0.56":{"name":"@kaeawc/auto-mobile","version":"0.0.56","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.56","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"a67d4a9f3eb7fce74a69806ccd7a7d6832b8cf4f","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.56.tgz","fileCount":59,"integrity":"sha512-8CKX0bK+Los3b69gSpl+JGWzlASWMyh8JtQs0zSwBC5AOoSDPTzI++Hoqkm/U5TfWYBw6opBBxEWXhhf2UAdGw==","signatures":[{"sig":"MEYCIQDSgbU1wjxLlMHmJit4OA5LjW3SwDyg+W4AdYMhawCeiQIhAPOUNDsTS3E8DygmwcW/160MAJQg4iWjnmLFhFmqANiM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18113857},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"92e490d0ab769f8a7ae3fce7138e1a56c5fda2b7","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.116.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.56_1786745936694_0.6265267009126247","host":"s3://npm-registry-packages-npm-production"}},"0.0.57":{"name":"@kaeawc/auto-mobile","version":"0.0.57","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.57","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"30449ac3cf76f1871bc90ae3f512de4cbc7222a8","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.57.tgz","fileCount":59,"integrity":"sha512-/odmmzCRUG4rfidQ7E3Eawhp7kWN3G5J+wiTmpkNpZOfMeZ2rHtVIAQ7q0eCOjeR38rxLe8rRAY3qKFniiVmqg==","signatures":[{"sig":"MEUCIC30ARHinQNb6BTZWXQK1yFfA40kpSkCzfescvPzHbwZAiEA1QB9zATUBb1W9LmtS87oBSHOCZIUcyXHW9jfT2LbY74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.57","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18115428},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"05bcc4a98127a06f7eecab47f0d07d13e44f01c5","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.116.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.57_1786751337430_0.7270402240939766","host":"s3://npm-registry-packages-npm-production"}},"0.0.58":{"name":"@kaeawc/auto-mobile","version":"0.0.58","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.58","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f2c63f0a89f62c0cca2f5b7261f7fe9c26017865","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.58.tgz","fileCount":59,"integrity":"sha512-ZMjpNIwkdz/3tVqYCHAoi4xT1sihRDKAjAoNdVh2UcxgP5dp/2TgabogFIewy9X+yAwQHf/wmHu9ILOLAdfHWA==","signatures":[{"sig":"MEYCIQD/cxkj7bR62dzwuoInUOG9hEtpnL5Q+pPLl2M58NCShwIhAPTfYKN+2d44YgmD2aZ/jk1VWZCAzNkMrgy4AaToiBC8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18131330},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"404f806b2e942b0ad90a872bc9c61b36ffddc77f","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.116.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.62.0","turbo":"^2.8.10","oxlint":"1.77.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.143.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.58_1786766397760_0.8587079091003835","host":"s3://npm-registry-packages-npm-production"}},"0.0.59":{"name":"@kaeawc/auto-mobile","version":"0.0.59","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.59","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"4ca6f9fa6f0b7a3f2b7bb7ea2e80b7cdbc747999","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.59.tgz","fileCount":60,"integrity":"sha512-toyCE1exEwqtblQchKuybmmPMzQkKxRGbQz0MvXj25crsvkaO3EI2O0htBUZ41mKjRrJSbM1zn+51SuJWmjv9A==","signatures":[{"sig":"MEUCIQCvrHpsSLNlyJEv8Zz3BDaf1dZu5jGgQVxmSYS64WydIwIgMEsZ0zr0Op3zeYV5XBgcfrt4IfrhpqBPLs0RiUDLDlA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18634473},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"f6c502243fa28ce8366ef847722d00aa80c1f672","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.117.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.63.0","turbo":"^2.8.10","oxlint":"1.78.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.144.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.59_1787111812210_0.30242084347708653","host":"s3://npm-registry-packages-npm-production"}},"0.0.60":{"name":"@kaeawc/auto-mobile","version":"0.0.60","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.60","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"c55725d82ea0fc0acbce7ddba229d0d02875723c","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.60.tgz","fileCount":60,"integrity":"sha512-0rOC5xdW+V6ru/37LO//lTxi/B0qZDpV8CbA/9Bq7oclsH0udmy1ik1/KlDAQjA3ngp71UWzxz1Fb4ELrz0Ytg==","signatures":[{"sig":"MEQCIC9gh5j+abhtGPdnVgU/Xh5DZ6TBMF5D6sqJcWP0PxbyAiBP2S5IWhZQ/HCEYoLk63cNMNy/36UG3m2oo2e/HL7crg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18687679},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"142751bd36e0aada6e9bcd28be869108a0725e1b","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","ajv":"8.20.0","zod":"^4.3.5","jimp":"^1.6.0","pngjs":"^7.0.0","sharp":"0.35.3","kysely":"^0.29.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","@jimp/core":"^1.6.1","pixelmatch":"^7.1.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.117.1","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.63.0","turbo":"^2.8.10","oxlint":"1.78.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.144.0","typescript":"6.0.3","@types/node":"^26.0.0","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","@types/pixelmatch":"^5.2.6","@typescript/native-preview":"7.0.0-dev.20260707.2"},"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.60_1787143087425_0.6959408314254578","host":"s3://npm-registry-packages-npm-production"}},"0.0.61":{"name":"@kaeawc/auto-mobile","version":"0.0.61","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.61","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"921ab3b590f90e811c954f43f7e06b9f0cc12090","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.61.tgz","fileCount":1182,"integrity":"sha512-6up10OVAJmttwlGVvu5MXukGrx5J9HGY5J0PHgFYHbyeC4yxA+jyB/k9ohwoZp/n9Lhx+YqzO5jPBlFCTUdITg==","signatures":[{"sig":"MEQCIDLjVjwQvjB9wS0QXRwIA7PPutNojBwdw9qq9PS4amn8AiAG84csXyvFoy+wCBfOCZx2HJ4owlMf9TcnK+XggG9f7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27379416},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"79d06a2179db215f06d40cee8a1d2a3a9abffedc","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.63.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.78.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.144.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.117.1","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.61_1787410706465_0.8498320295310919","host":"s3://npm-registry-packages-npm-production"}},"0.0.62":{"name":"@kaeawc/auto-mobile","version":"0.0.62","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.62","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"2211dc08a363d0f3d8ad5b87909914bf25f46575","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.62.tgz","fileCount":1187,"integrity":"sha512-Pax/we79cdUoBgSM+8P19zOOVvqnSAOYXsxxgPRHva8UoJLmSBqj7ThWHzhIDG+SvANWbE8lB1SEKsUHTQwu7g==","signatures":[{"sig":"MEQCIFNrHDzLBDxFQzZ42aC3FI/EbALDGKBfMSPe+9UI847UAiBJj1rInJK2+C3qTBIYsHVfIoiCSoDbY0UPHRfu48486A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27970497},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"6e232f9a1105f9edff81af9633e699a47a7da43b","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.63.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.78.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.144.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.117.1","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.62_1787516397883_0.8530064301464757","host":"s3://npm-registry-packages-npm-production"}},"0.0.63":{"name":"@kaeawc/auto-mobile","version":"0.0.63","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.63","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"cdd2ad2573fedfe03e3869eba7baa81f89f1b5c0","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.63.tgz","fileCount":1187,"integrity":"sha512-gedD+rn7lWK7x6KaySi8qVgpMiQawBWb8kUapsm4ghh57IsRNfnNZUQimPPTLfQ9u/gUSDGr9J8nL2IkGbK/RA==","signatures":[{"sig":"MEYCIQDds3aIkvD+i02/Rc+WyCKWzCTC/D9eTdGQ68PIH4cnJgIhALJwtmn6iGnTK/e2y/oddfPL9P98M6+MTe805D7G8Zrb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28118899},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"fe1a9d6ff872c3e88efb7e5713be4deb7604c934","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.63.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.78.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.144.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.117.1","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.63_1787556924213_0.262143715160021","host":"s3://npm-registry-packages-npm-production"}},"0.0.64":{"name":"@kaeawc/auto-mobile","version":"0.0.64","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.64","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"9dff62583856aa20a6e27a1f11da944ea9834287","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.64.tgz","fileCount":1188,"integrity":"sha512-nYuXqNCMp9Ft9c6ZoPcaCNeFw0FOxs7gj14wgMw9AcjPYk3F4+V48yD0Ag4ENPM+RiM/gPPmtTdzybpRdHFPMQ==","signatures":[{"sig":"MEUCIQD+0R95BJC2EB0ImsVmzp+kKXX+k1YrDube7Q7GQa05yAIgVf8OCdhzsXY3+UNNcwVPwcbl3xhYRibkT9U9RBoomIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28402219},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"d2bdf48a55980f9367cab6a71eed668b38be9210","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.64.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.79.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.146.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.120.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.64_1787694832182_0.7201959221543108","host":"s3://npm-registry-packages-npm-production"}},"0.0.65":{"name":"@kaeawc/auto-mobile","version":"0.0.65","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.65","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"27306ff7b3e5538b65bc0c526e4528c4c72b2aa3","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.65.tgz","fileCount":1188,"integrity":"sha512-Bo1X5Yw1J0QNfI740QgQa9TAC8dg7HWRr/kY6SgQbUOv/kGeFrx7j0rawTulR4aFmaBIKQcMMXBtUaoFr36Fvg==","signatures":[{"sig":"MEUCIQDoMzjhw8GUxXm0vESWvbqhGkzUz/HxdKooVQSLrbMEuQIgF/pYFU8QYZUJqC6CQIE1wCOht6DxdvvIQwF5TvZhKT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28423666},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"449b91d624c66611e4dd707d59ffdc347d6e0d3b","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.64.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.79.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.146.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.120.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.65_1787795304024_0.6108705504329928","host":"s3://npm-registry-packages-npm-production"}},"0.0.66":{"name":"@kaeawc/auto-mobile","version":"0.0.66","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.66","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f3a7ea34093083016e8dd8081e651edc818711da","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.66.tgz","fileCount":1188,"integrity":"sha512-38z2zratjEIHhShPFesXJF7FkdUXcOTIb8FO89JR8mxmEOrsZPk+SCXuV7ScImqn5/I/skJ8OJR1HdzWn11yTA==","signatures":[{"sig":"MEUCIE4/Dhgk80WD0xi5fKXodWt7sPg7TNaBAn4RPkt4OybvAiEA4kyx2MD6jkaBowVcWDKiE2+r7o7aSK0yOco+6AQren4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28439752},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"896e5c501e1f0a37212a71d3c316147e32d23265","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","test:image:sharp-bun-repro":"bash scripts/validate-sharp-bun-repro.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.64.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.79.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.146.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.120.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.66_1787837762439_0.3178109191330627","host":"s3://npm-registry-packages-npm-production"}},"0.0.67":{"name":"@kaeawc/auto-mobile","version":"0.0.67","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.67","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"11402002eb0914b89fece826b71ad35b4389ab80","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.67.tgz","fileCount":1188,"integrity":"sha512-4NDP2X15kMsvcHCGThTQato4YTfq6D8vk6JEsUhM5XjF1nlGDBP2Rnj4Sp4CKPvzNV4L/u+Ojj23VTeaychSgw==","signatures":[{"sig":"MEUCICB34mNC2O8G3nhsXJhS3FGCaD+Gib+AMsB6yq2VdS5LAiEA8oZ+ajOGoOrT9AqI2zED4VqQAQoboC83FBvYyplu8SQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29263746},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"a34bfc8182ccb8176200f2ce88f17e78b765c5ab","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bun test --isolate","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:fast":"bash scripts/test-fast.sh","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:windows":"bun test","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bun test --isolate --coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.65.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.80.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.147.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.120.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.67_1788129102088_0.9850575258609398","host":"s3://npm-registry-packages-npm-production"}},"0.0.68":{"name":"@kaeawc/auto-mobile","version":"0.0.68","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.68","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"ea0160b00f1941c2d5e0fb9226e3dfb4d29cb1a4","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.68.tgz","fileCount":1189,"integrity":"sha512-Ubd/LauRIR7LjKYik9HxhgHfn8U2tGFSz0s7uqXWZCDb6z3cVi/yGQlCw5lDdyMhv52CZej9mwU7SvopG0ZxOA==","signatures":[{"sig":"MEUCIAzy68GgQ7v6sY1iYKYxR0KkWC9aiS64fQda0JP1oX1eAiEAvx/F8rmYFEdtV1R/VH+0Xx05GruXXUGZoU1HmtXjKQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCpK//2f3ebCNJk2uI2t1XeFXLt0JNo97exAfdIi9qrKwIgF46/1N8RYEwAuJA18yxeRGghrbzqN7KJ9muRdduAMo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30020736},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"aaca8e2b414a72b9195c974409ad0e191cec3df4","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.65.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.80.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.148.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.122.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.68_1788702547641_0.18294178319665044","host":"s3://npm-registry-packages-npm-production"}},"0.0.69":{"name":"@kaeawc/auto-mobile","version":"0.0.69","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.69","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"e040c9993fdb2ab99c610035f5ead80080033a15","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.69.tgz","fileCount":1190,"integrity":"sha512-E9rvjuAdyTank95d+W6bW1gbpNZVllCcWbp5FOI/xP3YvTILfMFuMPZQ1CClzwq44eDZ3e3aKB+oYNY1YThYHA==","signatures":[{"sig":"MEUCIQDOjfoD4qiOtbPQpNsg2JRajSp3sE0QK5DwQtgFIXInFAIgdQJH0y2M/FgzqS0DryG+z5usEnKipCdNpBcxWizquCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCe+FyY5NrZQOXDqDSFIksYtbdqDJ81IYsGfLkkkb97CgIhAMHP6bRoYhZas2DvWnLKntu4eW3SguCKAXkIk9NXKWIZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31035990},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"6c4e09d51c5a66249a456985929f6fa74efcd619","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.66.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.81.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.148.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.124.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.69_1789014503417_0.19925610971358476","host":"s3://npm-registry-packages-npm-production"}},"0.0.70":{"name":"@kaeawc/auto-mobile","version":"0.0.70","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.70","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"e5e94affba29a076ada7e145ef44ab7a630ae003","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.70.tgz","fileCount":1190,"integrity":"sha512-j1JoeP/6yMQDzBYioX9DRF/of46ezmyKT1A2cDMcFpDeO6FzxTwmiStxSneG8tjS4K27tIXXZ4A+572mcRNGyw==","signatures":[{"sig":"MEQCICFwSTL70LvN2sj/IjlgT8te76Moy80eCnLAxIA0D2/BAiAairnzjLgFs6ghwvWCKMTI2dFEoSGjAdUHppUcSmeiMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEckn2c6sh1mBPlHUgbH1DE21ix/epHSkSlmEbePC1UTAiEA2esZmYQcwO0FnzbEPgRtGwvTQCEAwK5Jkh9TYP1u/H4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31078692},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"6eb93b3ba5fd5768f99f4aeb192e47d9297d3358","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.66.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.81.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.148.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.124.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.70_1789039374981_0.7926209751337825","host":"s3://npm-registry-packages-npm-production"}},"0.0.71":{"name":"@kaeawc/auto-mobile","version":"0.0.71","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.71","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"4288fdce1e9dd201788dbd9e173a2d6eeac060f1","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.71.tgz","fileCount":1190,"integrity":"sha512-6J6mnUl1Eirwb9i9NeTEAN/laBwsktk4iIa2+pJDg+nHtNf4ki7PGcX8CkuH/TqWdg3HTR7ner9d1V97jYUr6Q==","signatures":[{"sig":"MEQCIEPQUtF1P8K/u/OXQBztoIfILGdVaB3+eXDFmOdHNV1PAiAiC3wdiwzuXF32YayaSjv9Nsmsmeylt2aXNoqss6mdFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFrfBKXSpP6SbTYj517YsRvEr0j1G2XT1lYq2OX/1d1UAiEAvxkrA1/GERo9HPJuZLUFFDol5rXIcnjnH65i8wcyMNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31146857},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"830ee1869e7e792cb1c6496f2cddb16bf6c157e1","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.66.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.81.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.148.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@types/js-yaml":"^4.0.9","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.124.0","@types/pixelmatch":"^5.2.6","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.71_1789058850935_0.34995253786908287","host":"s3://npm-registry-packages-npm-production"}},"0.0.72":{"name":"@kaeawc/auto-mobile","version":"0.0.72","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.72","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"0ff15d22c07a49d58ad400ca1146581936a06a59","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.72.tgz","fileCount":1195,"integrity":"sha512-8iTHYelg4Pc5fhQIXFgNWcdB9OieGrg0qOetLdcKCPjRUwa3sPJThbOWzPDf/UJbH2k5UQhcZvFWPpV6GhQJ6A==","signatures":[{"sig":"MEYCIQCIC/JT3OX1B3U9snd/WrBTUNd8XOKFHmRKwXinrNLuxgIhAI5UHtxaIl19iAjPmT+KRW5OudNGxJZKUZOo4uHbI0U5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCucyorXEcicjjW1P1q74sfGlVhvoe7AVyQYDXpIqVQ5wIhANgOw2bPJ0KI9Dtj81hXPMINLKMM4kO3AE7+zQff5f8Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32738695},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"db9714ee07475a07c88478f4fa72747d12d3687c","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"oxlint --fix && bash scripts/oxlint-baseline.sh && bash scripts/check-boundaries.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.67.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.82.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.149.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.124.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.72_1789366812585_0.17601004790024422","host":"s3://npm-registry-packages-npm-production"}},"0.0.73":{"name":"@kaeawc/auto-mobile","version":"0.0.73","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.73","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"5f9613f4fbfb3d8a30d9a1133291878bd7fc38be","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.73.tgz","fileCount":1195,"integrity":"sha512-mplsjvoiv357R11AmYm6p7nbCWrsu2jsN/HcBo/0PX8rEncPUAGQgz3IZJq9GJ8nPCDWzsUDxTAfm/v3UD76vQ==","signatures":[{"sig":"MEYCIQDjujgUmqK76FC7pGR+95p9sNMs42B4va3GCwg8n+8hpAIhAIHb9M/BgUxbOv3tIN80ge/qUyJI9hD/kfsvUcd+zr3v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDFfANgtQ31lAVHiuAOXeh2TgkzoHbF/sUh05XbYNkj0AIhAJCxNMKromLuvB00iqI/NlRM69GA7RuzmfvDOLWaA3nm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33072228},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"5774738673c8096679d22fcde4fcb923fcd52cc2","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.67.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.82.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.149.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.124.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.73_1789378237321_0.894851584702631","host":"s3://npm-registry-packages-npm-production"}},"0.0.74":{"name":"@kaeawc/auto-mobile","version":"0.0.74","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.74","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"bca19c7ffb11e4cef82117c65ca574a0901d137e","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.74.tgz","fileCount":1198,"integrity":"sha512-QZ9rOFvnJj44+m0Nb7CxTM2fGiej8eX1uSqi9Qn4a+ogSpmNPeVYEDj2d36aSByTPF/9mmK23lvhuoXJiLwO8A==","signatures":[{"sig":"MEYCIQCJgpfDbCvxiQZ5u9s97kaBcYlj6jwzqnYMD4wEXZcV7QIhAOxV54mVbAOuvxi55qHnqWxUuRr0r248c/75ihO/Dmn7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUrUuwDokKSpPfY0IBxw6kAQxj/o5Gw+g1MMpfCG5RTgIhAMFuMecgxbOn8uHZ4MG2a5VoX5OsJXXPblK/Tq3ZYeqj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.74","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33646293},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"d9c6524c4d6ffe0ae0fde6aa8fe38e729fe7eebb","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.67.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.82.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.149.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.125.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.74_1789614288953_0.16052917162405467","host":"s3://npm-registry-packages-npm-production"}},"0.0.75":{"name":"@kaeawc/auto-mobile","version":"0.0.75","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.75","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"fe8409e3b269fa02d78a17962296ef65d2fb088b","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.75.tgz","fileCount":1201,"integrity":"sha512-0CAJB3R40osPCOIZxNOi1lKiVEfRViKF5OC+0zo9r7fBK5PTlyeMmMIBiL4VG5eag5HlVSqUjTgPG1HpTNDK/Q==","signatures":[{"sig":"MEQCIGrzBVvaA8Vujk+XGOvWCiMh6Ic7xoQjY59/gwSeADEBAiAqA4NGxwDJmbYq7F5df1tOtS4DvTukWOTwlc8zGNxf9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD8mCUfwmTjbhR/IuI1rhoWZPNnMps7nvkFO/wmkh68rQIhAMmdCev8BizxLbSyEPKhDTyK89aEuTqc8eCOiSdlODNY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.75","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33764089},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"26545d7b713970d24967140a833b70de12e42187","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.125.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.75_1789684904103_0.9664919371805334","host":"s3://npm-registry-packages-npm-production"}},"0.0.76":{"name":"@kaeawc/auto-mobile","version":"0.0.76","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.76","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"3a36969b0cd5a0d9ef201f279efd35642f1da4ea","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.76.tgz","fileCount":1201,"integrity":"sha512-2mNZ77FUiw00Q/6+MZZ0DpfsLybhBUwzoTyKMEgpHyBZ3KDmv1hl1bmxVKF34rewofbLJ1TJ2Ux9QKeQDASs1g==","signatures":[{"sig":"MEYCIQD7bxvCzouk3B2eqFWkJitpT4vk+iG+DKc0Imw3aillNAIhAJRgMMjkleR2n2ZQMMmiyZUM8O3jGi7Oh1RAGe9U+s0U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEBjYG+cLYbrS5L+tCU6u+ebhcEqI4CDKtHo19DNRiISAiB71ksgtnSeFOwq6PobF63TVWrtqr07J2ZvzMztkts9YA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34141097},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"887d348e153db6f5a352f91d016374ca56c87626","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.125.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.76_1789853040197_0.6633531395715586","host":"s3://npm-registry-packages-npm-production"}},"0.0.77":{"name":"@kaeawc/auto-mobile","version":"0.0.77","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.77","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"f55e28c8e7caf223e3b68a379370dee4668bfce2","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.77.tgz","fileCount":1201,"integrity":"sha512-PmwyLdcmDMetSRAOZcjutisetgX4RNE0/4H95MggSnIAq+KwJohfw6jhYp7eSajYdHoNk6YVo/qJ4Cxvy6nttA==","signatures":[{"sig":"MEQCIFK/m2lgIany0U50i1DbUXxVQNjC+TklqCD5hnomBP10AiAojULzCsEcVorttFzGgazOUltbZkOq25zvVp+LqvsLRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDsiEYrZMcx+fiUBrUqAiwWBxYMLU4FEGPuk5pdRKr/owIgNLrUhMV+ItnqynHToNUNcIo0lDnxE8p/e2t9he+lWA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.77","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34243708},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"771cdaee99a2c7f47059c7b3e2e94e4143fe0210","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.125.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.77_1789932254322_0.3635777321878064","host":"s3://npm-registry-packages-npm-production"}},"0.0.78":{"name":"@kaeawc/auto-mobile","version":"0.0.78","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.78","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"a2fc9a2e3f2181216c32c8b78c4b865fbf15a70d","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.78.tgz","fileCount":1202,"integrity":"sha512-+Qaneo5i7IQNGO00zKxYzCVHSIh5EG/WJ7LoXBWj2gSaS+Iz8LjQOS5iPpGAdWJNIS9p90qBWFcplZaXMn3Z0w==","signatures":[{"sig":"MEUCIFAoxO32TL3zC+qvsS5SYoa9gixTZWi6JQ0z9bYhloMxAiEAm5TZrd6j21h5MbxS6kLtXrK/8MVC4NvQlPiayIPQMgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA8IzshYH8seyD0KPYbXf5L+4z/hEmjJssaIiOwJPj8HAiEAl3Sf7Vn9nYZhnhxbzjwLARmCG+hR0cKM7YlKTv6zoRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.78","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34312883},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"72ee0a87d5fd078657a8cc1404fea879206f4506","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.125.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.78_1789973495801_0.3413738725434534","host":"s3://npm-registry-packages-npm-production"}},"0.0.79":{"name":"@kaeawc/auto-mobile","version":"0.0.79","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.79","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"9518c9dd96022efdbde60a2050e79ead434ffbde","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.79.tgz","fileCount":1202,"integrity":"sha512-z3yNeBH20PHzJzWq82VTqnQ7pcU3ElHEOi1Wd/K3RPbbMxJydncl/3dooHDXB1jIkJiscF3TdIV+Yzajw6HPrQ==","signatures":[{"sig":"MEUCIQC3/OWxMgtUIyHz+owOjfKYaWoojIZVM4JpK5ipXOG9fwIgPxhvvoM/05ggpxdoP+anNF+WcvDmPGvW5aZdND+JB5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDT0Go+/5BiRMEkqyfZ1uzsGdnvy5ePSQu9uCd6aTlIfgIhAMd/W8s/wyk0ZGl4LJdFIPW2UsdqAlXim7e2W8fnSaPL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34362418},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"a938589650416b5eb58ccc82e807d7ba901273d5","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2001","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.125.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.79_1789993312303_0.6415188059739316","host":"s3://npm-registry-packages-npm-production"}},"0.0.80":{"name":"@kaeawc/auto-mobile","version":"0.0.80","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"author":{"name":"Jason Pearson"},"license":"Apache-2.0","_id":"@kaeawc/auto-mobile@0.0.80","maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"homepage":"https://kaeawc.github.io/auto-mobile/","bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"bin":{"auto-mobile":"dist/src/index.js"},"dist":{"shasum":"bea27e8bcebb5d7447b59d22b5847f0aea3efe4d","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.80.tgz","fileCount":1202,"integrity":"sha512-bBfB0VOUfoaPBFzeJjeJeYUvBQDXCp+UhSx9NMj1SvGTRPjLDeSel80NrWiWA+PA874+ho+IvmatJXT0p86PLw==","signatures":[{"sig":"MEUCIQDHiIFgAkGBANp1VzWEw4bMpg+eN2rGSTXL5QNodRSSGQIgOsuzUhffLMehU20+612N9adlg/g6yRPo+Im2gjIfLe8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDgxBwW+2jeWvYnb7HRmLKZjflQJywBSEpc9eSQ1DtXYwIgZEhB/4qDCcM38jiHYijIRRV62IC/o1GXEXXezXWheCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.80","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34379015},"main":"dist/src/index.js","engines":{"bun":">=1.3.14"},"gitHead":"7bfcbceeb45fa1b97d55a34786db4ec889966d6a","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2002","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.126.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"tmp":"tmp/auto-mobile_0.0.80_1790012063062_0.4654703712780546","host":"s3://npm-registry-packages-npm-production"}},"0.0.81":{"_id":"@kaeawc/auto-mobile@0.0.81","bin":{"auto-mobile":"dist/src/index.js"},"bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"dist":{"shasum":"8bccb16a3492201607823c292dd89ebd0c8387e2","tarball":"https://registry.npmjs.org/@kaeawc/auto-mobile/-/auto-mobile-0.0.81.tgz","fileCount":1202,"integrity":"sha512-IWBrQTnESugdTFKl7+U2eOfyV4K373tc3zZ871ZKy/GDjsT0NJwA9jE0E42TFs/PpJbtpjV1/UjuGEIJsgzt4A==","signatures":[{"sig":"MEUCIQC/CHom2iwQOCvexbgMPNAAatSgUTxr1Xeu3hDbfrRjCwIgXfNzddYumUvh1hbNuFR1YSjRKPsQ/6/hcmAFI6bNsgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEJ8FlVmZxdFb/OmqaTL12P92LoS4pIt4LBYkvTtec5uAiA4BYOwGHejPFJvH0ohfKfngmcgYwFXKQkQsKOu2HxRkg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kaeawc%2fauto-mobile@0.0.81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34361792},"main":"dist/src/index.js","name":"@kaeawc/auto-mobile","author":{"name":"Jason Pearson"},"engines":{"bun":">=1.3.14"},"gitHead":"f3a782c52778c73909619a8521b1105a334ec3a3","license":"Apache-2.0","mcpName":"dev.jasonpearson/auto-mobile","scripts":{"lint":"bash scripts/lint.sh","loop":"bash scripts/validate-loop.sh","test":"bash scripts/test-ts.sh unit","build":"bun build.ts && chmod +x dist/src/index.js","clean":"rm -rf dist","watch":"bun --watch src/index.ts","format":"oxfmt","dev:ios":"bash scripts/local-dev/ios-hot-reload.sh --skip-ai","test:all":"bash scripts/test-ts.sh all","test:fast":"bash scripts/test-ts.sh unit","test:unit":"bash scripts/test-ts.sh unit","typecheck":"bash scripts/typecheck-baseline.sh","lint:prune":"bash scripts/oxlint-baseline.sh --update","turbo:gate":"turbo run lint build typecheck --output-logs=errors-only","turbo:lint":"turbo run lint","turbo:test":"turbo run test","dev:android":"bash scripts/local-dev/android-hot-reload.sh --skip-ai","postpublish":"mv README.md.backup README.md || true","test:stress":"bash scripts/test-ts.sh stress","turbo:build":"turbo run build","dead-code:ts":"bash scripts/detect-dead-code-ts.sh","format:check":"oxfmt --check","profile:heap":"bun --expose-gc --heap-prof scripts/stress-test.ts","test:changed":"bash scripts/test-ts.sh changed","test:windows":"bash scripts/test-ts.sh unit","lint:baseline":"bash scripts/oxlint-baseline.sh --update","test:coverage":"bash scripts/test-ts.sh coverage","validate:yaml":"bun scripts/validate-yaml.ts","prepublishOnly":"cp README.md README.md.backup && bun scripts/npm/transform-readme.js","profile:memory":"bun --expose-gc --inspect scripts/detect-memory-leaks.ts --mode=profile","test:image:bun":"bun scripts/ci/image-runtime-smoke.ts","turbo:test:all":"turbo run test:all","turbo:validate":"turbo run lint build test check:android-emulator-boundary check:ffmpeg-boundary check:host-shell-boundary check:ios-ctrl-proxy-process-boundary","benchmark-tools":"bun scripts/benchmark-mcp-tools.ts","turbo:test:unit":"turbo run test:unit","turbo:typecheck":"turbo run typecheck","check:boundaries":"bash scripts/check-boundaries.sh","estimate-context":"bun scripts/estimate-context-usage.ts","test:integration":"bash scripts/test-ts.sh integration","test:startup:bun":"bash scripts/ci/mcp-startup-smoke.sh","typecheck:update":"bash scripts/typecheck-baseline.sh --update","benchmark-context":"bun scripts/benchmark-context-thresholds.ts","benchmark-startup":"bash scripts/benchmark-startup.sh","dead-code:ts:knip":"bunx knip","test:memory-leaks":"bun --expose-gc scripts/detect-memory-leaks.ts","turbo:test:stress":"turbo run test:stress","bootstrap:worktree":"bash scripts/codex/bootstrap-worktree.sh","check:stdlib-first":"bash scripts/check-stdlib-first.sh","dead-code:ts:prune":"bash -o pipefail -c 'bunx ts-prune --project tsconfig.dead-code.json -i src/db/migrations | (grep -v \"(used in module)\" || true) | bash scripts/filter-ts-prune-allowlist.sh'","dev:ios:hot-reload":"bash scripts/local-dev/ios-hot-reload.sh","turbo:test:changed":"turbo run test:changed","check:ffmpeg-boundary":"bash scripts/check-ffmpeg-execution-boundary.sh","check:plutil-boundary":"bun scripts/check-no-direct-plutil.ts","check:simctl-boundary":"bash scripts/check-no-new-direct-simctl.sh","dev:android:hot-reload":"bash scripts/local-dev/android-hot-reload.sh","turbo:test:integration":"turbo run test:integration","check:security-boundary":"bash scripts/check-no-new-direct-security.sh","validate:ios-continuity":"bun scripts/validate-ios-simulator-continuity.ts","check:host-shell-boundary":"bun scripts/check-host-shell-boundary.ts","check:xcodebuild-boundary":"bash scripts/check-no-new-direct-xcodebuild.sh","check:shell-quote-boundary":"bash scripts/check-no-local-shell-quote.sh","benchmark-npm-unpacked-size":"bun scripts/benchmark-npm-unpacked-size.ts","check:bun-version-coherence":"bun scripts/check-bun-version-coherence.ts","check:git-metadata-boundary":"bash scripts/check-no-new-direct-git-metadata.sh","gate:android-video-baseline":"bun scripts/webrtc/android-video-baseline-gate.ts","check:daemon-launcher-boundary":"bash scripts/check-daemon-launcher-boundary.sh","test:integration:webrtc-device":"bash scripts/webrtc/run-mediamtx-device-integration.sh","check:android-emulator-boundary":"bash scripts/check-android-emulator-boundary.sh","test:integration:webrtc-mediamtx":"bash scripts/webrtc/run-mediamtx-publisher-integration.sh","check:app-bundle-metadata-boundary":"bash scripts/check-app-bundle-metadata-boundary.sh","check:simulator-tcc-sqlite-boundary":"bash scripts/check-simulator-tcc-sqlite-boundary.sh","check:ios-ctrl-proxy-process-boundary":"bash scripts/check-ios-ctrl-proxy-process-boundary.sh"},"version":"0.0.81","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9b91837e-1af0-431c-92c0-aa69b1401ed0"}},"homepage":"https://kaeawc.github.io/auto-mobile/","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"overrides":{"qs":"^6.14.2","tar":"^7.5.8","hono":"^4.11.10","lodash":"^4.17.23","@ts-morph/common":{"minimatch":"3.1.5"}},"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"//overrides":{"qs":"CVE-2026-2391 (GHSA-w7fw-mjwx-w883): arrayLimit bypass in comma parsing allows denial of service","tar":"CVE-2026-26960 (GHSA-83g3-92jg-28cx): Arbitrary file read/write via hardlink target escape through symlink chain","hono":"GHSA-gq3j-xvxp-8hrf: timing comparison hardening in basicAuth and bearerAuth","lodash":"CVE-2025-13465: prototype pollution in _.unset and _.omit"},"_npmVersion":"11.5.1","description":"Mobile device interaction automation via MCP","directories":{},"maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"_nodeVersion":"20.20.2","contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"dependencies":{"ms":"2.1.3","sax":"1.4.1","zod":"3.25.76","jimp":"1.6.1","mime":"3.0.0","pako":"1.0.11","debug":"4.4.3","sharp":"0.35.3","tslib":"2.8.1","utif2":"4.1.0","bmp-ts":"1.0.9","kysely":"0.29.5","omggif":"1.0.10","semver":"7.8.5","gifwrap":"0.10.1","ieee754":"1.2.1","image-q":"4.0.0","jpeg-js":"0.4.4","strtok3":"10.3.5","any-base":"1.1.0","file-type":"21.3.4","@jimp/core":"1.6.1","@jimp/diff":"1.6.1","tinycolor2":"1.6.0","xmlbuilder":"11.0.1","@img/colour":"1.1.0","@jimp/types":"1.6.1","@jimp/utils":"1.6.1","await-to-js":"3.0.0","detect-libc":"2.1.2","exif-parser":"0.1.12","token-types":"6.1.2","@jimp/js-bmp":"1.6.1","@jimp/js-gif":"1.6.1","@jimp/js-png":"1.6.1","@jimp/js-jpeg":"1.6.1","@jimp/js-tiff":"1.6.1","@jimp/file-ops":"1.6.1","@emnapi/runtime":"1.11.2","@tokenizer/token":"0.3.0","parse-bmfont-xml":"1.1.6","@jimp/plugin-blit":"1.6.1","@jimp/plugin-blur":"1.6.1","@jimp/plugin-crop":"1.6.1","@jimp/plugin-flip":"1.6.1","@jimp/plugin-hash":"1.6.1","@jimp/plugin-mask":"1.6.1","uint8array-extras":"1.5.0","@jimp/plugin-color":"1.6.1","@jimp/plugin-cover":"1.6.1","@jimp/plugin-print":"1.6.1","@tokenizer/inflate":"0.4.1","parse-bmfont-ascii":"1.0.6","simple-xml-to-json":"1.2.3","@borewit/text-codec":"0.2.2","@jimp/plugin-circle":"1.6.1","@jimp/plugin-dither":"1.6.1","@jimp/plugin-resize":"1.6.1","@jimp/plugin-rotate":"1.6.1","parse-bmfont-binary":"1.0.6","@jimp/plugin-contain":"1.6.1","@jimp/plugin-fisheye":"1.6.1","@jimp/plugin-displace":"1.6.1","@jimp/plugin-quantize":"1.6.1","xml-parse-from-string":"1.0.1","@jimp/plugin-threshold":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ws":"^8.19.0","ajv":"8.20.0","tsx":"^4.21.0","knip":"^6.0.0","oxfmt":"0.68.0","pngjs":"^7.0.0","turbo":"^2.8.10","oxlint":"1.83.0","werift":"^0.24.0","xml2js":"^0.6.2","adm-zip":"^0.6.0","js-yaml":"^5.1.0","ts-prune":"^0.10.3","@types/ws":"^8.18.1","fast-check":"^4.9.0","oxc-parser":"0.150.0","pixelmatch":"^7.1.0","typescript":"6.0.3","@types/node":"^26.0.0","ajv-formats":"^3.0.1","async-mutex":"^0.5.0","js-tiktoken":"^1.0.21","@types/pngjs":"^6.0.5","@types/xml2js":"^0.4.14","@faker-js/faker":"^10.2.0","oxlint-tsgolint":"7.0.2002","reflect-metadata":"^0.2.2","@anthropic-ai/sdk":"^0.126.0","@types/pixelmatch":"^7.1.0","@modelcontextprotocol/sdk":"^1.26.0","@typescript/native-preview":"7.0.0-dev.20260707.2"},"bundleDependencies":["@jimp/diff","@jimp/js-png","parse-bmfont-xml"],"optionalDependencies":{"@img/sharp-linux-arm":"0.35.3","@img/sharp-linux-x64":"0.35.3","@img/sharp-win32-x64":"0.35.3","@img/sharp-darwin-x64":"0.35.3","@img/sharp-win32-ia32":"0.35.3","@img/sharp-linux-arm64":"0.35.3","@img/sharp-linux-ppc64":"0.35.3","@img/sharp-linux-s390x":"0.35.3","@img/sharp-win32-arm64":"0.35.3","@img/sharp-darwin-arm64":"0.35.3","@img/sharp-linux-riscv64":"0.35.3","@img/sharp-linuxmusl-x64":"0.35.3","@img/sharp-linuxmusl-arm64":"0.35.3","@img/sharp-libvips-linux-arm":"1.3.2","@img/sharp-libvips-linux-x64":"1.3.2","@img/sharp-libvips-darwin-x64":"1.3.2","@img/sharp-libvips-linux-arm64":"1.3.2","@img/sharp-libvips-linux-ppc64":"1.3.2","@img/sharp-libvips-linux-s390x":"1.3.2","@img/sharp-libvips-darwin-arm64":"1.3.2","@img/sharp-libvips-linux-riscv64":"1.3.2","@img/sharp-libvips-linuxmusl-x64":"1.3.2","@img/sharp-libvips-linuxmusl-arm64":"1.3.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auto-mobile_0.0.81_1790034096371_0.52286317151788"}}},"time":{"created":"2026-01-04T13:24:35.283Z","modified":"2026-09-21T23:41:36.979Z","0.0.6":"2026-01-04T13:24:35.670Z","0.0.7":"2026-01-15T06:24:23.732Z","0.0.8":"2026-02-04T06:42:29.997Z","0.0.9":"2026-02-04T06:56:31.573Z","0.0.11":"2026-02-11T05:53:54.256Z","0.0.12":"2026-02-11T07:14:55.205Z","0.0.13":"2026-02-13T03:02:41.878Z","0.0.14":"2026-03-26T03:14:44.499Z","0.0.15":"2026-03-27T02:17:42.929Z","0.0.16":"2026-04-03T20:34:41.978Z","0.0.17":"2026-04-16T01:44:34.122Z","0.0.18":"2026-04-17T04:13:18.815Z","0.0.19":"2026-04-29T20:01:21.655Z","0.0.20":"2026-04-30T09:22:17.391Z","0.0.21":"2026-04-30T10:14:22.356Z","0.0.22":"2026-04-30T14:57:53.428Z","0.0.23":"2026-04-30T21:34:53.749Z","0.0.24":"2026-05-01T03:34:01.103Z","0.0.25":"2026-05-06T15:27:53.381Z","0.0.26":"2026-05-07T14:55:14.224Z","0.0.27":"2026-05-18T22:15:54.089Z","0.0.28":"2026-05-19T19:00:27.094Z","0.0.30":"2026-05-20T15:35:08.857Z","0.0.31":"2026-05-27T21:54:31.526Z","0.0.32":"2026-06-04T18:36:22.735Z","0.0.33":"2026-06-04T19:32:50.355Z","0.0.34":"2026-06-04T21:20:56.068Z","0.0.35":"2026-06-10T01:20:49.011Z","0.0.36":"2026-06-23T20:04:18.873Z","0.0.37":"2026-06-24T04:46:53.677Z","0.0.38":"2026-06-25T20:37:59.026Z","0.0.39":"2026-06-29T21:05:12.314Z","0.0.40":"2026-06-30T23:43:49.750Z","0.0.41":"2026-07-10T01:59:00.753Z","0.0.42":"2026-07-10T13:19:05.663Z","0.0.43":"2026-07-10T16:36:16.164Z","0.0.44":"2026-07-11T02:18:58.989Z","0.0.45":"2026-07-24T04:08:54.114Z","0.0.46":"2026-07-29T15:10:31.293Z","0.0.47":"2026-07-30T17:55:49.352Z","0.0.48":"2026-08-01T01:49:06.738Z","0.0.49":"2026-08-03T01:37:53.517Z","0.0.50":"2026-08-03T14:36:35.888Z","0.0.51":"2026-08-09T18:56:00.943Z","0.0.52":"2026-08-10T02:49:19.559Z","0.0.53":"2026-08-11T15:41:05.817Z","0.0.55":"2026-08-13T16:49:05.218Z","0.0.56":"2026-08-14T22:18:56.958Z","0.0.57":"2026-08-14T23:48:57.660Z","0.0.58":"2026-08-15T03:59:57.956Z","0.0.59":"2026-08-19T03:56:52.529Z","0.0.60":"2026-08-19T12:38:07.694Z","0.0.61":"2026-08-22T14:58:26.696Z","0.0.62":"2026-08-23T20:19:58.125Z","0.0.63":"2026-08-24T07:35:24.496Z","0.0.64":"2026-08-25T21:53:52.508Z","0.0.65":"2026-08-27T01:48:24.494Z","0.0.66":"2026-08-27T13:36:02.770Z","0.0.67":"2026-08-30T22:31:42.371Z","0.0.68":"2026-09-06T13:49:07.836Z","0.0.69":"2026-09-10T04:28:23.691Z","0.0.70":"2026-09-10T11:22:55.210Z","0.0.71":"2026-09-10T16:47:31.178Z","0.0.72":"2026-09-14T06:20:12.779Z","0.0.73":"2026-09-14T09:30:37.585Z","0.0.74":"2026-09-17T03:04:49.216Z","0.0.75":"2026-09-17T22:41:44.335Z","0.0.76":"2026-09-19T21:24:00.412Z","0.0.77":"2026-09-20T19:24:14.563Z","0.0.78":"2026-09-21T06:51:35.996Z","0.0.79":"2026-09-21T12:21:52.508Z","0.0.80":"2026-09-21T17:34:23.313Z","0.0.81":"2026-09-21T23:41:36.590Z"},"bugs":{"url":"https://github.com/kaeawc/auto-mobile/issues"},"author":{"name":"Jason Pearson"},"license":"Apache-2.0","homepage":"https://kaeawc.github.io/auto-mobile/","keywords":["adb","android","auto-mobile","automation","bridge","debug","mcp","mobile","ui-testing"],"repository":{"url":"git+https://github.com/kaeawc/auto-mobile.git","type":"git"},"description":"Mobile device interaction automation via MCP","contributors":[{"name":"Jason Pearson","email":"jason.d.pearson@gmail.com"}],"maintainers":[{"name":"kaeawc","email":"jason.d.pearson@gmail.com"}],"readme":"# AutoMobile\n\n[![Pull Request](https://github.com/kaeawc/auto-mobile/actions/workflows/pull_request.yml/badge.svg)](https://github.com/kaeawc/auto-mobile/actions/workflows/pull_request.yml)\n[![On Merge](https://github.com/kaeawc/auto-mobile/actions/workflows/merge.yml/badge.svg)](https://github.com/kaeawc/auto-mobile/actions/workflows/merge.yml)\n[![Nightly](https://github.com/kaeawc/auto-mobile/actions/workflows/nightly.yml/badge.svg)](https://github.com/kaeawc/auto-mobile/actions/workflows/nightly.yml)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n\n![Platform: macOS](https://img.shields.io/badge/platform-macOS-lightgrey)\n![Platform: Linux](https://img.shields.io/badge/platform-Linux-lightgrey)\n\n![TypeScript tests: 17,030](https://img.shields.io/badge/TypeScript_tests-17%2C030-3178C6)\n![Kotlin tests: 3,334](https://img.shields.io/badge/Kotlin_tests-3%2C334-7F52FF)\n![Swift tests: 945](https://img.shields.io/badge/Swift_tests-945-F05138)\n![Kotlin coverage](https://img.shields.io/endpoint?url=https://kaeawc.github.io/auto-mobile/kotlin-coverage-badge.json)\n![Swift coverage](https://img.shields.io/endpoint?url=https://kaeawc.github.io/auto-mobile/swift-coverage-badge.json)\n\n![AutoMobile sticker](https://github.com/kaeawc/auto-mobile/raw/main/docs/img/auto_mobile_sticker_splash.png)\n\n**AutoMobile lets AI agents control your mobile devices using natural language.** Tell an AI what you want to do, and it interacts with your Android or iOS app.\n\nIt can do all this by being an MCP server that uses standard platform tools like adb & simctl paired with additional Kotlin & Swift libraries and apps. All components are open source. The point is to provide mobile engineers with AI workflow tools to perform UX deep dives, reproduce bugs, and run automated tests.\n\n![Setting an alarm in the Clock app](https://github.com/kaeawc/auto-mobile/raw/main/docs/img/clock-app.gif)\n_An AI agent navigating to the Clock app, creating a new alarm_\n\n![Searching YouTube for a video](https://github.com/kaeawc/auto-mobile/raw/main/docs/img/youtube-search.gif)\n_An AI agent searching YouTube and browsing results_\n\n### Explore and Test\n\n| Task                                                         | What it does                                                                         |\n| ------------------------------------------------------------ | ------------------------------------------------------------------------------------ |\n| **[Explore app UX](https://github.com/kaeawc/auto-mobile/blob/main/docs/using/agent-examples.md)**           | Navigate your app, discover screens, map user flows, identify confusing interactions |\n| **[Reproduce bugs](https://github.com/kaeawc/auto-mobile/blob/main/docs/using/agent-examples.md)**           | Paste a bug report and get exact reproduction steps with screenshots                 |\n| **[Create UI tests](https://github.com/kaeawc/auto-mobile/blob/main/docs/using/ui-tests.md)**                | Describe test scenarios in plain English, get executable test plans                  |\n| **[Measure startup time](https://github.com/kaeawc/auto-mobile/blob/main/docs/using/agent-examples.md)**     | Profile cold and warm launch performance                                             |\n| **[Check scroll performance](https://github.com/kaeawc/auto-mobile/blob/main/docs/using/agent-examples.md)** | Detect jank and dropped frames                                                       |\n\n## How it works\n\n- 🤖 **Fast UX Inspection** Kotlin Accessibility Service and Swift XCTestService to enable fast, accurate observations. 10x faster than the next fastest observation toolkit.\n- 🦾 **Full Touch Injection** Tap, Swipe, Pinch, Drag & Drop, Shake with automatic element targeting.\n- ♻️ **Tool Feedback** [Observations](https://github.com/kaeawc/auto-mobile/blob/main/docs/design-docs/mcp/interaction-loop.md) drive the interaction loop for all [tool calls](https://github.com/kaeawc/auto-mobile/blob/main/docs/tools.md).\n- 🧪 **Test Execution** [Kotlin JUnitRunner](https://github.com/kaeawc/auto-mobile/blob/main/docs/design-docs/plat/android/junit-runner/index.md) & [Swift XCTestRunner](https://github.com/kaeawc/auto-mobile/blob/main/docs/using/ui-tests.md#ios--swift-package-manager) execute tests natively handling device pooling, multi-device tests, and automatically optimizing test timing.\n\n## Get Started\n\nYou can use our interactive installer to step through all host platform requirements and configuration options. It checks host dependencies, optionally downloads Android or iOS developer tools, and configured the MCP daemon.\n\n```bash title=\"One-line install (click to copy)\"\ncurl -fsSL https://raw.githubusercontent.com/kaeawc/auto-mobile/refs/heads/main/scripts/install.sh | bash\n```\n\nPrefer Homebrew for the CLI:\n\n```bash title=\"Homebrew (click to copy)\"\nbrew install kaeawc/tap/auto-mobile\n```\n\nor follow the [installation guide](https://github.com/kaeawc/auto-mobile/blob/main/docs/index.md#install).\n\n## Documentation\n\n- **[Full Documentation](https://github.com/kaeawc/auto-mobile/blob/main/docs/index.md)** - Complete guide with examples\n- **[FAQ](https://github.com/kaeawc/auto-mobile/blob/main/docs/faq.md)** - Common questions answered\n- **[Design Docs](https://github.com/kaeawc/auto-mobile/blob/main/docs/design-docs/index.md)** - Architecture and implementation details\n\n## Contributing\n\n- [Code of Conduct](https://github.com/kaeawc/auto-mobile/blob/main/CODE_OF_CONDUCT.md)\n- Please report security vulnerabilities via GitHub\n- [Contributing](https://github.com/kaeawc/auto-mobile/blob/main/.github/CONTRIBUTING.md)\n","readmeFilename":"README.md"}