{"_id":"@jshookmcp/jshook","_rev":"23-4f9b46d85c35559600f9d2f1346634b4","name":"@jshookmcp/jshook","dist-tags":{"latest":"0.3.5"},"versions":{"0.1.2":{"name":"@jshookmcp/jshook","version":"0.1.2","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"MIT","_id":"@jshookmcp/jshook@0.1.2","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"2973eaa32cbfd751a60860d85a5dfeb0dd10282f","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.2.tgz","fileCount":1592,"integrity":"sha512-HQs62MIPF2LPbRN1VFr0NvwgxyPKh0YA+Ozc+inPn2z0fw/4zH40ZnbvFv3Q+cMd4FUXbYOLrl0aJbazED46kA==","signatures":[{"sig":"MEUCIQCy0dRErTSTdR/MymFDcPjk/WI/xw38VmSD9HrN10GuXAIgI9Y/TD6haQRc7mhhmrTcxlUQLgVEY8sFna7TZj+nH/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4822175},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild","better-sqlite3"]},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"d2929fbdf6450710329ed4d1fd2e755ebd69ecf8","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","package":"pnpm pack","prepare":"pnpm run build","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","audit:tools":"node scripts/audit-tools.mjs","install:full":"pnpm install && pnpm exec camoufox-js fetch","prepublishOnly":"pnpm run check"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 242 built-in tools (234 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.3.0","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.2_1772847044580_0.1317037076346399","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@jshookmcp/jshook","version":"0.1.3","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"MIT","_id":"@jshookmcp/jshook@0.1.3","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"6d698741c0dbb09fe6c8e9b27c679abe3fc12694","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.3.tgz","fileCount":1596,"integrity":"sha512-n/dVQvNiL25xRVgQf+SYdBkR3GjlsuiqDpwneB0SleYmB0G5Uh0mTq+EwmiipOyqcNDuKG7LRPtdBau5RX7iog==","signatures":[{"sig":"MEYCIQDyb1zilDC3uTn1GWtCZb75hFi4YGzP1wGpe/8Vq4XeLwIhAI/b7IVXxxES7khE+EzBcSwdYBGjlt5VO9G0dAuzw9e3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4830795},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild","better-sqlite3"]},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"170f94391e4cc85ffcb94cd4d1568ea436130563","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","package":"pnpm pack","prepare":"pnpm run build","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","audit:tools":"node scripts/audit-tools.mjs","install:full":"pnpm install && pnpm exec camoufox-js fetch","prepublishOnly":"pnpm run check"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 242 built-in tools (234 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.3.0","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.3_1772853576469_0.5885524211814843","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@jshookmcp/jshook","version":"0.1.4","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"MIT","_id":"@jshookmcp/jshook@0.1.4","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"b91aa6d2df1a8becffce560a53d9fd246beaec0a","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.4.tgz","fileCount":1596,"integrity":"sha512-Krr+fAyHa4i6vEcK+IHPrLuCHJdCVcqDcBPstWto69KfBRnpqVGG8OU3jc76w3bPbdJny1C95EeRAxkbsMi/Kg==","signatures":[{"sig":"MEYCIQD4436htoVlM0boqPRWf8CloTFk35WzoKvAzXVgX80WwgIhAKjfyEQay7ebc5wN/QIBCtLnkKfEAvGQQ/9NBjK53FrK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4852578},"main":"dist/index.js","type":"module","_from":"file:jshookmcp-jshook-0.1.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","package":"pnpm pack","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","audit:tools":"node scripts/audit-tools.mjs","install:full":"pnpm install && pnpm exec camoufox-js fetch"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"C:\\Users\\vmoranv\\AppData\\Local\\Temp\\6d896d2e190741b3e555889fc14543f8\\jshookmcp-jshook-0.1.4.tgz","_integrity":"sha512-Krr+fAyHa4i6vEcK+IHPrLuCHJdCVcqDcBPstWto69KfBRnpqVGG8OU3jc76w3bPbdJny1C95EeRAxkbsMi/Kg==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 242 built-in tools (234 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.3.0","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.4_1772866691329_0.6639127020864846","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@jshookmcp/jshook","version":"0.1.5","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.1.5","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"7dcbbe72aed6bfdf7df77e02054b6ca20a5b4645","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.5.tgz","fileCount":812,"integrity":"sha512-q5lspl7P9E1tg+IDCVDN7NLC3M6ZoOMv6XYbLFZVfxYeu6haAQ8OVuaIgYSC936Kvd9PnZHQVxI8luRxGzjytg==","signatures":[{"sig":"MEYCIQDCfLRufc2ZhDtlnLLEl6JZFH795ljxinMPi/0iwvbM1AIhAPu8dB8sY0ctjsW51+18c+ITlPPey00xOeIUVPJ+cgQN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2838965},"main":"dist/index.js","pnpm":{"overrides":{"hono":"4.12.5","esbuild":"0.27.3","basic-ftp":"5.2.0","minimatch":"10.2.4","@hono/node-server":"1.19.11","express-rate-limit":"8.3.0"},"onlyBuiltDependencies":["better-sqlite3","esbuild","koffi"]},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"5be94a35c699690ae2d6ddb13f258c7fc92e81d2","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","prepack":"pnpm run build","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","prepublishOnly":"pnpm run check","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server with 244 built-in tools (236 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","prettier":"^3.8.1","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.5_1772963713451_0.1284837349503829","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@jshookmcp/jshook","version":"0.1.6","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.1.6","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"c92faffef33da9945659db02e837e65baf6770f5","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.6.tgz","fileCount":816,"integrity":"sha512-6SgRj7GiIHtslQKL7oQE2qBoWNQXfunKkAk5se0UVZBg+NuG7zypTy5y6jUhOEK2wPQM2xhWstBhddmBIkrGLw==","signatures":[{"sig":"MEUCIF7Qexj8NwZ8nVlPf+Vn8CF9tZi63RuB6VeO0JIjLtEeAiEAs7xa5baEej0LSsf0eLrQ6KOGUG/peWm812OyGBlt7os=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2905513},"main":"dist/index.js","pnpm":{"overrides":{"hono":"4.12.5","esbuild":"0.27.3","basic-ftp":"5.2.0","minimatch":"10.2.4","@hono/node-server":"1.19.11","express-rate-limit":"8.3.0"},"onlyBuiltDependencies":["better-sqlite3","esbuild","koffi"]},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"675f4b3a151ea820ab8651718a7fcf1f54caa108","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","prepack":"pnpm run build","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"lefthook install","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","prepublishOnly":"pnpm run check","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 244 built-in tools (236 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.6_1773117508013_0.711675610349223","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@jshookmcp/jshook","version":"0.1.7","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.1.7","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"14e0d6b6c3430a5fb6748bc796855b72f71fe357","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.7.tgz","fileCount":816,"integrity":"sha512-AKDo1Y/TXnlakG9WzMKDFwCUlaSddP7O2sZQgrx2Nw9Tu0iGlKsmlkFQCvolHby20G3wehNUiChN7uMoupPQ+g==","signatures":[{"sig":"MEUCIQCwo+WJQYYkNVruvx43UtVWl79ON1fpF9maE4uq/BZLDAIgBHhyjduzOntYYvx7YpOqwdR1/y636GGni+MeP1XekzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2903194},"main":"dist/index.js","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.1.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"lefthook install","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.1.7.tgz","_integrity":"sha512-AKDo1Y/TXnlakG9WzMKDFwCUlaSddP7O2sZQgrx2Nw9Tu0iGlKsmlkFQCvolHby20G3wehNUiChN7uMoupPQ+g==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server with 244 built-in tools (236 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.7_1773137957889_0.8003773343178697","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@jshookmcp/jshook","version":"0.1.8","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.1.8","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.js","jshookmcp":"dist/index.js"},"dist":{"shasum":"f40bbcf052b2681a8934150e671ef77411dbf78f","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.8.tgz","fileCount":821,"integrity":"sha512-9nMuZFr2rXrpgjzIxzKA285nBETHyv9AyNcQUfIWx9vxUXHUx4hOzd7OuAcKm2XFql1WlqEIZvEH5FnDJDxmOA==","signatures":[{"sig":"MEQCIBRaQ4qltJ2t4IdeOdwGs5NBNQFcivgkVKofcUdGb1f5AiBaVsGTNrHidFgK29iJIyi4wPMp9JeYTQ1n/ejqI+WdcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2929230},"main":"dist/index.js","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.1.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.1.8.tgz","_integrity":"sha512-9nMuZFr2rXrpgjzIxzKA285nBETHyv9AyNcQUfIWx9vxUXHUx4hOzd7OuAcKm2XFql1WlqEIZvEH5FnDJDxmOA==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server with 244 built-in tools (236 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","webcrack":"^2.15.1","commander":"^14.0.3","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.8_1773206161705_0.11650974678057313","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@jshookmcp/jshook","version":"0.1.9","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.1.9","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"fef7055fc8e1f9487e08c2d35721e21ac30a6765","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.1.9.tgz","fileCount":1222,"integrity":"sha512-iM+AfupXQXZ/KSoWGJSFldkU75qmPoMZBdeg4tKsRHRmPescv+keHEMXf3SB/QUxnzUv8rwscJvgsyBARZKd+g==","signatures":[{"sig":"MEQCIF7rdx9iiEAfrDmcuwpx1ON9Re2SqzpmLMdLOqf3AU97AiA/zZc22ZZLsV/bxxqe+DsHKRejIjfH5iEtsC4KaAo4UA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3808132},"main":"dist/src/index.js","pnpm":{"overrides":{"hono":"4.12.7","esbuild":"0.27.3","basic-ftp":"5.2.0","minimatch":"10.2.4","isolated-vm":"6.1.2","@hono/node-server":"1.19.11","express-rate-limit":"8.3.0"},"onlyBuiltDependencies":["better-sqlite3","esbuild","isolated-vm","koffi"]},"type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"184a6c40f793a9841a266c66a364e913bc27632f","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","prepack":"pnpm run build","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","prepublishOnly":"pnpm run check","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 244 built-in tools (236 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsx":"^4.21.0","vite":"^6.0.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@vitest/coverage-v8":"^4.0.18","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.1.9_1773483340564_0.8204818591071639","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@jshookmcp/jshook","version":"0.2.0","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.0","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"3e41c08ae13a36e49972750d6f8030dc6ae4f1a3","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.0.tgz","fileCount":1222,"integrity":"sha512-yXKkeEmIvljPDvxwyGtxMNMDGVWqDryMYKvpXzDY8qvuUEOo58Zaac+GNKadv0aOPvR2vmXfcMxpsev/WsaSSw==","signatures":[{"sig":"MEUCICrUDXKFF8XjMxWaz+UJOlzKNZklqQamTw0t3hLwJx8BAiEAuky5IzE7vl4wjmAVVLov5nKWEOOnoH2VcL4YIwl+13E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3805534},"main":"dist/src/index.js","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.2.0.tgz","types":"./dist/src/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.2.0.tgz","_integrity":"sha512-yXKkeEmIvljPDvxwyGtxMNMDGVWqDryMYKvpXzDY8qvuUEOo58Zaac+GNKadv0aOPvR2vmXfcMxpsev/WsaSSw==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 244 built-in tools (236 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vite":"^6.0.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@vitest/coverage-v8":"^4.0.18","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.0_1773485124995_0.8534475869747975","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@jshookmcp/jshook","version":"0.2.1","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.1","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"314decc84674bb3f09dd597438c67adef6a143f8","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.1.tgz","fileCount":1734,"integrity":"sha512-hiWtn0mqQogJKBssEjyMxqZ+LBhlxdRx3m2nuZwYPnhDlgUy/I/q4U3YdCYLGwIwhxKpghHUAj80MPsygQf+Ng==","signatures":[{"sig":"MEUCIGanlPa3tY696R+pWfNkQjLrkVARaT77QAZjCH1pvV8VAiEAzjJcr9d4rbtKSf1wi465dYQ03vUyWRz31FKBkedAFzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6306420},"main":"dist/src/index.js","pnpm":{"overrides":{"hono":"4.12.7","esbuild":"0.27.3","basic-ftp":"5.2.0","minimatch":"10.2.4","isolated-vm":"6.1.2","@hono/node-server":"1.19.11","express-rate-limit":"8.3.0"},"onlyBuiltDependencies":["better-sqlite3","esbuild","isolated-vm","koffi"]},"type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"40d8d96b4e2f9618ab5a31c51c385170f6596add","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json && tsc-alias -p tsconfig.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","prepack":"pnpm run build","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","prepublishOnly":"pnpm run check","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 238 built-in tools (224 domain tools across 16 domains) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsx":"^4.21.0","vite":"^6.0.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","estree-walker":"^2.0.2","@vitest/coverage-v8":"^4.0.18","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.1_1773758181142_0.9797111497406845","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@jshookmcp/jshook","version":"0.2.2","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.2","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"1bbdc35eddd94fab14a54be6bf3563395091e436","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.2.tgz","fileCount":1052,"integrity":"sha512-nDXqvoZeaIXLC3vw+jfsHkT68TZeGZCWCtnqMNpIDW8wN5cPecWwSSDKv9KbpcA5a4CN5/6cZFWmJURh1v1bHg==","signatures":[{"sig":"MEUCIQDuAu80Brux4/PEF8vok/DnjGgxg6du8qswKtgGY67N8wIgVX0tzUzTAwJTuBjCARq+oIQkh5kgNDd0zSe4atIYPyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3484903},"main":"dist/src/index.js","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.2.2.tgz","types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./plugin-api":{"types":"./dist/src/server/plugin-api.d.ts","import":"./dist/src/server/plugin-api.js"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","typecheck":"tsc --noEmit -p tsconfig.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.2.2.tgz","_integrity":"sha512-nDXqvoZeaIXLC3vw+jfsHkT68TZeGZCWCtnqMNpIDW8wN5cPecWwSSDKv9KbpcA5a4CN5/6cZFWmJURh1v1bHg==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 249 built-in tools (242 domain tools across 17 domains plus 7 built-in meta-tools) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orc","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ajv":"^8.18.0","ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","ajv-formats":"^3.0.1","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.30","vite":"^6.0.0","eslint":"^10.0.2","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","medium-zoom":"^1.1.0","estree-walker":"^2.0.2","quickjs-emscripten":"^0.32.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@huggingface/transformers":"^3.8.1","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.2_1774090795544_0.4127014294300182","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@jshookmcp/jshook","version":"0.2.3","keywords":["mcp","model-context-protocol","javascript","javascript-analysis","security-analysis","hook","hooking","deobfuscation","ai","claude","puppeteer","chrome-devtools","debugger","web-scraping","anti-detection","captcha","browser-automation","network-monitoring","ast","obfuscation","cryptography-detection","code-analysis"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.3","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"df4b6f94dc8733beb15e869cff77c141b1a8e73e","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.3.tgz","fileCount":1054,"integrity":"sha512-PcjFboohkURGUPmfBhcAFvc3W1ST0GPu2XZ6aBEOvf8eUjSjWezjz9Wqdb/Zoui9WmQ0pWV+XT2n3GLIcAqaDg==","signatures":[{"sig":"MEQCIBt7p8QkgrhXhTjmLmK7OcpcauWQBj7EC7Wvctt6rBB1AiBpEWbZ1gTGo19uW/Fuz06Hlvdf5wl/k9xnwblDzvX7OQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3535073},"main":"dist/src/index.js","type":"module","_from":"file:jshookmcp-jshook-0.2.3.tgz","types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./plugin-api":{"types":"./dist/src/server/plugin-api.d.ts","import":"./dist/src/server/plugin-api.js"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run lint:ox && pnpm run lint && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"prettier --write \"src/**/*.ts\"","lint:md":"pnpm dlx markdownlint-cli2","lint:ox":"oxlint src/ tests/","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","typecheck":"tsc --noEmit -p tsconfig.build.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"node scripts/audit-tools.mjs","format:docs":"pnpm run docs:generate && prettier docs .github README.md README.zh.md CONTRIBUTING.md --write","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs && prettier \"docs/reference/**/*.md\" \"docs/en/reference/**/*.md\" --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","check:docs-format":"prettier docs .github README.md README.zh.md CONTRIBUTING.md --check","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"C:\\Users\\vmoranv\\AppData\\Local\\Temp\\67a3aad67a10011ee1dea7e4cb4e73db\\jshookmcp-jshook-0.2.3.tgz","_integrity":"sha512-PcjFboohkURGUPmfBhcAFvc3W1ST0GPu2XZ6aBEOvf8eUjSjWezjz9Wqdb/Zoui9WmQ0pWV+XT2n3GLIcAqaDg==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP server with 249 built-in tools (242 domain tools across 17 domains plus 7 built-in meta-tools) for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orc","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ajv":"^8.18.0","ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","ajv-formats":"^3.0.1","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.30","vite":"^6.0.0","eslint":"^10.0.2","oxlint":"^1.56.0","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","prettier":"^3.8.1","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","medium-zoom":"^1.1.0","estree-walker":"^2.0.2","quickjs-emscripten":"^0.32.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","@huggingface/transformers":"^3.8.1","@typescript-eslint/parser":"^8.56.1","@typescript-eslint/eslint-plugin":"^8.56.1"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.3_1774175743311_0.8445650912518012","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@jshookmcp/jshook","version":"0.2.5","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.5","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"09fa717ffd9fd8a67a0c70d535c0d7c2057f6c4f","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.5.tgz","fileCount":1121,"integrity":"sha512-8ReZ43zg8q8u93gk6KZzTKmOGQg+Lfzv1OEwDa8mz8TV6ky9+7aJ++SgNjeTcyn2AwS+detSES2BC91DP6P2vw==","signatures":[{"sig":"MEUCIDy0t2TX550Guuk5y3d8bCX2JISIoxK/r8+GOqa2ylIgAiEA1vYlivdjlqYYbFvBMimL8sFvO//KSkS05YXSJJlkqAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3577116},"main":"dist/src/index.js","type":"module","_from":"file:jshookmcp-jshook-0.2.5.tgz","types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./plugin-api":{"types":"./dist/src/server/plugin-api.d.ts","import":"./dist/src/server/plugin-api.js"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run metadata:check && pnpm run lint && pnpm run format:check && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","typecheck":"tsc --noEmit -p tsconfig.build.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"cross-env ENABLE_INJECTION_TOOLS=true vitest run --coverage","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"C:\\Users\\vmoranv\\AppData\\Local\\Temp\\6c196671009336b84cbd3558dca0dc38\\jshookmcp-jshook-0.2.5.tgz","_integrity":"sha512-8ReZ43zg8q8u93gk6KZzTKmOGQg+Lfzv1OEwDa8mz8TV6ky9+7aJ++SgNjeTcyn2AwS+detSES2BC91DP6P2vw==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server with 327 built-in tools across 23 domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.3.1","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","ajv-formats":"^3.0.1","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.30","vite":"^6.0.0","oxfmt":"^0.41.0","oxlint":"^1.56.0","vitest":"^4.0.18","nodemon":"^3.1.14","lefthook":"^2.1.3","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","medium-zoom":"^1.1.0","estree-walker":"^2.0.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","better-sqlite3":"12.6.2","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.5_1775049142852_0.2297141016608515","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@jshookmcp/jshook","version":"0.2.6","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.6","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/src/index.js","jshookmcp":"dist/src/index.js"},"dist":{"shasum":"c9ffe710a619e01e02acc6e5f5c451239d285d96","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.6.tgz","fileCount":1314,"integrity":"sha512-sQN+n/j/dzZp9+RURg0jiODKj6RXd7sd1/cyOYSMpt8mGWpUTkKf/qv0NWNhrY1SzTy1DfofI+1MOy6RCNdIGw==","signatures":[{"sig":"MEYCIQDomHGlmO2bfuo0CZyMTjjfNjwP7oXY3KiFuTrovy3KYgIhAKcl322TjwEhZVtCEh2dsQBkLaT5mHSc+IvwOGl4S0oo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4157891},"main":"dist/src/index.js","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.2.6.tgz","types":"dist/src/index.d.ts","engines":{"node":"^20.19.0 || >=22.12.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./plugin-api":{"types":"./dist/src/server/plugin-api.d.ts","import":"./dist/src/server/plugin-api.js"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && pnpm -C packages/extension-sdk build && node scripts/copy-native-scripts.mjs && node scripts/generate-entry-reexport.mjs && node scripts/fix-bin-permissions.mjs","check":"pnpm run metadata:check && pnpm run lint && pnpm run format:check && pnpm run typecheck && pnpm run test","start":"node dist/src/index.js","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"pnpm dlx markdownlint-cli2","package":"pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","typecheck":"tsc --noEmit -p tsconfig.build.json && pnpm -C packages/extension-sdk typecheck","docs:build":"pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"pnpm install && pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true vitest run --coverage","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"D:\\coding\\reverse\\jshookmcp\\.release-artifacts\\jshookmcp-jshook-0.2.6.tgz","_integrity":"sha512-sQN+n/j/dzZp9+RURg0jiODKj6RXd7sd1/cyOYSMpt8mGWpUTkKf/qv0NWNhrY1SzTy1DfofI+1MOy6RCNdIGw==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server with 337 built-in tools across 24 domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.1","dotenv":"^17.4.0","openai":"^6.25.0","commander":"^14.0.3","tinyglobby":"^0.2.15","ajv-formats":"^3.0.1","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","@anthropic-ai/sdk":"^0.78.0","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.30","vite":"^8.0.2","oxfmt":"^0.43.0","oxlint":"^1.58.0","vitest":"^4.1.2","lefthook":"^2.1.4","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^5.9.3","@types/node":"^25.3.0","medium-zoom":"^1.1.0","estree-walker":"^2.0.2","@vitest/coverage-v8":"^4.1.2","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.1","better-sqlite3":"12.6.2","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.6_1775282900189_0.6112560549457806","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@jshookmcp/jshook","version":"0.2.7","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.7","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"07c29ce1624b0b20d5b2047d25fa59df7e8b29e4","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.7.tgz","fileCount":51,"integrity":"sha512-w9MIldkQWLD7sZyaBI4Oc+onM+ZGO8C2tG6fjxFSAlxexuxDHRoX2ttH25PnQv69JhKX3fOaIpbFf0OMQEOITw==","signatures":[{"sig":"MEUCIEnpn8JlkEHZOMLv9MBQi3oyeNnz+2BxIUrvCmRqMBDeAiEA7dYVWUxjKCNX+10zI8vypDgWanJ2GSamUuEFnnCdWS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2688428},"main":"dist/index.mjs","pnpm":{"overrides":{"hono":">=4.12.14","esbuild":"0.27.3","flatted":">=3.4.2","basic-ftp":">=5.3.0","minimatch":"10.2.4","protobufjs":">=7.5.5","isolated-vm":"6.1.2","path-to-regexp":"8.4.0","vitepress>vite":"$vite","brace-expansion":"5.0.5","picomatch@^2.0.0":"2.3.2","picomatch@^4.0.0":"4.0.4","@hono/node-server":"1.19.13","express-rate-limit":"8.3.0"},"onlyBuiltDependencies":["better-sqlite3","esbuild","isolated-vm","koffi","lefthook","onnxruntime-node","protobufjs"]},"type":"module","types":"dist/index.d.mts","engines":{"node":"^20.19.0 || >=22.12.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"gitHead":"368be426878b25343f8fd19ddb154a8e02bc20cb","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/clean-dist.mjs && node scripts/generate-domains-index.mjs && tsdown && corepack pnpm -C packages/extension-sdk build","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","prepack":"corepack pnpm run metadata:check && corepack pnpm run build","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","metadata:check":"node scripts/generate-metadata.mjs --check","prepublishOnly":"corepack pnpm run check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.18.0","ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.6","dotenv":"^17.4.1","openai":"^6.34.0","mockttp":"^4.3.1","commander":"^14.0.3","tinyglobby":"^0.2.16","ajv-formats":"^3.0.1","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@huggingface/transformers":"^4.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.21.0","vue":"^3.5.32","vite":"^8.0.8","oxfmt":"^0.44.0","oxlint":"^1.59.0","tsdown":"^0.21.7","vitest":"^4.1.4","lefthook":"^2.1.5","rolldown":"1.0.0-rc.15","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^6.0.2","@types/node":"^25.5.2","medium-zoom":"^1.1.0","estree-walker":"^3.0.3","@vitest/coverage-v8":"^4.1.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.3","better-sqlite3":"12.8.0","playwright-core":"^1.59.1","@devicefarmer/adbkit":"^3.3.8"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.7_1776421856886_0.6094836517011339","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@jshookmcp/jshook","version":"0.2.8","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.8","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"d36dce1190c57078e7401a3d8446ddffdbcd33e7","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.8.tgz","fileCount":51,"integrity":"sha512-//oSg1wSOEgyNBF4fnGEkn8ucwyYHEBccAX5/sazR+rcl07xIoMbx1lKtt5arYX3YrMMNq4FeY7F9WnAthjnJA==","signatures":[{"sig":"MEUCIBhGp8kgunCYuBnKOaNHqPmYAxARBkT5ntWXYZJkFW7cAiEA9wy8tKKvwmeIBL31OSnPnssUMsQh0NUOEBluJ5kAFaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2897617},"main":"dist/index.mjs","type":"module","_from":"file:jshookmcp-jshook-0.2.8.tgz","types":"dist/index.d.mts","engines":{"node":"^20.19.0 || >=22.12.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/clean-dist.mjs && node scripts/generate-domains-index.mjs && tsdown && corepack pnpm -C packages/extension-sdk build","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"C:\\Users\\vmoranv\\AppData\\Local\\Temp\\d3c961c1756e12167ec67fdcbc1f72f8\\jshookmcp-jshook-0.2.8.tgz","_integrity":"sha512-//oSg1wSOEgyNBF4fnGEkn8ucwyYHEBccAX5/sazR+rcl07xIoMbx1lKtt5arYX3YrMMNq4FeY7F9WnAthjnJA==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.18.0","ora":"^9.3.0","zod":"^4.3.6","chalk":"^5.6.2","koffi":"^2.15.6","dotenv":"^17.4.1","openai":"^6.34.0","mockttp":"^4.3.1","commander":"^14.0.3","tinyglobby":"^0.2.16","ajv-formats":"^3.0.1","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@huggingface/transformers":"^4.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.32","vite":"^8.0.8","oxfmt":"^0.44.0","oxlint":"^1.59.0","tsdown":"^0.21.7","vitest":"^4.1.4","lefthook":"^2.1.5","rolldown":"1.0.0-rc.15","cross-env":"^10.1.0","tsc-alias":"^1.8.16","vitepress":"1.6.4","typescript":"^6.0.2","@types/node":"^25.5.2","medium-zoom":"^1.1.0","estree-walker":"^3.0.3","@vitest/coverage-v8":"^4.1.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.9.3","better-sqlite3":"12.8.0","playwright-core":"^1.59.1","@devicefarmer/adbkit":"^3.3.8"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.8_1776501876115_0.09591687274956184","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@jshookmcp/jshook","version":"0.2.9","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.2.9","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"02f91efc96cfa64c1b5cd35399b4894f9f529430","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.2.9.tgz","fileCount":172,"integrity":"sha512-8PQ4GGmMf5f1w8P1em3+TRDsGZa0BDBK+wMfJP7tyuFykAZ7M+zfz9UPZ6J7W4ElAKxG6rhnc3lZVpIbY4zQVg==","signatures":[{"sig":"MEUCIAksleKdcoWIx9grBKPN1G6YhUyYbQFcHt21KVjaV53FAiEAlWzGRlk2ITe+Cx3Yva74E87ZEXFu4u+cjHZsaUhSWGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2931270},"main":"dist/index.mjs","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.2.9.tgz","types":"dist/index.d.mts","engines":{"node":"^20.19.0 || >=22.12.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/clean-dist.mjs && node scripts/generate-domains-index.mjs && tsdown","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","build:all":"corepack pnpm run build && corepack pnpm run build:sdk","build:sdk":"corepack pnpm -C packages/extension-sdk build","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","search:tune":"tsx scripts/search-tune/optimize.ts","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","package:verify-bin":"node scripts/verify-packed-bin.mjs","search:tune:report":"tsx scripts/search-tune/report.ts","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"D:\\coding\\reverse\\jshookmcp\\.release-artifacts\\jshookmcp-jshook-0.2.9.tgz","_integrity":"sha512-8PQ4GGmMf5f1w8P1em3+TRDsGZa0BDBK+wMfJP7tyuFykAZ7M+zfz9UPZ6J7W4ElAKxG6rhnc3lZVpIbY4zQVg==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","jsdom":"^29.0.2","koffi":"^2.15.6","dotenv":"^17.4.1","mockttp":"^4.3.1","tinyglobby":"^0.2.16","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.32","vite":"^8.0.8","oxfmt":"^0.46.0","oxlint":"^1.59.0","tsdown":"^0.21.7","vitest":"^4.1.4","lefthook":"^2.1.5","cross-env":"^10.1.0","vitepress":"1.6.4","typescript":"^6.0.2","@types/node":"^25.5.2","medium-zoom":"^1.1.0","@types/jsdom":"^28.0.1","@vitest/coverage-v8":"^4.1.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","rollup-plugin-visualizer":"^7.0.1"},"optionalDependencies":{"webcrack":"^2.15.1","camoufox-js":"^0.10.2","better-sqlite3":"12.9.0","playwright-core":"^1.59.1","@devicefarmer/adbkit":"^3.3.8","@huggingface/transformers":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.2.9_1777023990329_0.7644850217606416","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@jshookmcp/jshook","version":"0.3.0","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.3.0","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"6183d6abf10636c7c82b8c211e6e8f36ec9f5a0c","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.3.0.tgz","fileCount":177,"integrity":"sha512-JSan1BCw4VAB9J8627UsoSXG57Oy10DsP2/WI/zrkhffO/axlKSjc3y3FLvlU0VLBl8JzfvP+5dUn0q9+YAPeg==","signatures":[{"sig":"MEUCICw+ZLA1dHI4HHeLlSDLzAuSH/BThhLB4z/1USM6eUEvAiEApJHWGAsJ3yS80rOCSyD1iXzOVEFwKDXz+SSZAtysO4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3138960},"main":"dist/index.mjs","pnpm":{"overrides":{"hono":">=4.12.14","esbuild":"0.27.3","flatted":">=3.4.2","basic-ftp":">=5.3.0","minimatch":"10.2.4","protobufjs":">=7.5.5","isolated-vm":"6.1.2","path-to-regexp":"8.4.0","brace-expansion":"5.0.5","picomatch@^2.0.0":"2.3.2","picomatch@^4.0.0":"4.0.4","@hono/node-server":"1.19.13","express-rate-limit":"8.3.0"},"onlyBuiltDependencies":["better-sqlite3","esbuild","isolated-vm","koffi","lefthook","onnxruntime-node","protobufjs"]},"type":"module","types":"dist/index.d.mts","engines":{"node":"^20.19.0 || >=22.12.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"gitHead":"17319b9574499e9918adba5d71753ca20e4b94ca","mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/clean-dist.mjs && node scripts/generate-domains-index.mjs && tsdown","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","prepack":"corepack pnpm run metadata:check && corepack pnpm run build:all","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","build:all":"corepack pnpm run build && corepack pnpm run build:sdk","build:sdk":"corepack pnpm -C packages/extension-sdk build","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","search:tune":"tsx scripts/search-tune/optimize.ts","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","audit:runtime":"node scripts/audit-runtime-probes.mjs","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","metadata:check":"node scripts/generate-metadata.mjs --check","prepublishOnly":"corepack pnpm run check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","test:e2e:portable":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ PUPPETEER_HEADLESS=true vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/portable-smoke.e2e.test.ts tests/e2e/process-lifecycle.test.ts","test:e2e:protocol":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-pure-compute.e2e.test.ts","package:verify-bin":"node scripts/verify-packed-bin.mjs","search:tune:report":"tsx scripts/search-tune/report.ts","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs","test:e2e:protocol-runtime":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-runtime-assisted.e2e.test.ts"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","jsdom":"^29.0.2","koffi":"^2.15.6","dotenv":"^17.4.1","mockttp":"^4.3.1","tinyglobby":"^0.2.16","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.21.0","vue":"^3.5.32","vite":"^8.0.8","oxfmt":"^0.47.0","oxlint":"^1.59.0","tsdown":"^0.21.7","vitest":"^4.1.4","lefthook":"^2.1.5","cross-env":"^10.1.0","vitepress":"1.6.4","typescript":"^6.0.2","@types/node":"^25.5.2","medium-zoom":"^1.1.0","@types/jsdom":"^28.0.1","@vitest/coverage-v8":"^4.1.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","rollup-plugin-visualizer":"^7.0.1"},"optionalDependencies":{"webcrack":"2.15.1","camoufox-js":"^0.10.2","better-sqlite3":"12.9.0","playwright-core":"^1.59.1","@devicefarmer/adbkit":"^3.3.8","@huggingface/transformers":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.3.0_1777649834216_0.0020685283739874105","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@jshookmcp/jshook","version":"0.3.1","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.3.1","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"e95ff56cbb23e9c85e67ee8b11d53337670ac738","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.3.1.tgz","fileCount":184,"integrity":"sha512-EaRhEbW00NS8E87c8+bYsyItvdhzOWDkgel2KbBdJu/C32XeaztKRDfWgrTpUNWIHu2fU8whWH9hviFUsBhnnA==","signatures":[{"sig":"MEYCIQCbhTAsgZbmqar2QtD9BW5znI0TK+mg7iDNEseR1VfT4gIhAMoYZlZCMTly1N/9wRD7TZxq72N5qq0NdmfSmtnivKWz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2010720},"main":"dist/index.mjs","type":"module","_from":"file:jshookmcp-jshook-0.3.1.tgz","types":"dist/index.d.mts","engines":{"node":"^22.12.0 || ^24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/build.mjs","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","build:all":"corepack pnpm run build:dts && corepack pnpm run build:sdk","build:dts":"node scripts/build.mjs --dts","build:sdk":"corepack pnpm -C packages/extension-sdk build","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","search:tune":"tsx scripts/search-tune/optimize.ts","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","audit:runtime":"node scripts/audit-runtime-probes.mjs","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","test:e2e:portable":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ PUPPETEER_HEADLESS=true vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/portable-smoke.e2e.test.ts tests/e2e/process-lifecycle.test.ts","test:e2e:protocol":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-pure-compute.e2e.test.ts","package:verify-bin":"node scripts/verify-packed-bin.mjs","search:tune:report":"tsx scripts/search-tune/report.ts","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs","test:e2e:protocol-runtime":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-runtime-assisted.e2e.test.ts"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"C:\\Users\\vmoranv\\AppData\\Local\\Temp\\83e9885b739deec8cbb53cd28d2a0bf1\\jshookmcp-jshook-0.3.1.tgz","_integrity":"sha512-EaRhEbW00NS8E87c8+bYsyItvdhzOWDkgel2KbBdJu/C32XeaztKRDfWgrTpUNWIHu2fU8whWH9hviFUsBhnnA==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"11.14.1","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","jsdom":"^29.0.2","koffi":"^2.15.6","dotenv":"^17.4.1","mockttp":"^4.3.1","tinyglobby":"^0.2.16","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vue":"^3.5.32","vite":"^8.0.8","oxfmt":"^0.48.0","oxlint":"^1.59.0","tsdown":"^0.22.0","vitest":"^4.1.4","lefthook":"^2.1.5","cross-env":"^10.1.0","vitepress":"1.6.4","typescript":"^6.0.2","@types/node":"^25.5.2","medium-zoom":"^1.1.0","@types/jsdom":"^28.0.1","@vitest/coverage-v8":"^4.1.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","rollup-plugin-visualizer":"^7.0.1"},"optionalDependencies":{"webcrack":"2.16.0","camoufox-js":"^0.10.2","better-sqlite3":"12.9.0","playwright-core":"^1.59.1","@devicefarmer/adbkit":"^3.3.8","@huggingface/transformers":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.3.1_1778930749790_0.09401432552735223","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@jshookmcp/jshook","version":"0.3.2","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.3.2","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"5e96623dbbe366a076494e22177b38ef98f811e8","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.3.2.tgz","fileCount":203,"integrity":"sha512-vunN9qSJOsa7p7dwO8M4zduMAsuHWkWn5V1lAKvH7Wdi6ABymF4ERf6Vif3mbpvYdCTCxqHCph8K9Ids8PeltA==","signatures":[{"sig":"MEYCIQC/CkeeDh28oKpsPDbyUe/zyoAIULiglxzHA8RDNwwasgIhALYWklPTDRJYgG1wmnjzMAaSMmDp1RLOnS9FXRiYne7R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2174703},"main":"dist/index.mjs","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.3.2.tgz","types":"dist/index.d.mts","engines":{"node":"^22.12.0 || ^24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/build.mjs","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","build:all":"corepack pnpm run build:dts && corepack pnpm run build:sdk","build:dts":"node scripts/build.mjs --dts","build:sdk":"corepack pnpm -C packages/extension-sdk build","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","search:tune":"tsx scripts/search-tune/optimize.ts","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","audit:runtime":"node scripts/audit-runtime-probes.mjs","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","test:e2e:portable":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ PUPPETEER_HEADLESS=true vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/portable-smoke.e2e.test.ts tests/e2e/process-lifecycle.test.ts","test:e2e:protocol":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-pure-compute.e2e.test.ts","package:verify-bin":"node scripts/verify-packed-bin.mjs","search:tune:report":"tsx scripts/search-tune/report.ts","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs","test:e2e:protocol-runtime":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-runtime-assisted.e2e.test.ts"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.3.2.tgz","_integrity":"sha512-vunN9qSJOsa7p7dwO8M4zduMAsuHWkWn5V1lAKvH7Wdi6ABymF4ERf6Vif3mbpvYdCTCxqHCph8K9Ids8PeltA==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.8","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.3.6","jsdom":"^29.0.2","koffi":"^3.0.1","yauzl":"^3.3.1","dotenv":"^17.4.1","mockttp":"^4.4.2","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vue":"^3.5.32","vite":"^8.0.14","oxfmt":"^0.51.0","oxlint":"^1.66.0","tsdown":"^0.22.0","vitest":"^4.1.7","lefthook":"^2.1.8","cross-env":"^10.1.0","vitepress":"1.6.4","tinyglobby":"^0.2.16","typescript":"^6.0.2","@types/node":"^25.9.1","medium-zoom":"^1.1.0","@types/jsdom":"^28.0.3","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","rollup-plugin-visualizer":"^7.0.1"},"optionalDependencies":{"webcrack":"2.16.0","camoufox-js":"^0.10.2","better-sqlite3":"12.10.0","playwright-core":"^1.60.0","@devicefarmer/adbkit":"^3.3.8","@huggingface/transformers":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.3.2_1779860938887_0.16204191587017314","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@jshookmcp/jshook","version":"0.3.3","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.3.3","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"3704165c4ce4b7e3285c1b80ef4d5e817a97d67f","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.3.3.tgz","fileCount":182,"integrity":"sha512-z1XpuxthRqp2V8VxKQ8QI1FGKknnTVC4KGvfph8CyUmcDkuIgfMvVsP2B+e+i4Utfc+Y3qVmJzK3+qzaV9SrkQ==","signatures":[{"sig":"MEQCIGUVl1H1CfklX7oUT2uPE25REgpafK92ZDPJ21nqcJeeAiBjk991foVgKbSCi4pzcVXW5SifsNQ5R89QsRx2UU9hmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2335048},"main":"dist/index.mjs","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.3.3.tgz","types":"dist/index.d.mts","engines":{"node":"^22.12.0 || ^24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/build.mjs","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","build:all":"corepack pnpm run build:dts && corepack pnpm run build:sdk","build:dts":"node scripts/build.mjs --dts","build:sdk":"corepack pnpm -C packages/extension-sdk build","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","search:tune":"tsx scripts/search-tune/optimize.ts","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","audit:runtime":"node scripts/audit-runtime-probes.mjs","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","test:e2e:portable":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ PUPPETEER_HEADLESS=true vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/portable-smoke.e2e.test.ts tests/e2e/process-lifecycle.test.ts","test:e2e:protocol":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-pure-compute.e2e.test.ts","package:verify-bin":"node scripts/verify-packed-bin.mjs","search:tune:report":"tsx scripts/search-tune/report.ts","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs","test:e2e:protocol-runtime":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-runtime-assisted.e2e.test.ts"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.3.3.tgz","_integrity":"sha512-z1XpuxthRqp2V8VxKQ8QI1FGKknnTVC4KGvfph8CyUmcDkuIgfMvVsP2B+e+i4Utfc+Y3qVmJzK3+qzaV9SrkQ==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.8","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.3.6","jsdom":"^29.0.2","koffi":"^3.0.1","yauzl":"^3.3.1","dotenv":"^17.4.1","mockttp":"^4.4.2","@babel/types":"^7.29.0","@babel/parser":"^7.29.2","@babel/traverse":"^7.29.0","@babel/generator":"^7.29.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vue":"^3.5.32","vite":"^8.0.14","oxfmt":"^0.53.0","oxlint":"^1.66.0","tsdown":"^0.22.0","vitest":"^4.1.7","lefthook":"^2.1.8","cross-env":"^10.1.0","vitepress":"1.6.4","tinyglobby":"^0.2.16","typescript":"^6.0.2","@types/node":"^25.9.1","medium-zoom":"^1.1.0","@types/jsdom":"^28.0.3","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","rollup-plugin-visualizer":"^7.0.1"},"optionalDependencies":{"webcrack":"2.16.0","camoufox-js":"^0.10.2","better-sqlite3":"12.10.0","playwright-core":"^1.60.0","@devicefarmer/adbkit":"^3.3.8","@huggingface/transformers":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.3.3_1780749416356_0.8407055892592965","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@jshookmcp/jshook","version":"0.3.4","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"author":{"url":"https://github.com/vmoranv","name":"vmoranv"},"license":"AGPL-3.0-only","_id":"@jshookmcp/jshook@0.3.4","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"dist":{"shasum":"90b95d7fe21d9fde8a1593c9c4a4479ba1d96cea","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.3.4.tgz","fileCount":223,"integrity":"sha512-pKaXfOhYXxU0tYcj9+vyH2cRSgIrrYhloYjYIJrG9dzzak3pCuW/fCRKM2SxvfC8v74fP4tcLlqeUQyySBYm6w==","signatures":[{"sig":"MEUCIFxuMzhRpqG0t0xndRjIYKlFJWT//CeoyBydAxSyzWDPAiEA2b9NDtmkDSSAP4OucflAUL4V4UJ76ek7vOASOOo+4K0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3413305},"main":"dist/index.mjs","type":"module","_from":"file:.release-artifacts/jshookmcp-jshook-0.3.4.tgz","types":"dist/index.d.mts","engines":{"node":"^22.12.0 || ^24.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./plugin-api":{"types":"./dist/server/plugin-api.d.mts","import":"./dist/server/plugin-api.mjs"}},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"dev":"tsx --conditions=development watch src/index.ts","lint":"oxlint src/ tests/","test":"node scripts/run-vitest-smart.mjs run","build":"node scripts/build.mjs","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","start":"node dist/index.mjs","daemon":"cross-env MCP_TRANSPORT=http node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --write --no-error-on-unmatched-pattern","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","package":"corepack pnpm pack","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","lint:fix":"oxlint --fix src/ tests/","test:e2e":"node scripts/build.mjs && cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","build:all":"corepack pnpm run build:dts && corepack pnpm run build:sdk","build:dts":"node scripts/build.mjs --dts","build:sdk":"corepack pnpm -C packages/extension-sdk build","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","dev:daemon":"cross-env MCP_TRANSPORT=http tsx --conditions=development watch src/index.ts","docs:build":"corepack pnpm run docs:generate && vitepress build docs","audit:tools":"tsx scripts/audit-tools.mjs","deps:update":"corepack pnpm update -r","postinstall":"node scripts/postinstall.cjs","search:tune":"tsx scripts/search-tune/optimize.ts","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" --check --no-error-on-unmatched-pattern","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","audit:runtime":"node scripts/audit-runtime-probes.mjs","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","docs:generate":"node scripts/generate-vitepress-reference.mjs","metadata:sync":"node scripts/generate-metadata.mjs --write","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","git:refresh-noise":"node scripts/refresh-git-noise.mjs","test:e2e:portable":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ PUPPETEER_HEADLESS=true vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/portable-smoke.e2e.test.ts tests/e2e/process-lifecycle.test.ts","test:e2e:protocol":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-pure-compute.e2e.test.ts","package:verify-bin":"node scripts/verify-packed-bin.mjs","search:tune:report":"tsx scripts/search-tune/report.ts","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs","test:e2e:protocol-runtime":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-runtime-assisted.e2e.test.ts"},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.3.4.tgz","_integrity":"sha512-pKaXfOhYXxU0tYcj9+vyH2cRSgIrrYhloYjYIJrG9dzzak3pCuW/fCRKM2SxvfC8v74fP4tcLlqeUQyySBYm6w==","repository":{"url":"git+https://github.com/vmoranv/jshookmcp.git","type":"git"},"_npmVersion":"10.9.8","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","jsdom":"^29.1.1","koffi":"^3.0.2","yauzl":"^3.4.0","dotenv":"^17.4.2","mockttp":"^4.4.2","binaryen":"^130.0.0","z3-solver":"^4.16.0","protobufjs":">=7.6.3","@babel/types":"^8.0.0","@babel/parser":"^8.0.0","@babel/traverse":"^8.0.0","@babel/generator":"^8.0.0","quickjs-emscripten":"^0.32.0","@alexaltea/capstone-js":"^5.0.9","rebrowser-puppeteer-core":"^24.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vue":"^3.5.38","vite":"^8.0.16","oxfmt":"^0.55.0","oxlint":"^1.70.0","tsdown":"^0.22.3","vitest":"^4.1.9","lefthook":"^2.1.9","cross-env":"^10.1.0","vitepress":"1.6.4","tinyglobby":"^0.2.17","typescript":"^6.0.3","@types/node":"^25.9.3","medium-zoom":"^1.1.0","@types/jsdom":"^28.0.3","@vitest/coverage-v8":"^4.1.9","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0","@types/babel__generator":"^7.27.0","rollup-plugin-visualizer":"^7.0.1"},"optionalDependencies":{"webcrack":"2.16.0","camoufox-js":"^0.11.1","better-sqlite3":"12.11.1","playwright-core":"^1.61.0","@devicefarmer/adbkit":"^3.3.8","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/jshook_0.3.4_1784132765092_0.3847410217207965","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@jshookmcp/jshook","version":"0.3.5","description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"homepage":"https://github.com/vmoranv/jshookmcp#readme","bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"license":"AGPL-3.0-only","author":{"name":"vmoranv","url":"https://github.com/vmoranv"},"repository":{"type":"git","url":"git+https://github.com/vmoranv/jshookmcp.git"},"bin":{"jshook":"dist/index.mjs","jshookmcp":"dist/index.mjs"},"type":"module","main":"dist/index.mjs","types":"dist/index.d.mts","exports":{".":{"import":"./dist/index.mjs","types":"./dist/index.d.mts"},"./plugin-api":{"import":"./dist/server/plugin-api.mjs","types":"./dist/server/plugin-api.d.mts"},"./fleet-api":{"import":"./dist/server/fleet-api.mjs","types":"./dist/server/fleet-api.d.mts"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"dependencies":{"@alexaltea/capstone-js":"^5.0.9","@babel/generator":"^8.0.0","@babel/parser":"^8.0.0","@babel/traverse":"^8.0.0","@babel/types":"^8.0.0","@huggingface/tokenizers":"^0.1.3","@modelcontextprotocol/sdk":"^1.29.0","dotenv":"^17.4.2","jsdom":"^29.1.1","koffi":"^3.0.2","mockttp":"4.4.2","protobufjs":"8.7.1","quickjs-emscripten":"^0.32.0","rebrowser-puppeteer-core":"^24.8.1","yauzl":"^3.4.0","zod":"^4.4.3"},"devDependencies":{"@types/babel__generator":"^7.27.0","@types/babel__traverse":"^7.28.0","@types/better-sqlite3":"^7.6.13","@types/jsdom":"^28.0.3","@types/node":"^25.9.3","@vitest/coverage-v8":"^4.1.9","cross-env":"^10.1.0","lefthook":"^2.1.9","medium-zoom":"^1.1.0","oxfmt":"^0.60.0","oxlint":"^1.70.0","rollup-plugin-visualizer":"^7.0.1","tinyglobby":"^0.2.17","tsdown":"^0.22.3","tsx":"^4.22.4","typescript":"^6.0.3","vite":"^8.1.5","vitepress":"2.0.0-alpha.18","vitest":"^4.1.9","vue":"^3.5.38"},"optionalDependencies":{"@devicefarmer/adbkit":"^3.3.8","better-sqlite3":"12.11.1","binaryen":"^130.0.0","camoufox-js":"^0.11.1","playwright-core":"^1.61.0","webcrack":"2.16.0","z3-solver":"^5.0.0"},"engines":{"node":"^22.12.0 || ^24.0.0"},"mcpName":"io.github.vmoranv/jshookmcp","scripts":{"build":"node scripts/build.mjs","build:dts":"node scripts/build.mjs --dts","build:sdk":"corepack pnpm -C packages/extension-sdk build","build:all":"corepack pnpm run build:dts && corepack pnpm run build:sdk","build:analyze":"cross-env BUNDLE_ANALYZE=1 corepack pnpm run build && echo 'Open stats.html in browser to view bundle analysis'","typecheck":"tsc --noEmit -p tsconfig.json && corepack pnpm -C packages/extension-sdk typecheck","deps:update":"corepack pnpm update -r","dev":"tsx --conditions=development watch src/index.ts","dev:daemon":"cross-env MCP_TRANSPORT=http tsx --conditions=development watch src/index.ts","start":"node dist/index.mjs","daemon":"cross-env MCP_TRANSPORT=http node dist/index.mjs","doctor":"tsx src/cli/doctor.ts","docs:generate":"node scripts/generate-vitepress-reference.mjs","docs:dev":"vitepress dev docs --host 127.0.0.1 --port 5173","docs:build":"corepack pnpm run docs:generate && vitepress build docs","docs:preview":"vitepress preview docs --host 127.0.0.1 --port 4173","lint:md":"corepack pnpm dlx markdownlint-cli2 README.md README.zh.md CONTRIBUTING.md docs/**/*.md","lint":"oxlint src/ tests/","lint:fix":"oxlint --fix src/ tests/","format":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" \"!src/server/registry/generated-tool-catalog.ts\" --write --no-error-on-unmatched-pattern","format:check":"oxfmt \"src/**\" \"tests/**\" \"!tests/tmp/**\" \"!src/server/registry/generated-tool-catalog.ts\" --check --no-error-on-unmatched-pattern","test":"node scripts/run-vitest-smart.mjs run","test:e2e":"node scripts/build.mjs && cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ vitest run --config tests/e2e/vitest.e2e.config.ts","test:e2e:portable":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ PUPPETEER_HEADLESS=true vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/portable-smoke.e2e.test.ts tests/e2e/process-lifecycle.test.ts","test:e2e:protocol":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-pure-compute.e2e.test.ts","test:e2e:protocol-runtime":"vitest run --config tests/e2e/vitest.e2e.config.ts tests/e2e/protocol-runtime-assisted.e2e.test.ts","test:e2e:perf":"cross-env E2E_TARGET_URL=https://vmoranv.github.io/jshookmcp/ E2E_COLLECT_PERFORMANCE=1 vitest run --config tests/e2e/vitest.e2e.config.ts","test:coverage":"node -e \"require('fs').mkdirSync('coverage/.tmp', { recursive: true })\" && cross-env ENABLE_INJECTION_TOOLS=true COVERAGE_FULL=true node scripts/run-vitest-smart.mjs run --coverage","package:verify-bin":"node scripts/verify-packed-bin.mjs","package:verify-install":"node scripts/verify-packed-install.mjs","package:verify-release":"node scripts/verify-release-artifact.mjs","audit:tools":"tsx scripts/audit-tools.mjs","audit:runtime":"node scripts/audit-runtime-probes.mjs","git:refresh-noise":"node scripts/refresh-git-noise.mjs","check":"corepack pnpm run metadata:check && corepack pnpm run lint && corepack pnpm run format:check && corepack pnpm run typecheck && corepack pnpm run test","package":"corepack pnpm pack","postinstall":"node scripts/postinstall.cjs","install:full":"corepack pnpm install && corepack pnpm exec camoufox-js fetch","metadata:sync":"node scripts/generate-metadata.mjs --write","metadata:check":"node scripts/generate-metadata.mjs --check","check:docs-format":"corepack pnpm run lint:md","search:tune":"tsx scripts/search-tune/optimize.ts","search:tune:report":"tsx scripts/search-tune/report.ts","search:benchmark-model":"tsx scripts/search-tune/compare-static-model.ts"},"_id":"@jshookmcp/jshook@0.3.5","_integrity":"sha512-QunELpgsxo1Wpq0vvgS0h9n0Sp8TaSOAUoaboI67LzVfYPq/J47OWpPovqzzYCH1oiXJbDRUu7Bdmjfaqt6b4w==","_resolved":"/home/runner/work/jshookmcp/jshookmcp/.release-artifacts/jshookmcp-jshook-0.3.5.tgz","_from":"file:.release-artifacts/jshookmcp-jshook-0.3.5.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-QunELpgsxo1Wpq0vvgS0h9n0Sp8TaSOAUoaboI67LzVfYPq/J47OWpPovqzzYCH1oiXJbDRUu7Bdmjfaqt6b4w==","shasum":"d5901d5c6ec6708f573022dfc208ca29863fc851","tarball":"https://registry.npmjs.org/@jshookmcp/jshook/-/jshook-0.3.5.tgz","fileCount":252,"unpackedSize":4078103,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEiXpk5ieG+sjkt8wb+iP0d4qPTu/+92r/IvfMs4Gg7dAiEA7IEzYeR3acCocmVwUpZS8hFwbZHFfav4Kya0VE0Jzcw="}]},"_npmUser":{"name":"vmoranv6","email":"vmoranv@outlook.com"},"directories":{},"maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jshook_0.3.5_1785816528495_0.499044219797836"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-07T01:30:44.479Z","modified":"2026-08-04T04:08:48.878Z","0.1.2":"2026-03-07T01:30:44.829Z","0.1.3":"2026-03-07T03:19:36.674Z","0.1.4":"2026-03-07T06:58:11.614Z","0.1.5":"2026-03-08T09:55:13.639Z","0.1.6":"2026-03-10T04:38:28.237Z","0.1.7":"2026-03-10T10:19:18.082Z","0.1.8":"2026-03-11T05:16:02.039Z","0.1.9":"2026-03-14T10:15:40.783Z","0.2.0":"2026-03-14T10:45:25.223Z","0.2.1":"2026-03-17T14:36:21.444Z","0.2.2":"2026-03-21T10:59:55.781Z","0.2.3":"2026-03-22T10:35:43.543Z","0.2.5":"2026-04-01T13:12:23.134Z","0.2.6":"2026-04-04T06:08:20.393Z","0.2.7":"2026-04-17T10:30:57.050Z","0.2.8":"2026-04-18T08:44:36.325Z","0.2.9":"2026-04-24T09:46:30.568Z","0.3.0":"2026-05-01T15:37:14.405Z","0.3.1":"2026-05-16T11:25:49.984Z","0.3.2":"2026-05-27T05:48:59.113Z","0.3.3":"2026-06-06T12:36:56.519Z","0.3.4":"2026-07-15T16:26:05.358Z","0.3.5":"2026-08-04T04:08:48.675Z"},"bugs":{"url":"https://github.com/vmoranv/jshookmcp/issues"},"author":{"name":"vmoranv","url":"https://github.com/vmoranv"},"license":"AGPL-3.0-only","homepage":"https://github.com/vmoranv/jshookmcp#readme","keywords":["ai","anti-detection","ast","browser-automation","captcha","chrome-devtools","claude","code-analysis","cryptography-detection","debugger","deobfuscation","hook","hooking","javascript","javascript-analysis","mcp","model-context-protocol","network-monitoring","obfuscation","puppeteer","security-analysis","web-scraping"],"repository":{"type":"git","url":"git+https://github.com/vmoranv/jshookmcp.git"},"description":"MCP server with built-in tools across multiple domains for AI-assisted JavaScript analysis and security analysis — browser automation, CDP debugging, network monitoring, JS hooks, code analysis, and workflow orchestration","maintainers":[{"name":"vmoranv6","email":"vmoranv@outlook.com"}],"readme":"# @jshookmcp/jshook\n\n[![License: AGPLv3](https://img.shields.io/badge/License-AGPLv3-red.svg)](LICENSE)\n[![Node.js 22.12+](https://img.shields.io/badge/node-22.12%2B-brightgreen.svg)](https://nodejs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6.svg)](https://www.typescriptlang.org/)\n[![MCP](https://img.shields.io/badge/MCP-current-8A2BE2.svg)](https://modelcontextprotocol.io/)\n[![pnpm](https://img.shields.io/badge/pnpm-10.x-F69220.svg)](https://pnpm.io/)\n\n[English](./README.md) | 中文\n\n为 AI 赋予 **34 个技术域、600+ 个原子工具** 的 JavaScript 分析与安全研究 MCP 服务器——浏览器自动化、CDP 调试、网络拦截、JS Hook、LLM 代码分析、进程/内存取证、WASM 逆向、Source Map 重建、AST 变换与复合工作流，一应俱全。\n\n## 快速导航\n\n- **[📖 官方文档](https://vmoranv.github.io/jshookmcp/)** · **[🚀 快速开始](https://vmoranv.github.io/jshookmcp/guide/getting-started.html)** · **[⚙️ 配置指南](https://vmoranv.github.io/jshookmcp/guide/configuration.html)** · **[📚 工具参考](https://vmoranv.github.io/jshookmcp/reference/)**\n\n## 🚀 快速接入\n\n无需全局安装，添加到 MCP 客户端配置即可使用：\n\n**Claude Desktop / Cursor (`claude_desktop_config.json`)**：\n\n```json\n{\n  \"mcpServers\": {\n    \"jshook\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@jshookmcp/jshook@latest\"],\n      \"env\": {\n        \"MCP_TOOL_PROFILE\": \"search\",\n        \"npm_config_omit\": \"optional\"\n      }\n    }\n  }\n}\n```\n\n*(Windows 用户：若找不到 `npx`，请使用 `npx.cmd` 绝对路径)*\n\n该轻量配置会跳过可选的 ONNX、Z3、Binaryen、Camoufox 和 Playwright 包；需要这些完整档\n运行时时，移除 `npm_config_omit`。\n\n### 多个 Agent 共用一个本地进程\n\n默认 stdio 配置会让每个 MCP 宿主启动一份完整的 jshook。若要共享 embedding 模型、\n浏览器运行时和缓存，可以启动一个本地 Streamable HTTP daemon：\n\n```bash\npnpm build\npnpm daemon\n```\n\n每客户端 stdio 进程默认关闭向量搜索；共享 HTTP daemon 默认按需开启。只需词法搜索时可\n设置 `SEARCH_VECTOR_ENABLED=false`。\n\n然后在各 MCP 客户端的 HTTP/URL server 配置中统一指向\n`http://127.0.0.1:3000/mcp`。每个客户端拥有独立的 MCP 会话和响应路由，重量级运行时\n资源只保留一份。建议保持默认的本机回环监听；如需对外暴露，必须先设置\n`MCP_AUTH_TOKEN`。\n\n## 🌟 核心亮点\n\n- 🤖 **AI 智能分析** — LLM 驱动的 JS 反混淆、加密识别、AST 深度理解\n- ⚡ **搜索优先** — `search` 档 ≈ 3K tokens vs `full` 档 ≈ 40K+ tokens，按需加载\n- 🎯 **渐进分层** — `search` → `workflow` → `full`，按需激活\n- 🌐 **全栈浏览器自动化** — Chromium/Camoufox + CDP + 反检测 + CAPTCHA 处理\n- 🔁 **运行时恢复与会话隔离** — HTTP 会话支持恢复已激活域、浏览器 attach 状态、coverage 状态，并为每个客户端隔离浏览器侧会话状态\n- 🧭 **Schema 优先元工具** — `describe_tool`、带参数校验的 `call_tool`、以及 `coverage_report` 降低参数错误并暴露工具覆盖率\n- 📡 **网络拦截** — HTTP/2 帧构造、MiTM 捕获、GraphQL、Burp Suite 桥接\n- 🛠️ **全能逆向工具链** — WASM 反编译、二进制分析、Frida、Ghidra/IDA 桥接\n- 🧰 **进程与内存取证** — 原生 FFI 扫描、硬件断点、PE 内省\n- 🧩 **动态热插拔** — 热重载插件、声明式工作流、自发现域\n\n## 最近运行时变更\n\n- HTTP 传输现在支持多路复用独立 MCP 会话，并在重连后恢复运行时状态。\n- `proxy_start` 在需要时会自动生成本地 HTTPS 拦截 CA。\n- Browser 域的 CAPTCHA 求解已改为显式参数驱动：按需传入 `taskKind`、`siteKey`、`imageBase64`、`callbackName`、`responseSelector`。不会再内置页面/组件特征探测。\n\n## 架构\n\n- **运行时注册表** — 域通过 `manifest.ts` 自发现；新增域只需创建一个文件\n- **延迟初始化** — Handler 在首次调用时实例化，而非启动时预加载\n- **BM25 + 向量搜索** — `search_tools` 混合排序 + 自适应权重\n- **MCP ToolAnnotations** — 每个工具携带 `readOnlyHint` / `destructiveHint` / `idempotentHint` / `openWorldHint`\n\n## 注册表快照\n\n下面的内置能力快照由运行时 registry 动态生成，并在 CI 中校验。\n\n<!-- metadata-sync:start -->\n- 包版本：`0.3.5`\n- 内置工具数：`668`\n- 域列表：`adb-bridge`, `binary-instrument`, `boringssl-inspector`, `browser`, `canvas`, `coordination`, `core`, `cross-domain`, `dart-inspector`, `debugger`, `encoding`, `exploit-dev`, `extension-registry`, `graphql`, `instrumentation`, `maintenance`, `memory`, `mojo-ipc`, `native-bridge`, `native-emulator`, `network`, `platform`, `process`, `protocol-analysis`, `proxy`, `sourcemap`, `streaming`, `syscall-hook`, `trace`, `transform`, `v8-inspector`, `wasm`, `webgpu`, `workflow`\n- 说明：以上数据由运行时 registry 动态生成，不要手改计数。\n<!-- metadata-sync:end -->\n\n> **[查看完整工具参考 ↗](https://vmoranv.github.io/jshookmcp/reference/)**\n\n## 项目统计\n\n<div align=\"center\">\n\n<a href=\"https://www.star-history.com/?repos=vmoranv%2Fjshookmcp&type=date&legend=top-left\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/image?repos=vmoranv/jshookmcp&type=date&legend=top-left\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/image?repos=vmoranv/jshookmcp&type=date&legend=top-left\" />\n   <img alt=\"Star History Chart\" src=\"https://api.star-history.com/image?repos=vmoranv/jshookmcp&type=date&legend=top-left\" />\n </picture>\n</a>\n\n![Activity](https://repobeats.axiom.co/api/embed/83c000c790b1c665ff2686d2d02605412a0b8805.svg 'Repobeats analytics image')\n\n</div>\n","readmeFilename":"README.zh.md"}