{"_id":"lasso-mcp","_rev":"42-64700643a7d113e6054112cf51aaa079","name":"lasso-mcp","dist-tags":{"rc":"1.0.0-rc.1","latest":"1.30.2"},"versions":{"1.0.0-rc.1":{"name":"lasso-mcp","version":"1.0.0-rc.1","keywords":["mcp","claude-code","browser","desktop","axapi","agent","lasso"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.0.0-rc.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso#readme","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"2a5f696d8350032263e28f747221b3ae189b4501","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.0.0-rc.1.tgz","fileCount":532,"integrity":"sha512-Y0Y+lD0qoTO59lOZdJ5l8+nFf8WptB0av2sy1C92Ew8cmb81iOGqM8XOeHR1vPU+03m9QRtQd37AqBsGQI1Krw==","signatures":[{"sig":"MEYCIQChoSlEucURqqiRpWLQOsutYOdRcCTO7RITNUcS4ig50QIhAIuXDNjy6g7IWH7MKQZr0k9QeWM+GwwbJtXHFmgE+sjn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2986796},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"14bccdf2d3beadb8e3fd4f03701699a44fabd630","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Lasso — CC 的全交互对外抓手 MCP（浏览器+桌面）","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.0.0-rc.1_1784701749722_0.9870071135351965","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"lasso-mcp","version":"1.2.0","keywords":["mcp","claude-code","browser","desktop","axapi","agent","lasso"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.2.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso#readme","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"0a57e4ff4cc716f3f8adc40c9fa781983916dd5a","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.2.0.tgz","fileCount":542,"integrity":"sha512-BX7yV8LfP31i9UEz8xRLX4JOz4WFIJZPB5dKDXNb+RqmhtjVNwRjwVLd8C/SkYa+4DOOX3Q7K/oV/JDrNOsCrQ==","signatures":[{"sig":"MEQCIA4tyfaWJ26NB6pZJ9FDfBaE86bcOZ6Wj4QWvK1seTdWAiBxY7xTEHL8F1YfCv3WtM+Fo6aBwanZsi4ZJJ8Xw43EAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3076421},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5a307f5a107e30d7830ea5c5ea3a4efa78af7974","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Lasso — CC 的全交互对外抓手 MCP（浏览器+桌面）","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.2.0_1784725650312_0.018315833146358207","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"lasso-mcp","version":"1.4.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.4.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"660128425766f251f15ef50f7846b86d8c5ed884","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.4.0.tgz","fileCount":562,"integrity":"sha512-BfBSOWSUf5C7PYZ/5CLjbXfAV0vt5mda57bFOmrAyw4BR1XpRW6gDir8fjLAXWZpq4ZlNgF0SPbeIRGyO31n2Q==","signatures":[{"sig":"MEQCIH4Bfo+PAU3wICZ2wcZ6b1CDOwlFggPrTca6TVHL0L62AiANTCi/FrlaI5KsgGhBk/COaRV0bKlf8wZrL62JaWUSUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3865928},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"7facea4f3424ebc71c6db510dbf136100826c796","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.4.0_1784787377877_0.7214941416966372","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"lasso-mcp","version":"1.8.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.8.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"b1d9d2fe31f6a75ad7a31d5c02194047c2e4f476","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.8.0.tgz","fileCount":679,"integrity":"sha512-M0+Ymr35im6603DGu/f3gM0323hs0AKuT7MAelXWIxUW95mT5ECeqI/qxUKaw0JLi7wMORgSlJoHKMzSdNJHtQ==","signatures":[{"sig":"MEUCIEv3f3N2sp4v4fPJh4NTaA53ToYQ10pi9jopi98JnheAAiEAsokYaCIJokIGw9lw8/boKLxeUUO9O2wZ8cjNu0detQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4686288},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b89dca651c90aa4e25abf98e1a90d92b25558284","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.8.0_1786738212302_0.09430778054996636","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"lasso-mcp","version":"1.8.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.8.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"94f4e72cabcb258dda13a7397254e5b151375a24","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.8.1.tgz","fileCount":703,"integrity":"sha512-c7AAJZAclN20+6JORqFuXhtde/+bKdjeMRrQA8OcIjMDNymjrtvq14K4wFpKTAOgUmkhAFrjGtjSa200NJUctA==","signatures":[{"sig":"MEUCIHckgDJGFkAuCr9sgBnSWma6TrpyaUK29Drk+p8zskXQAiEAzgLga2ztpE40mqprYQ4H7DPfGBNpzPiD2mpmVw0cwZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4799113},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"d51339af7e59922191e7c7c2f241af1f2699c84a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.8.1_1786740497009_0.19568305864943025","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"lasso-mcp","version":"1.9.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.9.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"b97c6721b13319f74a22e7930a457c5d8cc94011","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.9.0.tgz","fileCount":734,"integrity":"sha512-YB5H8ODgseXKSDPpnxnej/kzUGD+eZyVEZajdJu/IOq2eD7oNPgV4589OMpYwDHBPn9dR6X7R8cAyPfMIdIKDQ==","signatures":[{"sig":"MEQCICQ5AgQ9/C9NtciH6hHBqcsGlbWQyjKYsm72WPTt/azAAiBzYbwlij7Ks18m1ifKfjWHd4HzYW9QJ1IozFduLQP60w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4979471},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4fda181017d64c48484a150c040ee4fe79d19a98","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.9.0_1786790155942_0.735025755422694","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"lasso-mcp","version":"1.10.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.10.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"8b4673d6db285425e0bdf3196570902934484884","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.10.0.tgz","fileCount":755,"integrity":"sha512-hfTO4kv+/azdrNUcLeW1NxottC8gv2W+iWROAxZhDUCtxlCakdrFuhuI9ULkT64yhwfZ3zLMSKZSDzicFS6KKw==","signatures":[{"sig":"MEQCIG30nqjDUi9x+68hmxGCFaU7gsxk7WKQqu5EB6BtHmbwAiALjDhVAAXXGYiIjkCmHPMPAUS6RbBe14nZ1MKGFJBnRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6290512},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9131085c0a6194d2f75dfc5c1716fa1d240ed551","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.10.0_1786796059257_0.4520703356329139","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"lasso-mcp","version":"1.13.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.13.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"51692225847f2a6ee132c592a2e1c2929791c15a","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.13.0.tgz","fileCount":789,"integrity":"sha512-8oLR5UbeNH7bKtY9m/DInNiGeR2Xye/k6iYz85MogSMMU8FmuDUL+/pQlMLAcMqMxiOVbi+06IajKlgsPd3F/A==","signatures":[{"sig":"MEUCIQD8j9m2Dz79h3wJExt5C3pdOlIKE+eQNk8NfR6PK9WTxwIgapLHX0+A7f/dg8gPJUs3gYLZieLhI90xF80hAHgwVso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7089473},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"a9eb1067d7f678fe9cfeb111b8142a030346ed03","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.13.0_1786920171662_0.6144227909213997","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"lasso-mcp","version":"1.14.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.14.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"738ce65d3914153446bb30dc24b9a5219740d814","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.14.0.tgz","fileCount":795,"integrity":"sha512-6YgidoLgUFsNY8rpcZXLtaO00cp/nAPYeKRTMW7r/xTYk8gEn5RH/oXf/ct7goAxBcMUw9AC4BJWzXcRGCnckQ==","signatures":[{"sig":"MEQCIHJGBmFG2nFF+jC3+tLTPDpGeWxCgaRSBUEoh+s1QsweAiAhKzf1gIKBRYUkyx46ewsrgbbwDP2d0pdjUdBXzLqKqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7381141},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"48e0c9428efefabb4c9ca14357a1f143484d7621","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.14.0_1786963966789_0.5082081210323517","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"lasso-mcp","version":"1.15.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.15.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"33ff3ef1de28604875761d79b26f765bed072d5d","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.15.0.tgz","fileCount":803,"integrity":"sha512-aCtrnRCjcq4LqUFA/BBo466WTsEJrhBMgujdb/DAditpt1xutzLbTF/lDMdAyWemQmU6hi89kSlgWTBQcB+ehg==","signatures":[{"sig":"MEUCIFKgtFaAVpF+zHOaVOsMQZXffaDWaFvvX0yAMmLFLhNjAiEAizzxTaAvMr2cYWJsHJiDUei9LT358gM1MCUaHZJZP1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7466857},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e7baac673ceec01d42e5f09574230664c8c38756","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.15.0_1786971811136_0.9988175795653496","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"lasso-mcp","version":"1.16.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.16.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"0090fbfcfe73f6a572feed7b9994ae2f9fd8c77b","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.16.0.tgz","fileCount":818,"integrity":"sha512-w9LIWIUcIiFjJDZ9l7veUasy1H2zjQMIde6DLxNVDrCMIC5uytXQEVjqx16TAK7CHnPArFSW0PWLgGlUt8zE9w==","signatures":[{"sig":"MEQCIHODz0U9hJ+pd9M5pyc3Ms3u9BTKMXCtgkdOlCh8etb4AiA8UMW6HS85Vyvt9O+fVNbBofc78Weae2xM5mww4+u2xQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7703704},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ef946857e529fa48bde774d95da2c479f67e59ad","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.16.0_1786985508503_0.04918762785024389","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"lasso-mcp","version":"1.17.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.17.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"d0e13da299203d253d9ba1b0debffd0ad2f7ff47","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.17.0.tgz","fileCount":855,"integrity":"sha512-rVeGQCkGmz5khnnDXJ5JgshMcAVP99vKOu0ksn/RaS+4I8xMlcjB2lZ3Ktl359333zFP3hxJUMJDYVOChRAp4Q==","signatures":[{"sig":"MEUCICPepwlA5zTQnX8SSeb27Dol+gV7dMOz9e+eprmUMycxAiEAx0xlmqUm8f8TnVvK/kAOrCH4b1/jaFO1AWFGSg3dY58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8084561},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8112a5e12dd79083e961381c8af53438372fd816","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.17.0_1787043056897_0.9119511898694674","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"lasso-mcp","version":"1.17.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.17.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"1d84249c954671c936c09093895d2aa111565cf3","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.17.1.tgz","fileCount":955,"integrity":"sha512-2xQpku3WTBajsG3N9SFXnk7b/2rKcQLlPD6ohZUD6drPDdIhctIRY6QpbgQB3qF+FCwGn/sPO+lpI+AqcikvsA==","signatures":[{"sig":"MEUCIQCb0Wrhn9N/KTKJfmG8L7IMcaq/5xiU3JCMGT3aSjCo3wIgU1+7NkTrV0hJIASD92AkMTezwQTQqUH80jNSRqrwxlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9325718},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"1432bd4c5f483612d18e621707e43fb9a9611d76","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.17.1_1787055689018_0.9264441075962093","host":"s3://npm-registry-packages-npm-production"}},"1.17.2":{"name":"lasso-mcp","version":"1.17.2","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.17.2","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"255d62e13cbf9b2fee2d4c63be443753adc540a3","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.17.2.tgz","fileCount":1004,"integrity":"sha512-9nldLd49pbzNOcY40t+OkNrxmlXi8DifJdoO9VNKKkC3twQVOMfbZIhXv3Fpql9OGQzvCbM7GvrfdUy3sredUQ==","signatures":[{"sig":"MEQCIHHHcJOGOJiwqVVtwugj7G485sLflmc4j664ybgUDEVTAiAXUVTBrOkI8REFFlxjW0Xy9RpHAVd578kYWmX0KyUKfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9783392},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"939503ba1f4645b12765a324fb70c3b648e65df3","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.17.2_1787112333267_0.46819581648353714","host":"s3://npm-registry-packages-npm-production"}},"1.17.3":{"name":"lasso-mcp","version":"1.17.3","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.17.3","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"ea256df785930ceef2655619bdf5c9701738944d","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.17.3.tgz","fileCount":1017,"integrity":"sha512-pscYoK56vvkT2AmunG3VXqS8M4JoqEyxnd1QX88txQx1BJTqmXhS76yd+oDmegnpXJ9Pe6jbuhtrhpHCvWGnyg==","signatures":[{"sig":"MEYCIQC2izQPXCuP/m1AIkOtp5a+mVTmRpFl06SbwHqCB5NYjwIhAOSP4QvvSsW4RYO+aCbXEgvpGVMp930cIJj3e5ps+rqW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9814897},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"72712df53b0ed083bc48235d19f50a40e3c000a0","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.17.3_1787115867865_0.2942649614666881","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"lasso-mcp","version":"1.18.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"2a918087f55f4f28310c3043921075e11764ca81","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.1.tgz","fileCount":1122,"integrity":"sha512-46ZWfish+C5X7b+/NuYyJFmowjvbglAdEdh/4TKrtJPk5CH+YvSVhbbhhxJUls4DrIfXfAQWBkxieWYR2F9/Xw==","signatures":[{"sig":"MEUCIQDnTfgKOXchKpOCWYbsjYwTw+TsYJaf1GClseLrAopkXQIgZsFNjLAN3CtBayezwTXMZwIL6CMo3EqfwDXzotrGivE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10133356},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"68781056a98f6efd55765e6c823e0b78deb6c803","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"deprecated":"发布包含误入的应用域文件，请升级 1.18.5+","repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.1_1787121339000_0.8168499581152271","host":"s3://npm-registry-packages-npm-production"}},"1.18.2":{"name":"lasso-mcp","version":"1.18.2","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.2","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"df3d8e4eb34799d677fe81db0f9d1033af1f4d4f","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.2.tgz","fileCount":1351,"integrity":"sha512-PWmJmozv6UmDAzqKDWxkOcDF0GB8nyPmX7b+pI8d/ikwQLjKvY/VXO4PT/yt6H7kY5030WLJLKAP6NLyMqbCBA==","signatures":[{"sig":"MEQCIAolmcXcKvWHJTqkOfNS3KPYB4VJ+W+LYXnxib8tzrVsAiABTK+unQucw15AAIlJAlKWdGWN5GyaVuZiMx3BgE0G2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47037565},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e5dde99865a0c2766e57abc4a09ad9937e7d044e","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"deprecated":"发布包含误入的应用域文件，请升级 1.18.5+","repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.2_1787155744570_0.9927561294804885","host":"s3://npm-registry-packages-npm-production"}},"1.18.3":{"name":"lasso-mcp","version":"1.18.3","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.3","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"7aa30121475fe2624c5a6033e0c2d55e23c56bf5","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.3.tgz","fileCount":1361,"integrity":"sha512-fH/sjWAVooHyGjYLYYk6nQrcXLz7gRYnFa9x69Hp2LOKPYhM3JnHtxihVTr8OHpNw9o+ooY96PAHdHi2zorgUg==","signatures":[{"sig":"MEQCIDztVbAhSCplnlhAcH2PCZMK/gneVXdRtp7cLjd6NEuyAiB3ZK7z4XiWN2nhV213Nmlyygl0B+zEPAIV34BbJ4pDqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47126405},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"232a2326171bc505e9d475cc83a8fcc0e9cb3c4a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"deprecated":"发布包含误入的应用域文件，请升级 1.18.5+","repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.3_1787282023150_0.6344231512847209","host":"s3://npm-registry-packages-npm-production"}},"1.18.4":{"name":"lasso-mcp","version":"1.18.4","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.4","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"6360dcbe7be113b94a88c1a65feb858678d3abbd","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.4.tgz","fileCount":1367,"integrity":"sha512-5gcQOJLHdqn9GmqxBtuNhFYd4ftGArvwsyvRxsLDl3uJp0e7Ih2a6A06sJShzkqvxVwe2kkugQ8siz5GB7WlFw==","signatures":[{"sig":"MEUCIQD1JVQmX7/cPQzFaPtB3A+hc33oaM+6QeJ+QCE4DIRdQAIgIoKkmzdjicqgFWaTiivUcHRbvQeQ9LNfmCEeRO146G4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47181470},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e4c73aadd4c2c40d0681b0f10715bae4c1733705","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"deprecated":"发布包含误入的应用域文件，请升级 1.18.5+","repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.4_1787459030202_0.22547848108844737","host":"s3://npm-registry-packages-npm-production"}},"1.18.5":{"name":"lasso-mcp","version":"1.18.5","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.5","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"106864975a2acb56a714525459a0f6174e17c050","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.5.tgz","fileCount":1095,"integrity":"sha512-wYkbwnWEqM3ymu9h5bp1kkMWnx6sXeUg1ZrcsJf69wXLcneNOrN3+/UKOUyP15p9aPCrNZY1LwejW9iIgtu0Fg==","signatures":[{"sig":"MEUCIQCOU9WpuaEsUAm2IPiJIPqS0vyCO+syhcorbMuB5SVbWAIgAtZov+j9DCMk/eSDDntqVCEh2Ur1PAfHvSBygAirFmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11806984},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"31cd0cca42eece23f826cd5a54cd96d2a6592f64","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.5_1787799546053_0.9445682700447191","host":"s3://npm-registry-packages-npm-production"}},"1.18.6":{"name":"lasso-mcp","version":"1.18.6","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.6","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"2e7491d5cd22013ff4dc7effd886a7de9e66901f","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.6.tgz","fileCount":1097,"integrity":"sha512-kaAm4fKh69DFGlVm8pMAZ5mU8Hc0ZrIs73OF9f33D66ZeXnNcwdenZThBNyVySVeh5Fm5Cx9AHWEGRt+CY8A3g==","signatures":[{"sig":"MEYCIQDFzPev5YaxMpbGEkPB9v+pffimiOCXJcu1tVvLG4iuQgIhAPyAcrsYtBoH71IZ41mzLMtKfsNMVM0wdQNDsy8Y7z8l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11592460},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"fb4f790334afbb155c7c665d6d4cfdaca87ab390","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.6_1787848808473_0.03896061482064961","host":"s3://npm-registry-packages-npm-production"}},"1.18.7":{"name":"lasso-mcp","version":"1.18.7","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.7","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"b7b800ebd79a08922be5ade3b3f97a1f071d3585","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.7.tgz","fileCount":1102,"integrity":"sha512-zZPsr92uVlxGHKvaRRUjAKIQILHC1eF5FbppLS5NBASsxc/sSM7j8L1UR9SNtgvaOwouU5Cw7om9u3Sz/Xtkxg==","signatures":[{"sig":"MEUCIQDz8GsR9uXla7WKrnEFVyw+VGrovTpgTqI4mf8+fhPJMAIgcLWT/Xwe8Q87Qp2oy9HEGPEJIRlGcRb8sYdGyUuscc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11602884},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8b60087057eeeda99321a7b37a567bd57562db49","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.7_1788146691338_0.39410458128313985","host":"s3://npm-registry-packages-npm-production"}},"1.18.8":{"name":"lasso-mcp","version":"1.18.8","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.18.8","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"d0c44814c3fb78d9ec1e04764a8175e7b8762c02","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.18.8.tgz","fileCount":1101,"integrity":"sha512-VlhVRNR9mndb5To9vn8/puFdJPOe/S1GsW/BTKhCk6cCyUUZ+mJ1ri0ETtNzWKnLFU1SMoy19xu1y0fSJOf34Q==","signatures":[{"sig":"MEUCIDVnHlpEUSd0IcfC/4on22mEinDtFdF6YvNGYZ2+I9kiAiEAs1UE7n0EW6L17b7APU1XVmKfooSZMChMCjhXG9BsDcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11640770},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8fe4df1c3464a7ed2b400db57d6f6e6cd5b742e8","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.18.8_1788160079274_0.1120143022361828","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"lasso-mcp","version":"1.19.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.19.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"cf001ada86c67bbd5c144e5e58e6eeb6544db42a","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.19.0.tgz","fileCount":1130,"integrity":"sha512-YEpk5cBbGxCyZMLOcILQDHz6mKZvtXb9wYbY0JoBiZOZOYSfNvyXA/ll7Qp9OVh+MYaKaS6+PZDXuzN9rqYePA==","signatures":[{"sig":"MEUCIHR3RFmmIxG2YBYbh29RwaJhoZTeg4ahgy1rLb6PvFfpAiEA4d76Cn+7BP2OyK7OoT8HJjSNuM6Bh3UevNQHFYaIrIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11992818},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4b0103e7c26ac46107d3cb0dbe627e85ca12eff7","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.19.0_1788313452959_0.402001281750173","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"lasso-mcp","version":"1.20.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.20.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"9418af17e50e0fdc7d9fdfd221d6582798062192","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.20.0.tgz","fileCount":1132,"integrity":"sha512-qQ5oaLP1KvbCCPjnOZG22LKaU8+WqAaxAQq2mUAg2zh9UHy5ki1qq842Gsw9XTNoWa1enVGUoWsYMrjuvwjtUw==","signatures":[{"sig":"MEYCIQDubDTJ+YkqH4qjjMmrPChsFHNWTKXd9P+o5llA6cOX9wIhAJfyVCxwO3KLOJ94NN0RMJ5VWf9IOs+Uunh0kq4cgE2W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12049859},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"944c99f50367e741808adad8b19891dee2f1acc9","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.20.0_1788367565946_0.2189727618568571","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"lasso-mcp","version":"1.21.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.21.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"1ef504650be8bff54bf83ca9516b05ddc27ece0f","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.21.0.tgz","fileCount":1134,"integrity":"sha512-i2Ij8Ek1gMjPwGx5JQNcSJZqfjn0yYPl3ZmcF6TDix+sIHL5BnJbVWfWf4dFLCx1xRG9aitWKs3Y1C4dvKBjPA==","signatures":[{"sig":"MEUCIEi9tHljFrjDfVg5w/7Zmm2L8j697bCjCEX11VrEr9ksAiEAw+gDzMBPBMiDcTBIS3VHPlPFMRJyUejHefhuTGa/ea4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHXT51e7DHg9iQ717gf838A0G+L05sEJChZM60HxlsHxAiEA3VXgHnWrIBtYVGMAszSaSVEV/DWHCiJz96XHPg0fD1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12304817},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"1b0d8e73de9edd9c3c78e8e28eed37a758bb48c1","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.21.0_1788847616811_0.5620383246706862","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"lasso-mcp","version":"1.22.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.22.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"c367d9ac11c5b736f9349c23d7ed9d6c8533174d","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.22.0.tgz","fileCount":1146,"integrity":"sha512-fy055OL8nxedhMR6AtIAm5VeZ2QVVuQ51p5ubUN4NzvbWGW2m588xfzLVSzkn/8UBbWtUB/TOD2yxdZxwuBY0w==","signatures":[{"sig":"MEYCIQDtxdUxlyI/PhB9k54ecDThZ3NONY8wVGFw+BnDMyc6KAIhANp5vBYXkcpgRlaCzLYPKlTgNiTilIkGPhcCKUDXfsIf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHXS9YqWU09jL5wahz/dguG+l+tbijjArJJwEAbyVJdFAiBk7caDPBZsS8o/nwD1yjooLGd/aF6vzyozOMZ6CWjVkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12529158},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9dbb52bc5e572c04c86e7ae1b733a1ae6bf5c3e7","scripts":{"dev":"tsc --watch","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.22.0_1788878971847_0.9508615020890199","host":"s3://npm-registry-packages-npm-production"}},"1.22.1":{"name":"lasso-mcp","version":"1.22.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.22.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"3d9d7381771781de7607a946fb0104b5101dbfd8","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.22.1.tgz","fileCount":1147,"integrity":"sha512-PkXiSWIghUXlNEplRytZJ1t9zSOfMOGmmkPmyemZ2ZYqT+5+QhRgDkwTbo07flss13Tc/64gPKHEBXjBz/iAcA==","signatures":[{"sig":"MEUCIGorGfpHYh3Ikwga4gDE0AEpE4/kQTFb3UuGNbBI1QzJAiEA0rSUOfOWpEgW5+k1ZUV2qvP5LR3Si718cC33ojB63tE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGwa+3bmDYazpcy0UNaAlghPrDgKlTpl0jQIZdg4VoluAiEAjc22gcsfCas8/15V22BpetwNTh0C+B7kADD7WUXZMxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12551700},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"600360463adc7eee8a83da5fd3677e4464ebfbe2","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.22.1_1788931028563_0.5949661104772643","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"lasso-mcp","version":"1.23.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.23.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"20802e46819e6a975e764335631af8fb732b2456","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.23.0.tgz","fileCount":1163,"integrity":"sha512-5zlJEyOL5AWaVjJAFm5pOtt9kQB8muD0hq7AR528ifQ8vbPLcQw2eUgvx7Qxg1NNnVI8jdwsvFZvHuolhCjhuw==","signatures":[{"sig":"MEUCIBI/0mCJkoqruAs59VpfZd5+xQYIfeXBlEsAH4Mq/v5CAiEAp9abefEr+oLBhh5fUTSl4wJ9hyoLynnlc0I/GYsrs5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFv9hCWx46UaX+vBxCZ1jnYh2e5oXnSxxW2toflqOwRjAiEAvHX3jm9BumiM+HjUuijGwR96xOwzpthCWzShfUT3bIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12705632},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"a4f23a49940ae3b325c389ce39a09ed76a88321f","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.23.0_1788944411009_0.17545958871780676","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"lasso-mcp","version":"1.24.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.24.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"68073b5db6b7bb2a5dd56e1b9b12df54bd1c20c8","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.24.0.tgz","fileCount":1165,"integrity":"sha512-oI++1N2mh88JQhNsj2MjIPE04TqqlrLqcFNACodFMBXyLNXmCLBOG+wZ+XRBBznbfiCsW/xVWBUUOZWPl+R5yg==","signatures":[{"sig":"MEUCIED/a8Q5+LXVxAo9p8/U+HMvfwCQrQZ0Pqo8+kEwgUYbAiEAnU9+N2atCzBMk8DX7XyhYT7ZR1oSPHqQiYa99DlFaK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFApLlXpfrOEi2ZKOuyOVvAx3yWv1Rsm+N7P0kVHMMeqAiBpvT+1TqZw9aBRVCEvAJaNAgs+qHTYWFGAOLfUEq3SPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12816223},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"f162e9b0efa5468d06b84b556b52963b34e73a4e","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.24.0_1789022262613_0.11498922153170255","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"lasso-mcp","version":"1.25.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.25.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"4b13132eb660e919c2ad38d441b7dd8fa5b1d9ac","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.25.0.tgz","fileCount":1166,"integrity":"sha512-T5EILxvupOdGrm5tv+B2ossHwXaOs+msZsP9jlnCN/E01Wr1gkld4Xc3V2qfOsTRimSK71fV7HfRLqBMTOIybQ==","signatures":[{"sig":"MEQCIBfUbHN0bpFCmw2btschIWisdCb19FGF8YrVEWiAaRdLAiBOHYqgrn5NvhqvwRnOUaYeNiPP+ms8YHNI2fkJOiFqnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVHOD5CXUHaHid7RgWfwIM7/tTJIeSK31hWgxANwcv+wIgKFQfASqi+0AzYmwc9TEMWDzGilWbCWOFBNBfCr8oyCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12919083},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"92200d3f1d65a9610041c1d4bbcfc610c1029a2c","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.25.0_1789051219327_0.9575551311132875","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"lasso-mcp","version":"1.26.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.26.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"f169dd6e7658492a8edce79788e4a3afb9bd6d87","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.26.0.tgz","fileCount":902,"integrity":"sha512-POGaQt3ozlsxzS5GCv08D2u24V//Uo5TDXfFMcJCQVnS3ARdI+yW/GS3V6gKyX0VLQF7sZ15uMXMxippclsQ5w==","signatures":[{"sig":"MEYCIQDiFS8NmPr9b12yzoATsO7DYqBcdOYCvdwoFJTe6Dg3JgIhANsfCtIr5kmZP6PKJpEfB3NMYBxnSlt84HMfEtjGiVoJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAMEAYny/v/8cV3mT8M2tbE11dcguwYnOEhnET0eQ4/wAiEA8v1ijDhSpUraor8QBnptG4A83re4I5YdHbOd9xs7oGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8630317},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"6fbbe860ab70c5a8954221a0e1c0ec55d161c3cb","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.26.0_1789501889704_0.988061374744007","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"lasso-mcp","version":"1.27.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.27.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"f0f22840740b939570da7dd4b9029f7fe4888669","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.27.0.tgz","fileCount":913,"integrity":"sha512-P6SXn/bviUNiQynAwHC6+Y6Dw8MpAbu72vDl4qVZRodK0aopIfB3kJ3jk4nyjaQLdupZ4gW/XB8NjdnCAyK1xA==","signatures":[{"sig":"MEYCIQDvnysDarVU1fp3TscPDDN9E5fpzqA9r+ocb/Gx4e/dbwIhAPmS04+FGyAuY4FbfW8L9o4hRR4L4k05huzqLN3y+eP2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZnFRWTlooxaTT8Bf2Dh+bEdcSf+ZkkDqYqGpgXVu2uQIgZKOWOQLmydm4T3EcyJDpPCcJloPGgEI94zSSOP19Bo0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9017338},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0cbd9508218fc1ee78076ffc40008b1c884c2dd6","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.27.0_1789553356791_0.3709573979408325","host":"s3://npm-registry-packages-npm-production"}},"1.27.1":{"name":"lasso-mcp","version":"1.27.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.27.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"ea8b1955e96b959930febfa7d5c09b1afbfcc54e","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.27.1.tgz","fileCount":914,"integrity":"sha512-AHsZ6IVArHZaUSXUbjEPpCuszaeLc6PrjRMWr3ulcW10zOhYJL/33nGYlkrDuV8q17WE7GT2lzYJU3FxG7UrFQ==","signatures":[{"sig":"MEYCIQCFe6LCXPxaPLbjcbOoOS7+JmXg1+Ebd/8OwXIZQRoN+wIhAP+gkx1IMqtRC5skZuuwcLkJt+eEAbUqAtqWYlGWPf6B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDaK3WQEHZ+a53h+Ge5bOOCnwG+dWyGcY06h4ExshvPtgIgeOf2yt/C+pNnukS5St4E4f8gFZlGeSGYSd3WX62rpB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9075037},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"81e882d71200619536d63c6cd5fd7bc939c19226","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.27.1_1789561026493_0.23641413782292764","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"lasso-mcp","version":"1.28.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.28.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"ed0e4ebaed7f2df7bd824e478f06462a3e5b4d3e","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.28.0.tgz","fileCount":922,"integrity":"sha512-VNu5oWMYFZufeC/Y5IkCiW5YEc/hWxAYjNeyBGsTCnVd8ZzYmZwxB6gp17rZ/5Mb5tXNB8mpV7l8W4Y71nuw/A==","signatures":[{"sig":"MEQCICiS+rGtW6MNT6hTt8HINivvf5zxtGRURkS585bSk2ZjAiBOT79s98uJv0vMZG19sg2f0YOmw8P/r0hu9wFG9Xclww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDFdRBc6ZnkLnI7VnqYQCAxU6KiF7b0eKXk6Z49pADIjQIgH/Bvqtq9twapyq3ky2ALQ6JWdQION+j3u9IH3ehcg0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12131811},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b20e23e275baf79984b0fe2f5e67bd2a3d995ee7","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.28.0_1789636751072_0.5185377531979878","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"lasso-mcp","version":"1.29.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.29.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"e8e24cf4bbc6b04989dc05deece5d27265f7ad25","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.29.0.tgz","fileCount":934,"integrity":"sha512-dh1anNNY7HQoIZJxYgbdAnWBDkrOmoAFMwppN7OLhNcjjUpUxCFnwh9IVqgsFQ8+FVHfhRJFJQrQpHcAtXNy/g==","signatures":[{"sig":"MEYCIQCzJMi1xcWtEhG2OvuTQ5xoLWzmus+wpjMtjLQas5xm3gIhANFEBG+xTR7NCUIVz0ZK2Ud8depgcQ+qStjartIEKiK3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHHoI6TNwFiV7cg201A5HNdaPH1GulF35Zz8nfel6kq0AiEAh4pJFNYeTu51P67vqwI9y0dLeGXDOINiKSLIetNsc1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14044982},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"afd7d20e6e144e4f7449980facc9b8e7e245804e","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.29.0_1789694906845_0.9930520281954918","host":"s3://npm-registry-packages-npm-production"}},"1.29.1":{"name":"lasso-mcp","version":"1.29.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.29.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"c713dd2b70b72c04aa43514c3d12344e8ad80342","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.29.1.tgz","fileCount":934,"integrity":"sha512-Z6vjII4cJgjaTcNTtGE9lrx7nodxFxSEeK21nPdVk3f7GO8W8S8r2EsuLY07HYXNr0zXx1wVMDSXKZPtqpXuvA==","signatures":[{"sig":"MEUCIDe+a7IHzOeb+2/fTUHZiu1wesYisWkpmkLUH4stlylBAiEAhTm7notYG0KO+6GnqNuDuSKmUMDVJ2k6oNOJ0elfhEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZcs7hicKFFUOIx41iwBsBv2u0Wwh5ekdks+rRavpgYAiEA6UesdK62FgbIvAn/kin0IUab55WzgpGmn7r1EZ/fuhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14045526},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"2c92afebedcc56e600be06e2964219a2be867d57","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.29.1_1789695501093_0.9382639003242064","host":"s3://npm-registry-packages-npm-production"}},"1.29.2":{"name":"lasso-mcp","version":"1.29.2","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.29.2","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"ca4768197513bb84b720a4881a35b2efcab2fbd5","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.29.2.tgz","fileCount":934,"integrity":"sha512-R7Z/Wm7wKASJ2NI8kmJwiViEk6eWdImdWWZXfXoviL+28zNt9KMzJg5eopUaEWI64elPR9ODsC7nWdGKQ6JoPg==","signatures":[{"sig":"MEQCIHjoCm8GEoM9HuBaO3mT7lk0MhRrpqmNdnsx6Dlnok62AiAX/lXnbD30SoKfdGO7aXxTpXVNUI7UFPq5kVskNj7uAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDbwJ+e3LO3PLA0tyTW4M08o9U81+1+MZch2hIaZfLj2AiBt9UPJ5Rq+KwY+5t1+q9axOP/z+DtwceAAuCZnXDRb9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14048094},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8a26ae05df87ff192654e73853029152501f1a5c","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.29.2_1789701480052_0.09750199958075956","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"lasso-mcp","version":"1.30.0","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.30.0","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"daee709903c726d07d719d91de9db09bc66fd1a3","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.30.0.tgz","fileCount":1030,"integrity":"sha512-eNHfbDJl8BlADSgzUDEDPpTrsrCSpWkAeZH86PIb+5H9I3jVUst7chsuTr5oG/sReuIEVeNmZREeekawo6bQrg==","signatures":[{"sig":"MEUCIF6xeVtYtzZAqYHcaJNwMDNEs221NdyhNEcx0ATPoKXkAiEAoJm/3CihvGcyzZbvznn1PBk3LR1k5PAf21P/6tI+qBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHZbZuKm+zfky8rDsutoVx9llKXGF/SNf/tlLR6U4R98AiA8d4beNQLvq4yXP/AdI8Z/+wHdPgueATe+XnPub5DIJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14570310},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"a1c7e827b548d06719bd836e580ac0073b2c3959","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.30.0_1789901139015_0.9709453241580719","host":"s3://npm-registry-packages-npm-production"}},"1.30.1":{"name":"lasso-mcp","version":"1.30.1","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"author":{"name":"wangdong233"},"license":"MIT","_id":"lasso-mcp@1.30.1","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"homepage":"https://github.com/wangdong233/lasso","bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"bin":{"lasso-mcp":"dist/index.js"},"dist":{"shasum":"7e640d9f2f6b7fcec0657fc45763dd6cbb29f958","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.30.1.tgz","fileCount":1032,"integrity":"sha512-Sg1S1KhCeVz75s1E1ZmLqMj5WW+vn6al3eXWJfUoYqsLosRfJlHIDa/aGFxA2eBlGIiZBJb3aLY8L2/o10WTRw==","signatures":[{"sig":"MEUCIGl52M3s0ikJY8MYAl4LR98p7b73y9N3WeTK7q8xUt5XAiEAr8Chf8kpiV7k8lTPiEGzH/uWHMfUS/227Dfk84Bnwpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB/4A5wfTkZuY7eiOCH35XM7T+mpyYixWm71+6aaUI28AiEA+aBr4PsRGepKA4SGaQRGlLDXBKWtSIfFeUTDgMA8lSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14613492},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"38386e046aba5797113a942fa3f80f5019e55711","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/lasso-mcp_1.30.1_1790138745626_0.12382026857039152","host":"s3://npm-registry-packages-npm-production"}},"1.30.2":{"_id":"lasso-mcp@1.30.2","bin":{"lasso-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"dist":{"shasum":"bd7c5f0c1e1d5f5d0c971fb80e85b7f5664fe665","tarball":"https://registry.npmjs.org/lasso-mcp/-/lasso-mcp-1.30.2.tgz","fileCount":1032,"integrity":"sha512-9uF4txXwnKWdZn5fDgMgPCmO33qm/rdFWQZMpmRGF9MosiQuJTl1+aU64N/aCo1N6QR2TgMSQI/ow4/bgIJtrQ==","signatures":[{"sig":"MEYCIQDiXj+3Kx+EfmpBSUXx43ABcQn9i1jlLRSsrLSBaDVlWwIhALCLE1DUPPP7xg18N5+nLV1lw6xQOkJX3Gz7ly6CQc0W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC1Po7axERnFTyxKAo8N3QF01SsWYWD9YkvvohIHmkV3gIhAL3Q1CDIzN7ekRSTql0pnYXGi8EWtvO3Z/HxJfHpvKFZ"}],"unpackedSize":14625568},"main":"dist/index.js","name":"lasso-mcp","type":"module","types":"./dist/index.d.ts","author":{"name":"wangdong233"},"engines":{"node":">=20"},"gitHead":"588e451438cd602de06143fe780c9d039acb7f19","license":"MIT","scripts":{"dev":"tsc --watch","gate":"node scripts/gate.mjs","test":"vitest run && node scripts/check-readme-sync.mjs","build":"tsc && chmod +x dist/index.js && mkdir -p dist/doctor/fixtures && cp src/doctor/fixtures/creepjs-baseline.json dist/doctor/fixtures/ && node scripts/ad-hoc-sign-helper.mjs","start":"node dist/index.js","test:watch":"vitest","inv-selftest":"node scripts/inv-selftest.mjs","replay-baseline":"node dist/index.js replay-baseline","check-invariants":"node src/invariants/check-invariants.mjs"},"version":"1.30.2","_npmUser":{"name":"wangdong233","email":"w11201413@163.com"},"homepage":"https://github.com/wangdong233/lasso","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"_npmVersion":"11.6.2","description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","directories":{},"maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"_nodeVersion":"24.12.0","dependencies":{"zod":"^3.25.0","uuid":"^11.0.0","undici":"^7.28.0","ip-cidr":"^4.0.2","defuddle":"^0.19.1","turndown":"^7.2.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.9.0","@types/node":"^20.17.0","puppeteer-core":"^25.3.0","@types/turndown":"^5.0.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lasso-mcp_1.30.2_1790145742980_0.526713509283071"}}},"time":{"created":"2026-07-22T06:29:09.638Z","modified":"2026-09-23T06:42:23.674Z","1.0.0-rc.1":"2026-07-22T06:29:09.893Z","1.2.0":"2026-07-22T13:07:30.548Z","1.4.0":"2026-07-23T06:16:18.058Z","1.8.0":"2026-08-14T20:10:12.518Z","1.8.1":"2026-08-14T20:48:17.188Z","1.9.0":"2026-08-15T10:35:56.161Z","1.10.0":"2026-08-15T12:14:19.489Z","1.13.0":"2026-08-16T22:42:51.905Z","1.14.0":"2026-08-17T10:52:47.016Z","1.15.0":"2026-08-17T13:03:31.410Z","1.16.0":"2026-08-17T16:51:48.785Z","1.17.0":"2026-08-18T08:50:57.131Z","1.17.1":"2026-08-18T12:21:29.205Z","1.17.2":"2026-08-19T04:05:33.541Z","1.17.3":"2026-08-19T05:04:28.158Z","1.18.1":"2026-08-19T06:35:39.297Z","1.18.2":"2026-08-19T16:09:05.082Z","1.18.3":"2026-08-21T03:13:43.937Z","1.18.4":"2026-08-23T04:23:50.725Z","1.18.5":"2026-08-27T02:59:06.324Z","1.18.6":"2026-08-27T16:40:08.754Z","1.18.7":"2026-08-31T03:24:51.563Z","1.18.8":"2026-08-31T07:07:59.529Z","1.19.0":"2026-09-02T01:44:13.195Z","1.20.0":"2026-09-02T16:46:06.173Z","1.21.0":"2026-09-08T06:06:57.032Z","1.22.0":"2026-09-08T14:49:32.004Z","1.22.1":"2026-09-09T05:17:08.778Z","1.23.0":"2026-09-09T09:00:11.213Z","1.24.0":"2026-09-10T06:37:42.844Z","1.25.0":"2026-09-10T14:40:19.538Z","1.26.0":"2026-09-15T19:51:29.906Z","1.27.0":"2026-09-16T10:09:16.995Z","1.27.1":"2026-09-16T12:17:06.664Z","1.28.0":"2026-09-17T09:19:11.374Z","1.29.0":"2026-09-18T01:28:27.046Z","1.29.1":"2026-09-18T01:38:21.298Z","1.29.2":"2026-09-18T03:18:00.281Z","1.30.0":"2026-09-20T10:45:39.253Z","1.30.1":"2026-09-23T04:45:45.880Z","1.30.2":"2026-09-23T06:42:23.520Z"},"bugs":{"url":"https://github.com/wangdong233/lasso/issues"},"author":{"name":"wangdong233"},"license":"MIT","homepage":"https://github.com/wangdong233/lasso","keywords":["claude-code","mcp","model-context-protocol","browser-automation","web-scraping","desktop-automation","macos","windows","linux","accessibility","axapi","chrome-devtools","typescript","rust"],"repository":{"url":"git+https://github.com/wangdong233/lasso.git","type":"git"},"description":"Claude Code 的全交互对外抓手 MCP —— 搜/抓/登录态抓/控桌面，四通道+多引擎 fallback+AES cookie+markdown 抽取。All-in-one interaction MCP for Claude Code.","maintainers":[{"name":"wangdong233","email":"w11201413@163.com"}],"readme":"<h1 align=\"center\">Lasso</h1>\n\n> Claude Code 的「全交互对外抓手」—— 搜、抓网页、抓登录态页、控桌面，一句话全包。\n> 牛仔套索，套住任何界面。\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/npm/v/lasso-mcp\">\n  <img src=\"https://img.shields.io/badge/license-MIT-green\">\n  <img src=\"https://img.shields.io/badge/MCP-compatible-purple\">\n</p>\n\n**给 Claude Code 装一次，以后搜东西、抓网页、抓登录态页、控桌面都是一句话。** 每周都要搜几次、抓几篇、点几下桌面 app，又不想为每件事单独装一个工具——这里只装一次，全交给 Claude。\n\n与 [media-gen-mcp](https://github.com/wangdong233/media-gen-mcp)（图像抓手）双子星：「所有图像操作归一个 MCP」↔「所有外部交互归一个 MCP」。\n\n<div align=\"center\">\n\n**简体中文** | [English](README.en.md)\n\n</div>\n\n## 目录\n\n- [你说一句话，得到什么](#你说一句话得到什么)\n- [💰 费用一览](#-费用一览)\n- [60 秒上手](#60-秒上手)\n- [能帮你做什么](#能帮你做什么)\n- [安装](#安装)\n- [配置详解](#配置详解)\n- [隐私与安全](#隐私与安全)\n- [故障排查](#故障排查)\n- [适合谁 / 不适合谁](#适合谁--不适合谁)\n- [支持作者](#支持作者)\n- [License](#license)\n\n---\n\n## 你说一句话，得到什么\n\n| 你说 …… | 你得到 |\n|---|---|\n| 「搜一下 rust async 生态最新动态」 | 结构化搜索结果（某家临时挂掉自动换下一家，你无感） |\n| 「搜最近一周 Claude Code 的更新」（v1.11） | 按 `freshness=week` 过滤的时效结果——不用往查询词里手写日期 |\n| 「claude-code 最新版本号是多少」（v1.16） | 官方 feed 最新条目（发布即推送，不等搜索索引；给一个 RSS/Atom 地址即可） |\n| 「抓一下 github.com 首页文字」 | 干净正文（自动剥掉导航 / 广告 / 冗余，省 30–70% 字数；20 多个高频站点走专用抽取器、表格不丢结构——v1.12） |\n| 「打开我已登录的 Jira 看看待办」 | 登录态页面快照（复用你本机 Chrome，2FA 你自己解） |\n| 「这个链接打不开了，找找存档」 | 互联网档案馆最近一份快照 |\n| 「把 Finder 当前窗口的文件列出来」 | 桌面上的窗口和控件列表（语义树，非截图；树被截断会明说 `truncated:true`——v1.12） |\n| 「点一下那个新建文件夹按钮」「在搜索框里输入 XX」（v1.11） | 桌面动作真实执行（AXAPI 语义点击/输入 + 结果验证；canvas/Electron 自动降级坐标点击） |\n| 「把这一页截个整页长图」「存成 PDF」 | 落盘的文件路径（不会把一大坨图片数据塞进对话） |\n| 「这个页面加载了哪些第三方跟踪」 | 资源列表 + 跟踪域名计数 |\n| 「列一下我现在能控的所有窗口和网页」 | 一个统一清单（网页和桌面窗口都在里面） |\n| 「把系统深色模式关掉」 | 自动点按 / 输入 / 快捷键（带结果验证，做完了会确认） |\n| 「直接取这个 JSON 接口的返回值」 | 原始字节（最快最省） |\n| 「这个站好像有点反爬，试试看」 | `browse_headless` 自带反检测（过基础 bot 检测），很多站点直接能抓，无需配置 |\n| 「这个站有 Cloudflare 我抓不动」 | 云端 Chrome 反爬——**Steel 自托管（免费）** 或 browserbase/stagehand（付费，默认关） |\n| 「Lasso 现在配好了吗？」 | 一份健康自检报告（告诉你哪里没配好） |\n\n> 你不用记任何能力名，直接说你想干什么，Claude 自己挑最合适的方式完成。\n\n---\n\n## 💰 费用一览\n\nLasso 本体**完全免费 + MIT 开源**。每一项能力到底要不要花钱，一张表说清：\n\n| 能力 | 费用 | 说明 |\n|---|---|---|\n| Lasso 本体（MCP server + 全部核心能力） | ✅ 免费 | MIT 开源，永远免费 |\n| 搜索（机器智谱 MCP 复用 + Brave） | ✅ 通常零配置 | 机器已配智谱 web-search-prime MCP 即自动复用（主路径，无需任何搜索 key）；Brave 为可选付费计划含 $5/月额度（2026-02 起免费档取消）；Lasso 还自带免费实搜兜底，一家不配也有搜索。v1.17 起 Lasso 不再支持自有智谱直连 key（`ZHIPU_API_KEY` 已退役） |\n| 抓公开页 / 截图 / PDF / 网络审计 / 抓原始字节 / 本地私有搜索（v1.17：历史+文件） | ✅ 免费 | 本地运行，无 key 无付费 |\n| 抓登录态页面（复用本机 Chrome） | ✅ 免费 | 本地运行，无 key 无付费 |\n| 控桌面（macOS / Windows / Linux） | ✅ 免费 | 本地构建运行，仅需系统授权；**可选** Apple 开发者账号 \\$99/年做签名持久授权（不签名也能用，只是每次重授权） |\n| 云浏览器 · 自托管 Steel（v1.6 新） | ✅ 免费 | 本地 Docker 跑 Steel（Apache-2.0 开源），**零 per-session 费 + cookie 不出本地**；需 `LASSO_ALLOW_CLOUD_BROWSER=true` + `STEEL_ENDPOINT=http://localhost:3000` |\n| 云浏览器 · 托管型（browserbase / stagehand） | ⚠️ 付费，默认关 | browserbase 试用后按量付费；stagehand 是程序化实验通道（无 MCP 工具入口）；**不配不花钱** |\n| `browse_headless` 反检测（v1.5 新） | ✅ 免费 | 默认注入 16 路反检测（UA / webdriver / webgl 等），很多基础 bot 检测直接过 |\n\n> 一句话总结：**只要不开托管型云浏览器（browserbase/stagehand），Lasso 全程 0 成本**——搜索有免费额度够日常用，Steel 自托管也是免费的。\n\n---\n\n## 60 秒上手\n\n### 30 秒｜一行接入（零配置）\n\n```bash\nclaude mcp add lasso -- npx -y lasso-mcp\n```\n\n重启 Claude Code → 输入 `/mcp` → 看到 `lasso ✓ Connected` 就装好了。**安装命令不带任何 key**——下一档再说配置。\n\n### 30 秒｜不配任何东西，已经能干这些\n\n装完就能用，一个 key 都不用配（这是**第一档：零配置**）：\n\n- 抓任何**公开网页**的文字、转成干净正文\n- **截整页长图**、**存 PDF**，返回文件路径\n- 看**一个页面加载了哪些第三方跟踪**\n- 直接取 JSON 接口或文件的**原始返回**\n- 控制 macOS 原生 app（Finder / Mail / 系统设置等，需在系统设置里勾一下授权）\n\n> 💡 **搜索默认零配置可用**：如果你机器的 `~/.claude.json` 已经配过智谱 `web-search-prime` MCP，Lasso 启动时自动检测复用——搜索直接能用，不需要配任何搜索 key（v1.17 起这是唯一受支持的智谱接入方式）。跑 `lasso doctor` 看 `#36 machine_search_mcp` 是不是 `pass` 就知道。\n\n第一份产出——直接对 Claude 说：\n\n> 「抓一下 example.com 的文字，转成 markdown」\n\n### 想要更多？（都在[配置详解](#配置详解)）\n\n- **搜东西** → 通常零配置（机器已配智谱 MCP 即可）；想加第二源再配 Brave key\n- **抓登录态页** → 跑一次 `lasso launch-chrome`\n- **控 macOS 桌面** → 跑一次 `lasso doctor` 授权\n\nkey 怎么申请、免费额度多少 → [**Key 配置指南**](./doc/usage/01-KEY-GUIDE.md)。\n\n---\n\n## 能帮你做什么\n\n按你**想干什么**分组，不按工具名。每组都是一句话进、一句话出。\n\n### 搜一下\n\n> 你：「搜一下 X」 → 结构化搜索结果\n\n默认优先复用机器的智谱 MCP（中文主力，零配置），可选再配 Brave 做多源（Bing 与智谱直连两个死层均已移除，历史配置键保留但会被静默忽略）。**任一家临时限流或挂掉，自动切下一家，你无感**。某家免费额度用完也不影响整体。\n\n> 搜完想**顺手拿正文**：说「搜索并带 3 条正文」（`content_blocks: 1-5`，v1.17）——拿到蓝链后立刻并发抓 top N 页面正文，按你的查询词**裁剪到 ~6k 字符**（导语必留、关键词段优先），一步拿到「链接 + 能直接读的内容」。抓不到的条目**如实标注**（`fetch_failed` / `not_html`），蓝链照给，你或 AI 再决定要不要开浏览器补。零付费依赖，不起浏览器。\n\n要查**新闻、版本动向**这类时效内容，直接说「搜最近一周 / 最近一个月的 X」——自动带时效过滤（day / week / month / year，v1.11），不用往查询词里手写日期。\n\n### 搜你电脑里的东西（v1.17 新）\n\n> 你：「我最近看过哪些关于 X 的页面」 / 「本地哪些文件提到 X」 → 本地私有搜索\n\n`search_local` 直查你本机的 **Chrome 浏览历史**（多 Profile 都扫）和 **Spotlight 文件索引**（mdfind）——不出网、不碰云。隐私红线内置：**只返回标题 / 链接 / 时间 / 标题匹配片段，永不全量导出页面内容**，单次最多 50 条，对源库只读。Apple Notes 全文检索暂未开放（诚实返回「未实现」而不是装作查过了）。\n\n### 抓公开页（不用登录）\n\n> 你：「抓 example.com 的文字」 → 干净正文，三种粒度可选\n\n自动剥掉导航条、广告、侧边栏等冗余，**省 30–70% 字数**（也更省钱）。GitHub / Reddit / Hacker News / Wikipedia / Substack / Medium 等 **20 多个高频站点走专用抽取器**，表格、数学公式这些结构也不丢（v1.12）——正文里的链接都是完整可点的绝对地址。要带引用角标（适合做调研、喂给 RAG）也能一句话切换。\n\n> 读完想**就地续操作**（点按钮 / 填表单）：说「抽取时带上交互句柄」（`include_refs`，v1.17）——markdown 末尾附一张 `[r1] button \"提交\"` 式句柄表（正文本身零标记），之后「点 r1」「往 r2 填 X」直接按句柄定位，不用再跑整页快照。页面变了句柄会**诚实失效**\n\n> **往输入框打字（v1.29）**：对 Claude 说「在这个搜索框逐字输入 XX」——`action:\"type\"` 走**逐键可信输入管道**（浏览器标记 `isTrusted:true`，React 等受控框架的 onChange 正常触发、失焦后值存活——`fill` 的批量设值会被这类框架在失焦时回滚）。长文本也是逐键；**追加语义**（不清空原值，`fill` 才是整体替换）；回车用 `{action:\"press\", key:\"Enter\"}`。检测到站点拒绝程序化输入时返回体会带 `input_guard_suspected` 信号与三条出路提示（换 type / 重新抽取走 uid 路 / 请你亲手输入）——**只提示、绝不替你绕过站点的输入保护**。（返回 didnt + 提示重新抽取，不瞎猜不自动重试）。\n\n> **v1.5 起，`browse_headless` 默认开启反检测**（伪装 UA / 抹除 `navigator.webdriver` / 伪造 webgl、plugins、codecs 等共十几路）。**无需配置，自动生效**——很多「检测 headless」的站点现在能直接抓（v1.8 修复了一个注入静默失效的缺陷，现在是真的生效，且注入失败会在日志里如实报错）。v1.11 起反检测在**浏览器启动层**就生效：UA、视口、语言随档案统一下发，网络层 HTTP 头和页面 JS 看到的是同一套值，不再自相矛盾；v1.12 起 macOS 上默认指纹**与你的系统对齐**（不再「UA 说 Windows、机器特征招供 macOS」）。只有 Cloudflare 级重度反爬才需要走云浏览器（见下方「反爬强攻」）。想验证反检测效果？跑 `lasso doctor --stealth-check` 看 creepjs 检测对比。\n\n> **测本地 HTML 文件**（单文件交付物、离线产物验收）：`file://` 链接默认拒（防注入的 agent 顺手读你本地盘）；对 Claude 说「打开 file://…」被拒时会带 opt-in 指引——设 `LASSO_ALLOW_FILE_FROM=/你的项目目录` 后，`browse_headless` / `browse_logged_in` 即可导航/快照/抽取/截图**指定目录子树内**的本地文件（`../` 穿越、symlink 逃逸、目录前缀伪造全封口；`fetch_url` 等其余工具仍保持 http(s)）。\n\n### 抓登录态页（有 2FA 的也行）\n\n> 你：「看看我 Jira 的待办」 → 登录态页面快照\n\n复用你**本机已经登录好的 Chrome**——你自己把 2FA 解了，Lasso 接管后续抓取。支持私有的 GitHub 仓库、公司内网、付费订阅内容等。\n\n> 🔴 **红线**：Lasso **不替你解** 2FA / 短信验证码 / CAPTCHA / 邮件魔法链接。这些必须你在本机 Chrome 里手动过一次。\n\n> 🛡️ **高风险操作回合内确认**（v1.17）：自动操作碰到富文本编辑器、拖拽、瞬态弹窗这类高风险 pattern 时，若你的客户端支持 elicitation（Claude Code ≥ 2.1.76），会在**同一回合内**弹确认让你选「继续 / 跳过 / 终止」——选了继续才执行，不再直接中断整轮重来。老客户端行为不变（照旧安全拦截）。**确认只对当次有效**：每次命中都会再问你，不会记住授权。\n\n### 直接抓字节（最快最省）\n\n> 你：「GET 这个 JSON 接口」 → 原始字节\n\n不需要渲染整页的场景，直接走原始 HTTP，比走浏览器**快约 4 倍、便宜约 4 倍**。按内容类型自动识别（JSON / 文本 / 二进制）。\n\n### 下载文件（v1.30 新）\n\n> 你：「把这个 ISO 下到下载文件夹」「这两个视频连字幕一起下下来」 → 落盘文件路径\n\nGB 级大文件、视频、磁力链接——直接下到磁盘，**不进对话上下文**（`fetch_url` 的 16MiB 小体量帽保持不变，各司其职）。三引擎自动路由：**直链多线程+断点续传**（aria2c）、**流媒体+字幕+纯音频**（yt-dlp）、单流兜底（undici）。下载进程**独立存活**——Lasso 重启也不中断；`status:\"all\"` 随时列回全部任务与**产物绝对路径清单**（跨会话交付物本体）。HTTP 任务中断后重发同一 URL 即**字节级续传**；多个任务并行互不阻塞。\n\n> **诚实边界（BT/磁力）**：本机网络（广东移动家宽，2026-09-20 实测）存在运营商级 BT DPI 封锁——磁力任务 60 秒零 peer 时会**同时报两个原因**（死种 OR 网络封锁，不武断单因）并给出三条出路（换 http/stream 源 / 试 IPv6 / 换网络出口）。\n\n> **安全面**：落盘目录限白名单（默认 `~/Downloads`，`LASSO_DOWNLOAD_DIR_ALLOWLIST` 可扩展）；文件名强制 basename（禁路径穿越）；单任务默认 5GiB watchdog 上限（超限即杀并标 oversize）；http 直链走与 `fetch_url` 同一套 SSRF 守卫。\n\n### 截图 / 存档\n\n> 你：「截个整页长图」「存成 PDF」 → 落盘文件路径\n\n所有图片和 PDF 都**存到本地、返回路径**，不会把一大坨图片数据塞进对话浪费上下文。超大文本输出（fetch_url / network 等）超过 48 KiB 也会自动落盘，返回预览 + `@oN` 续页句柄——用 `read_text` 工具按页续读（v1.8 起经 MCP 可直接调用）。要**自定截图落盘位置**（`options.screenshot.filePath`）：默认拒（防任意路径写盘）——设 `LASSO_SCREENSHOT_DIR=/你的输出目录` 开放，且只允许写进指定目录子树（嵌套新目录自动创建也限在内）；不指定路径时默认落 `/tmp/lasso-screenshot-*.png`，行为不变。\n\n> **截「当前页面状态」**（动画中间帧取证）：`browse_headless` / `browse_logged_in` 的 `action=screenshot` **省略 url** 即对当前受管页面直接截屏——**零重导航**，前面 evaluate 建立的页面状态（如 `document.getAnimations().forEach(a=>a.pause())` 冻结在 35% 的 CSS 动画）原样保留。推荐循环：带 url 的 action 建会话 → `evaluate` 冻结/注入 → `{action:\"screenshot\"}`（无 url）截当前帧 → `console` 取证——同会话四通道闭环。独立 `screenshot` 工具省略 url 同义（绑 headless 会话；logged_in 会话的当前帧用 `browse_logged_in`）。无活动会话（冷通道/页面已关/被自愈换页）会显式报错（`didnt` + 下一步指引），**绝不静默新开浏览器、绝不截空白页伪造状态**；带 url 的旧用法行为零变化。\n\n### 看一个页面加载了什么\n\n> 你：「这页加载了哪些第三方跟踪？」 → 资源列表 + 跟踪域名计数\n\n自动识别页面加载的全部资源，按第三方域名聚合，方便看隐私风险、性能瓶颈。v1.11 起资源采集直接走浏览器引擎的原生网络层——**代理 / TUN 网络环境下也完整**，每条资源还带请求方法和状态码。\n\n> **排查页面报错**：对 Claude 说「读一下这个页面的 console」——`browse_headless` / `browse_logged_in` 的 `console` action 直接读当前页自上次导航以来的 console 消息（`console_level` 按严重度过滤 error/warn/info/debug，`console_limit` 只留最近 N 条）。渲染类缺陷排查不再需要注入 `window.onerror` 绕路。顺带一提：你传了但当前 action 用不上的 options 键会在响应的 `data.ignored_options` 里如实列出——Lasso 不静默丢参数。\n\n### 控桌面原生 app\n\n> 你：「把深色模式关掉」「读一下 Mail 收件箱第一条」 → 自动操作（带验证）\n\nmacOS 上能控 Finder / Mail / Safari / Notes / 系统设置等任何原生 app，**Windows / Linux 也能控**（见下方诚实边界）。操作带结果验证——做完了会确认「真的做完了」，不伪造成功。\n\n> **诚实边界**：macOS 经真实环境验证；Windows / Linux 编译和契约层都通过自检，但真机完整手测仍在推进中。**不伪造「已在 Win/Linux 上完整验证」**。\n\n### 跨网页和桌面统一调度\n\n> 你：「列一下我现在能控的所有东西」 → 一个统一清单\n\n网页和桌面窗口共用一套清单——你不用区分「这是浏览器里的」还是「这是桌面上的」，Claude 自己挑要操作哪个，后续都顺着这个清单走。\n\n### 死链救活\n\n> 你：「这个链接 404 了」 → 互联网档案馆最近快照\n\n去互联网档案馆（Wayback Machine）查这个链接最后一次被存档是什么样。**不会主动把活链当死链处理**，只在你说「找不到了」时才查。\n\n### 订阅官方博客 / 追最新版本（v1.16 新）\n\n> 你：「claude-code 最新版本是多少」「官方博客最近说了什么」 → 结构化条目列表\n\n给它一个 RSS / Atom / JSON Feed 地址，直接拉成带标题、链接、发布时间的条目列表（约 200-500ms，零 key）。搜索索引要滞后几小时到几天，feed 是**发布即推送**——追版本号、退役时间线、官方公告这类「要新」的问题，问 feed 比搜一遍更准。官方博客的 feed 地址通常藏在页面头部的 `<link rel=\"alternate\">` 里，让 Claude 先 `fetch_url` 一下就能发现。\n\n> **生态搭配（推荐但可选）**：常写代码的话，建议另装 [Grep by Vercel 的官方 MCP](https://grep.app)（免费，索引 100 万+ GitHub 仓库的真实代码用法）。「别人怎么写」类问题它比任何网页搜索都准——Lasso 不内置它，各干各的活，互不重复。\n\n### 反爬强攻（默认关）\n\n> 你：「这个站有 Cloudflare，抓不动」 → 云端 Chrome 反爬\n\n默认**完全关闭**。只有你明确要开、并且配了云浏览器（自托管 Steel 或托管型 browserbase/stagehand），才会启用。轻度反爬 `browse_headless` 自带反检测就能过，**只有 Cloudflare 级重度反爬才需要走云浏览器**。\n\n- **Steel 自托管（推荐 · 免费）**：本地 Docker 跑一个开源云浏览器，零 per-session 费、cookie 不出本地。一行命令开通，见 [Key 配置指南 · Steel](./doc/usage/01-KEY-GUIDE.md#steel_endpoint--自托管云浏览器v16-新推荐免费)。\n- **browserbase（托管型 · 付费）**：试用后按量付费，不想自己跑 Docker 时的备选。\n- **stagehand（托管型 · 付费）**：⚠️ 程序化实验通道——配 key 只装配内部 channel，**没有 MCP 工具入口**（REST 契约未经验证；`lasso doctor` #39 `stagehand_rest_contract_probe` 专测此项）。\n\n---\n\n## 安装\n\n**当前版本 v1.30.2**（更新日志见本节末尾折叠块）。\n\n前提：Node.js ≥ 20 + Claude Code（或任何支持 MCP 的客户端）。\n\n```bash\nclaude mcp add lasso -- npx -y lasso-mcp\n```\n\n重启 Claude Code → `/mcp` → `lasso ✓ Connected`。**就这一行，不带任何 key**——装完抓页 / 截图 / PDF / 控桌面立即可用，只有搜索可选配 key（见[配置详解](#配置详解)）。\n\n**macOS 想控桌面**：跑一次 `lasso doctor`，按提示给 `lasso-rust-helper` 勾上「辅助功能」和「屏幕录制」权限即可，doctor 会一步步引导。\n\n**给其它 AI 工具当确定性渲染浏览器（渲染档）**：如果你在用 media-gen-mcp 这类要求「同一输入必须产出同一像素」的渲染工具，装好 lasso 后只需一行 `npx -y lasso-mcp render-chrome --ensure`——它会在 9224 端口拉起一个确定性 headless Chrome（冻结旗标快照 + 独立临时 profile），输出消费方直连用的 `wsEndpoint`；**消费方进程被强杀浏览器也照常存活**（生命周期归属 lasso），空闲 10 分钟自动回收并连带清理 profile（`LASSO_RENDER_IDLE_MS` 可调）。配套：`render-chrome --status` 自省 / `--stop` 收尾（认 `LASSO_RENDER_PORT`：显式设 port 只收该 port，未设=全部 render 记录，非法值 exit 1；全局收口仍可用 `chrome-stop --modes render`）/ `render-chrome doctor [--clean]` 孤儿与陈年 profile 清理（默认只报告；认 `LASSO_RENDER_PORT`，同 `--stop`：显式设 port 只判该 port，未设=全扫，非法值 exit 1；touch 心跳 10 分钟内的在用实例豁免不判孤儿）。**同机多 agent 并行验收**（多个 agent 各自清场会互杀对方实例）需配三 env 契命名空间隔离：`LASSO_RENDER_PORT` + `LASSO_LAUNCHED_CHROMES_PATH` + `LASSO_RENDER_GUARDIAN_PID_PATH`，配齐后并行互不可见，配方与清场纪律见 [doc/渲染档-并行验收隔离配方.md](doc/渲染档-并行验收隔离配方.md)。\n\n<details>\n<summary>📋 更新日志（v1.8 → v1.30.2，点开看每版改了什么）</summary>\n\n- **v1.30.2**（bugs/13 §10）：**载旧码一键裁决探针**——新 doctor check `stale_runtime`：本地 dist 开发模式下，运行中的 MCP server 是长命进程，dist 重建后旧进程仍载旧码（新修复不生效且症状可能是新形态错误）。现在调 `doctor` 工具即见：模块 mtime 晚于进程启动（+5s 容忍）→ `warn: carries pre-rebuild code` + 重连提示（CC 侧 `/mcp` reconnect 即恢复；勿 kill server 进程——有工具失联风险；CLI `lasso-mcp doctor` 恒 pass 是正确语义：新进程永载新码）。判据用 mtime 而非版本号——同版本号内多次重建也能判。配套 TROUBLESHOOTING §2.24。\n- **v1.30.1**（bugs/13+14+lovart 阻塞批）：**CDP 端口断层修复**——①🔴 config 模板毒化（init 模板曾预填 `LASSO_CDP_PORT:9222`+键存在性判显式=自动发现被默认值永久禁用；模板留空+判显式收紧双修）；② 连接失败可诊断性（错误附已试端口+发现状态+lasso 版本）；③ **惰性 attach 调用期自救**（lovart 阻塞-1：chrome-devtools-mcp spawn 成功后首次工具调用才连 CDP，该失败形态此前不进自动发现——browse 连接失败签名判定→自救→重试恰一次）；④ **config 热生效**（lovart 阻塞-2：运行中的 server 热读 `~/.lasso/config.json` 的 `LASSO_CDP_PORT`，写入即生效不用重启；优先于台账发现，env 显式仍恒赢）；⑤ doctor 新 check `chrome_ledger_inventory`（台账活实例清单；visible+idle-0 跨会话滞留 → warn+`chrome-hide --port N` 收尾提示——永不自动收，INV-82）；⑥ doctor 失败分支提示+描述文档对齐（README/KEY-GUIDE/TROUBLESHOOTING §10.1 非默认端口三步配方+热生效段）。审查循环 fresh PASS-WITH-CONDITIONS 六条件全清偿（变异实证守卫补钉）。\n- **v1.30.0**（下载器批，doc/bugs/12）：新工具 **`download(action:start|status|wait|cancel)`**——通用下载器四动作（kind=auto 自动路由：直链→aria2c 多线程断点续传 / 流媒体站点→yt-dlp（音频+词级 json3 字幕）/ 磁力与 .torrent→BT 通道）。任务表磁盘持久（`~/.cache/lasso/downloads/`，lasso 重启后 `status` 收养续查）；`status:\"all\"` 返回产物绝对路径清单（跨会话交付物本体）；`wait` ≤120s 帽+轮询教学；cancel 只杀「台账在案+归属验证」的引擎树（kill 红线）。治理三件套：doctor 引擎 check+idle 硬顶 24h+活跃总量帽 16。安全面：http/stream 首跳 SSRF 守门、out_dir 白名单（默认 ~/Downloads）、filename 强制 basename、max_bytes 超帽 watchdog（杀树+oversize 态）。**BT 诚实诊断**：本机网络（广东移动）经真机四重实证为运营商 DPI 定向封锁（非 DNS 污染主因——DoH 同污染，IP 直写才是解）——60s 零 peer 报双因（死种 OR DPI）+三条出路建议；aria2 内置 IP 直写 DHT bootstrap+冻结 tracker 表。引擎引导：yt-dlp 缺失时首个 stream 下载自动拉取（pin 2026.08.19+sha256 校验）；aria2 缺失时 HTTP 走 undici 内建降级。同 source 续传复用（.aria2 控制文件字节级续传）。审查循环三轮闭环（fresh 审查+mutation 红证）。\n- **v1.29.2**：文档批——type/press 输入原语（v1.29.0 引入）的调用示例补进工具描述 EXAMPLES 段与 README 用户向介绍；`input_guard_suspected` 信号的「三条合法出路」说明同步。纯文档/description 增强，无行为变化。\n- **v1.29.1**：发版修正——v1.29.0 的 npm 包携带了旧 dist（版本转正后未重 build 即 publish，`doctor` 自报 1.28.0）；本版重 build 后发布，内容零变化。教训固化：版本三处改后必须 `npm run build` 再 publish。\n- **v1.29.0**（bug11：输入原语补齐 + 诚实信号批——「输入保护层」证伪重析，doc/bugs/11）——下午实机报告判定的 P0「tm.aliyun.com 输入保护层瞬间清除程序化设值」经白盒受控重析**证伪**：真机理是 React 16/17 受控组件的**状态完整性语义**（脚本写入不触发 onChange → blur/commit 时框架把 DOM 回写为已提交状态——值存活到 blur，非「毫秒级消失」；「六路全败」实为观察面错误：submit 走 `window.open` 开新 tab、原页 URL 永不变 → `wait url_contains` 结构性失明，而 uid 路 fill 当天全链路完成真实搜索）。本批交付物：① **`type` / `press` 输入原语补齐**（click/fill/type 三原语的第三缺）：`action:\"type\"` + `selectors:{<uid|ref>:<text>}`——逐字派发走 CDP `Input.dispatchKeyEvent` **可信输入管道**（浏览器标记 `isTrusted:true`，进框架输入管道、React onChange 正常触发、blur 后存活；与 Playwright `page.keyboard.type()` 同级；长文本亦逐字——覆盖 fill uid 路 ≥100 字符翻转进 JS 批量设值不可信管道的断层）；**追加语义**（=Playwright `page.type`，fill 才是替换）；ref 路 focus 回执失败显式报 `type_focus_failed`（didnt 档，不猜）；`action:\"press\"` + `key:\"Enter\"`（修饰键由上游拆解 + 失败释放保证）——实现为对已锁定上游 `type_text`/`press_key` 的映射（禁 CDP 直连）；不暴露 submitKey（提交显式走后续 press/click，两步链更可审计）。② **`input_guard_suspected` 诚实信号**（advisory，驱逐哨兵同范式）：ref 路填充/键入内嵌三探针（value setter 非原生安装态 / ~250ms 页内读回不一致 / React tracker 分叉）——命中即附信号 + hint 三条合法出路（换 type 可信管道 / 重 extract 走快照 uid 路 / 请用户物理输入）；**只供信号绝不自动改道**（不自动换原语/重试/通道），探测纯读零副作用（禁为探测合成 blur）。③ **wait 超时观察面教学**：`wait_timeout` 错误追加 window.open 新 tab 教学句（原选中页 URL 永不变——该形态超时首次自带归因线索）+ TROUBLESHOOTING §2.19 新 tab 观察面（含 `navigate → wait{selector} → fill → press/click` 链配方；fill 时序竞争假说无 reproducer 证伪登记，不写防御代码）。④ **no_reload 语义澄清**：describe 补「不是跳过导航旗标」句（实质不同 URL 恒导航；同 URL 恒零导航是 url 规则 2、与本键无关）+ §2.20 行为矩阵四行 + 语义钉 spec（描述与行为从此被测试钉死为一体）。⑤ **governance/13 合成输入伦理边界声明**：正面面 = 标准原语 + 诚实信号 + 信任阶梯文档；**Rejected-by-design** = 键入节奏随机化/人类拟态延迟、`_valueTracker` 欺骗、accessor 反劫持、isTrusted 伪造、「让 fill 看起来像人输入」的一切包装（欺骗站点侧机制 ≠ 输入能力；仅用户显式逐条裁决可推翻）。立场：**墙在那里我们告诉你**——穿墙只有两种合法形态（换可信原语 / 请用户物理输入），绝不替用户决定攻墙。⑥ **HighRiskGate 补 `type` 分支**：RTE 黑名单元素上 type 与 fill 同拦（封「换 action 名绕过 identity 通道守卫」口径裂缝；press 无 DOM 目标与 evaluate 同档不拦，注释文档化）。⑦ 上游契约死列表补 `type_text`/`press_key`（P10 前置门假红修复）+ 描述预算帽显式提帽（fleet 59,850 / HEADLESS 13,900 / L2 2,300→2,450——§5.1-3 独立单主题提帽纪律）。⑧ 本地保护层 fixture 回归（opt-in `LASSO_TEST_INPUT_GUARD=1`，绑 127.0.0.1）：三型机制（受控回写/accessor 劫持/异步重置）check 型对号 + type/uid 路 blur 后存活全实证。\n- **v1.28.0**（未发布预写 · 上半：bugs/10 rust/desktop 半——桌面投递回执批）：cgEvent 投递「断裂」证伪后的**消灭静默失败**批（商标站滑块实机报告驱动，doc/bugs/10）——白盒定谳：HID 投递链完好（受控计数器页产出完整 `isTrusted:true` 序列），真凶是并发物理输入竞争 + 判定法盲区，故交付物不是「修投递」而是让失败可见：① **坐标鼠标动作落地回执**：`desktop act` 的 click/move/drag（带 x,y 的 scroll 同）每个动作回 `cursor_after{x,y}` + `landed`（最终 post 后读回真实光标，容差 0.5pt）——**未落地 → 该动作 `ok:false` + `cgevent_no_landing`**（此前「API worked 实际零效果」是静默的）；② **物理竞争警示**：dispatch 级 `physical_input.attribution`（idle/synthetic/physical）——`physical` = 检测到晚于本进程合成 post 的鼠标事件（用户在物理操作，重发即可；worked 不因此翻转，信号不策略）；③ **TCC 探测诚实化**：macOS<15 不再假报「无此维度」——IOHID PostEvent 原始探测四态直报（Undefined 是真实第三态且该状态下投递实证可用；per-process 归因如实入档），**门控语义零变化**（<15 永不因 IOHID 拒绝）；④ **doctor #22 投递自检**（opt-in `LASSO_DOCTOR_INPUT_SELFTEST=1`：移动你的光标 7px 后复位——默认关，agent 不可触发；光标读回判读，无歧义）；⑤ **desktop screenshot 默认落盘**（对齐 browse 通道：`/tmp/lasso-screenshot-<uuid>.png` 只回路径——此前全屏 860KB base64 直塞爆 token；`inline_base64:true` 恢复旧行为）。伦理红线：合成输入只做「检测与诚实报告」，不引入任何绕过用户输入监控的能力。Rejected：PostToPid 定向（SOTA 反证 PID 定向鼠标被 AppKit 静默丢弃）/ act 内置像素 diff / act 内自动重试。\n- **v1.28.0**（未发布预写 · 下半：bugs/10 browse/docs 半——evaluate 返回值契约 + 反爬检测面文档批，BUG-10，商标站滑块战役驱动，doc/bugs/10）——① 🔴 **修正型行为变更（静默错值面）**：`evaluate` 的 `options.js` 新增两条表达式路由——此前传**单行裸表达式**（`JSON.stringify({...})`、`document.title`）会被包进语句体，表达式值被语句吞掉 → **恒 undefined**；传**括号表达式**（`({a:1})`）会被当函数表达式透传，上游求值为对象 → **报 `fn is not a function`**（实机报告 P2：两次调用试错才暴露的隐藏契约）。现在这两类入参自动包成表达式体箭头，**值直达**；既有三形态（函数表达式透传 / IIFE 包裹 / 语句体）字节级不变（语句体仍须显式 `return`）；② **错误即教学**：语句体 + 返回 undefined 时响应附 `data.js_form:\"statement_body\"` + `js_form_hint`（一句说清「为什么是 undefined」与怎么改）；上游 `is not a function` 错误文案同款追加；③ 工具描述 evaluate 段补 RETURNS 契约句（「THREE forms … All work」对表达式形态为假——描述缺口即 P2 本体）；④ `browse_headless`/`browse_headed` 描述 NOTE 新增「**click worked ≠ 提交被接受**」标注 + TROUBLESHOOTING 新增 §2.18 tm.aliyun.com 分层拦截面实测（首页层已放行 / 提交层 headless 静默吞、headed 弹滑块——判定提交成败用 `wait url_contains`/`text` 或 `extract`，不能信 act 回执）。本条为下半（browse/docs 半）；同批上半（rust/desktop 半：cgEvent 投递回执 / doctor 自检 / desktop 截图落盘）见上一条 v1.28.0。\n- **v1.27.1**：工具示例体系批（消费方接口自描述完善）——修复「调用者靠试错学用法」：此前 18 个工具只有 1 个含可抄示例，其余全是规则散文（七家消费方报告的试错考古实证）。本批：① **13 个调用示例进工具 description**（agent 经 `tools/list` 端到端可见——内容全部从真实试错事故反推：navigate+screenshot 一步/evaluate current-page/驱逐信号响应/freshProfile/browse_headed consent 等）；② **错误即教学**：`unknown_action` / 无会话等高频错误内嵌正确调用形态（学 Rust \"did you mean\"）；③ schema 全量 `.describe()` 补齐（action enum 值说明——此前全仓零 field 描述）；④ **防漂移四道闸**：示例逐字锚 / consent 前缀锚 / call-shape⊆schema / 预算帽。纯接口自描述增强零行为变更；盲测 8/8 + 9/9 变异全杀。体系文档见 doc/usage/04。\n- **v1.27.0**：反爬根治通道 + url 语义统一批（BUG-09，喵虎核验报告驱动，doc/bugs/09）——① **新工具 `browse_headed`（有头强力档——反爬根治通道）**：针对「无头被站点 JS 层驱逐」类反爬（页面加载 2-3 秒后自己跳走，商标库/查询库形态）的根治层：真实有头 Chrome 窗口（同一上游 chrome-devtools-mcp、只是不带 `--headless`，零新依赖），真机商标站四轮驻留 6/6 存活；stealth 取舍与无头档相反（真实环境即真实指纹，不做注入）。**调用即在你屏幕弹真实窗口**——description 与 hint 都钉死「先获用户明确同意再调」；两态生命周期：未接管 30 分钟 idle 回收（`LASSO_HEADED_IDLE_MS`），你一旦点击聚焦该窗口即标记「已接管」、**永不自动回收**（自己关窗即回收；24h 硬顶 `LASSO_HEADED_HARD_CAP_MS` 是防孤儿舰队的唯一兜底）。② 🔴 **url 语义统一（修正型行为变更——假数据面）**：全部 url 感知 action 收敛为单一规则——**省略 url = 当前页**（无活动会话显式报错，不静默开空白页）/ **url = 当前页 = 零导航直执行**（不再 reload 洗掉 SPA 状态）/ **url ≠ 当前页 = 先导航再执行**；返回体统一新增 `did_navigate:true/false` 如实回显。修复面：`extract`+url 此前会**读会话残留页并伪装成功**（假数据）→ 现在导航后读；`evaluate` 省略 url 此前被拒 → 现在合法（描述承诺兑现）；`screenshot`/`pdf`/`network` 传与当前页相同的 url 从 reload 改为跳过（SPA 状态保留）。③ steps 链内 `wait` 条件校验与顶层统一（text/selector/url_contains 三键——此前链内只认 text）。④ steps 链 `outcome:worked` 时瞬态错误不再留在 `error` 字段（迁入新 `warnings[]`；契约固化：worked ⇒ error 必空）。⑤ **breaking（一键可恢复）**：`browse_headless` 失败不再自动回退 `browse_logged_in`（登录态通道必须显式选择；跨通道错误串染曾是马拉松误判根）——配 `LASSO_FALLBACK_CROSS_CHANNEL=1` 恢复旧行为。⑥ `final_url` 剥尾部句读（`.,;:!?`——上游散文句末被吞入的取证定案，括号引号不剥）；`lasso doctor` CDP 检查失败明细带当前生效端口。⑦ **WT4 驱逐哨兵（尾款轮，doc/bugs/09 §8.A）**：`browse_headless`/`browse_headed` 的返回体现在可携带 `eviction_suspected:{from,to,at_ms}` + hint——通道层观测到「本 lasso 导航 settle 后页面漂移到异 host」（三信号漏斗：5s 静默窗采样 / 闸门漂移复核 / evaluate 死于 `Execution context was destroyed` ∧ host 偏离的合取 typed error `page_redirect_eviction_suspected:`）即附一次性 advisory 信号（消费方首次能机械区分「我的调用错了」vs「站点杀了无头」）；**只供信号绝不自动升级通道**——hint 内钉死「先问用户再转 browse_headed」（弹真实窗口的惊讶面必须经同意）；`browse_logged_in` 显式 opt-out（SSO 跨域流转是合法常态，信号在那边纯噪音）；⑧ **steps 链回显真值化（修正型消谎）**：链级 `final_url` 此前恒回显请求串（残留页上跑链会谎称目标页）→ 改为链尾真值读（页面真实 href；读不到且无真值种子时省略，**永不回显请求串**）+ 链级 `did_navigate` 如实回显 + 先导导航 same-document 双标注透传——链执行语义零变化（消费方工作流零破坏）；⑨ macOS occlusion 真机实验定案（§8）：「屏幕外全藏窗口会被系统判 occluded」假设**证伪**（实测恒 visible + rAF 满速），`browse_headed` 窗口默认维持边缘可见 `8,40`（consent 契约与窗口归属锚裁定，零参数变更）；测试 2997→3120（192 文件）/ 不变量 96→100 实装（编号至 100——INV-98 驱逐哨兵真锚 + INV-100 steps 链 URL 真值契约，保留位清零）。\n- **v1.26.0**：反爬马拉松稳定性批（BUG-08，3 小时商标库查询实战驱动，doc/bugs/08）——① 🔴 **修正型行为变更（假数据面，比崩溃危险一个数量级）**：`navigate` 到**仅 hash 不同**的 URL（SPA `#/search?q=` 换词）此前按 same-document 处理不重载——页面留旧查询结果、URL 已新词（实战差点把真值 3718 写成 0 条干净）；现在默认检测命中即补 reload，回显 `same_document_navigated/same_document_reloaded` 双标注（`options.no_reload:true` opt-out 只标注；判定基为 URL 规范化比较 `new URL()` origin+pathname+search——空路径省略斜杠形态 `http://x#/q=b` 是 `http://x/#/q=a` 的 same-document，raw 串比较会漏检致假数据复活，审查轮已封口）。`evaluate` 传 `url` 此前**静默跑在当前页 + final_url 伪造目标 URL**；现在 url ≠ 当前页先导航再执行（=ensure-navigation），final_url 永远真实。② **长 evaluate 稳定性**：单调用预算 `options.budget_ms`（默认 120s / `LASSO_EVAL_TIMEOUT_MS` 可调 / 上限 600s）传导 MCP 调用层——此前恒落 SDK 60s 缺省事故，>60s 批量 JS 必超时；超时错误类型化 `mcp_request_timeout:` + 教学 hint（**Chrome 没死**，上游互斥锁楔死 ~3min 自愈）；全链 fallback 耗尽的错误改为 primary-first 复合串（主通道错误打头，fallback 尾跳摘录在尾——归因污染消灭）。③ **freshProfile 换脸逃生门**：headless 被服务端指纹拉黑（静默假 0）后的唯一解——`options.freshProfile:true` 换完整新一致身份（临时 profile【归属锚目录名+四路清理防 BUG-03 垃圾重演】+ stealth 宿主适用集确定性轮换 + 完整栈 respawn；logged_in 永不支持）。④ **内部栈治理**：chrome-devtools-mcp 栈 spawn 即登记 sidecar、任意 spawn 前孤儿扫除（pid 归并 + 三重守卫 + lstart 交叉核对，绝不触碰非 lasso 进程）——marathon「两代栈并存 + 谁也动不了」死锁根治；admin 新 action `browser_recycle`（内部栈受控重启正门，永不动 detached Chrome）。⑤ `wait` 支持当前页（省 url，与截图同会话契约）；`browse_logged_in` 默认 9222 失败时自动发现台账最新非 render 口（三层解析，结果带 `+auto_discovered_port:<port>` 标注；显式 `LASSO_CDP_PORT` 恒赢）；`fetch_url` 失败细分（`fetch_failed:dns_failed/connect_refused/connect_timeout/tls_failed/aborted_timeout`——本机环境 vs 目标站拒绝可分辨）。⑥ 测试基建自愈（BUG-08 F，用户实锤负载 188 事故）：vitest 池显式钉死 threads（主进程死 = worker 线程随之死，forks 孤儿类结构性消灭）+ `npm run gate` 对 vitest 树的超时追杀带（belt 到点在树根存活时整树 SIGKILL，`LASSO_GATE_VITEST_TIMEOUT_MS` 可调；E1 白盒实锤：spawnSync timeout 形态必漏杀忙 worker，已否决——doc/bugs/08 §12）。测试 2895→2997 / 不变量 95→96（INV-96 五组防线）；既有消费方（cc-control / media-gen-mcp）零 breaking。\n- **v1.25.0**：当前页截图批（BUG-07，novel-engine 动画取证驱动）——`action=screenshot` **省略 url 即对当前受管页面直接截屏**（独立 `screenshot` 工具同义）：此前两条截图路径都必经重导航，把 evaluate 建立的页面现场（冻结的 CSS 动画中间帧、注入的临时 DOM）全部洗掉——状态敏感截图不可达，消费方被迫借道第二套浏览器栈。现在同会话四通道闭环：带 url 建会话 → `evaluate` 冻结/注入 → 无 url 截当前帧 → `console` 取证。无活动会话（冷通道/页面已关/被自愈换页）显式报错带指引，**绝不静默新开、绝不截空白页伪造状态**；带 url 的旧行为零变化（回归锚钉死）；对抗三轮 clean——6 变异全红 + 会话漂移攻击真机双通道零穿透（并发竞态拒/弹窗钉受管页/静默换页 invalidate 封口）。上游调研定谳：截图的业界普适语义就是「截当前状态」——本版把 lasso 对齐回行业标准。\n- **v1.24.0**：幽灵常驻根治批（BUG-06，用户 12 小时实例实锤驱动）——① 🔴 **行为变更**：`launch-chrome --idle-ms 0` 的语义从「永不回收」改为「**不自收，但 24 小时硬顶保命**」——无窗口的隐藏实例从此不可能无限常驻成「看不见也关不掉的幽灵」（本轮用户实锤：一个 12 小时实例，Dock/菜单栏不可见无从关闭）。要真正无限需再显式 `--no-hard-cap`（**双重意图**，防脚本顺手传 0）；部署级可用 `LASSO_LAUNCH_HARD_CAP_MS` 调整或 `=0` 全禁；失效方向恒安全（非法值回退有顶）。旧脚本若依赖「0=无限」请加 `--no-hard-cap`。② **跨进程活动真源**：硬顶收割前看 touch 文件心跳（任何会话/任何消费方还在用 → 不误杀）；userTakenAt / visible 豁免天然继承（kill 时刻二次重估，竞态窗口封口）。③ **超龄可观测**：`doctor` / `chrome-status` 对过半硬顶的实例提前 warn（不新增任何 kill 面）。真机验收六项全 PASS + 对抗两轮 clean（三变异全红 / 误杀全景真活替身重放零误伤 / 渲染档零交叉）。\n- **v1.23.0**：本地文件与排障能力批（BUG-05，novel-engine 实测驱动）——① **`LASSO_ALLOW_FILE_FROM` file:// 目录白名单**：测本地单文件 HTML（离线产物验收的标配场景）此前被 SSRF 守卫一刀切拦——现在设 `LASSO_ALLOW_FILE_FROM=/你的项目目录` 后 `browse_*` 可导航/快照/抽取/截图**指定目录子树内**的本地文件（默认仍拒、零配置零行为变化；`../` 穿越、symlink 逃逸、目录前缀伪造、末段 symlink 写逃逸全封口——读面 18+写面 10 攻击变体零逃逸）；② 新 **`console` action**：直接读当前页自上次导航以来的 console 消息（按严重度过滤 + 最近 N 条）——渲染类缺陷排查不再需要注入 window.onerror 绕路；③ **`ignored_options` 诚实契约**：你传了但当前 action 用不上的 options 键会在响应里如实列出（不再静默丢弃——novel-engine 实测踩到的「worked 但截图没生成」根因之一）；顺带明确：navigate+截图一步走**本就是 `action=screenshot` 的行为**（先导航再截图）；④ **`LASSO_SCREENSHOT_DIR` 截图写根约束**：自定义截图落盘路径默认拒（防任意写盘），opt-in 且限指定目录子树内。对抗两轮 clean：6 变异全红+SSRF 守卫本体零削弱证明+消费方场景（真实单文件 HTML http/file:// 双路径）真机全通。\n- **v1.22.1**：审查与稳定性批——① 消费方深检回告六项收口：给 cc-control 的 hook 硬拦样例**回修三处缺陷并落仓自带 17 向量测试**（样例必落仓、文档只指路——交付物质量制度成型）、doctor 端口探测 detail 文案四形态如实化、版本对齐测试泛化（断言读 package.json 单一真源，不再逐版手改）、`npm run gate` 门禁固化（显式计数断言防管道吞退出码）；② 03 审查测试清单全面审查（四轨六维+Gauntlet 验证+双盲对抗 clean）；③ 三个时序 flake 收口（墙钟边界改固定时钟注入/sleep 赌落盘改轮询/阈值贴判别面）——全量连跑 5 轮 + gate 全绿实证。\n- **v1.22.0**：归属鉴定与通道自愈批（BUG-04，消费方实战驱动）——① 新子命令 **`chrome-status [--port N]`**：把「这个端口被谁占着、我能不能动它」的鉴定权从 AI 手里收走——lasso 直接十分类（账本僵尸/陈留/疑似用户资产…），输出人类决策文案 + 机器可读指令（`allowed_commands` / `must_report`——AI 拿到「疑似用户资产」分类时被明确告知**零允许操作、必须上报你**）+ 可直接粘贴的上报包；配套 `chrome-stop --zombie-gate` 唯一机器代杀出口（台账在案+指纹对+kill 时刻重读台账三重门）。旧命令行为零变化。② 修复 `browse_logged_in` **选中页死锁**（P1 通道级）：根因是上游引擎的结构性缺陷——选中页一旦被关闭，后续 navigate/evaluate/snapshot 永久报错只能重启；现在自动检测楔死签名并后台自建页接管自愈，修不掉时如实前缀上报。③ `evaluate` 兼容 `(async () => {...})()` 形态（此前报 fn is not a function）；④ 调用方自己写错 JS 不再拉响备用通道（脚本错误与通道错误分类）；⑤ doctor 端口探测措辞如实化（「HTTP 404」→ 四形态真实归因）。对抗两轮 clean：5 变异全杀 + 真实用户 Chrome 主权实机验证 + 上报包武器化测试不破防。给重度自动化用户的配套：PreToolUse hook 硬拦样例（拦 AI 经 Bash kill 浏览器）见 doc/bugs/04-附录E。\n- **v1.21.0**：浏览器主权与生命周期根治批（BUG-03，真机事故驱动）——① 🔴 **行为变更**：`launch-chrome` CLI 默认空闲回收从「永不回收」改为 **30 分钟自动回收**（旧永不回收行为用 `--idle-ms 0` 显式恢复）；② **用户激活让位门**：你点 Dock/Spotlight 掀出 lasso 隐藏的 Chrome 时，lasso 以「HID 空闲 + 前置窗口」双判据识别这是**人在操作**——放行、30 秒确认窗后退位（页面自弹的窗口照常压回，v1.18.3 静默契约零回归）；③ **停机不连坐**：修复一个 P0——此前任意 lasso server 进程退出会按全局台账**扫杀全部隐藏 Chrome**（违背 `--idle-ms 0` 保活承诺）；现在按归属三维过滤，CLI 拉起的实例在 server 退出后照常存活、照常被回收；④ **僵尸占位自愈**：9222 被自家挂死实例占用时不再误报「非 CDP 进程」，自动按台账归因收尸重拉；doctor 端口占用三分类（自家僵尸/陈留/用户资产），**永不建议代杀用户资产**（台账伪造 + pid 冒名也拒杀，新不变量 INV-85/86/87）；⑤ 消费方实战修复（cc-control 反馈）：`browse` 截图上游契约适配（大图 filePath 直写 + Access-denied 降级重试，会话内截图通路补齐）、`evaluate` 恒返 undefined 根治（函数表达式双形态透传）、会话轮换归类为可重试的 `session_rotated`；⑥ `launch-chrome --mode headless` 可选档（无人值守专用——诚实声明：headless 也共享 Chrome bundle 槽位）。对抗三轮闭环：28 变异全杀 + 3 个 CRITICAL 当场修复复核 PASS；测试 2595→2676 / 不变量 84→87。\n- **v1.20.0**：渲染档并行安全批（stop/doctor 端口作用域化）——① 🔴 **行为变更**：`render-chrome --stop` 此前无视 `LASSO_RENDER_PORT`、会收掉**全机**渲染档（同机多 agent 并行验收时互杀对方实例的第一入口）；现在**显式设了 `LASSO_RENDER_PORT` 只收该 port**（与 `--ensure`/`--status` 对称），未设=维持全收不变，非法值 exit 1 报用法错。设了 port 却想全收的旧脚本请改用 `chrome-stop --modes render`；`--stop` 输出形状不变（幂等 `{\"stopped\":[...]}`）。② `render-chrome doctor` 孤儿判定同样作用域化 + 双豁免：显式 port 只判该 port，他人命名空间实例不再被误判孤儿（范围外 port + touch 心跳 10 分钟内新鲜双重豁免，`--clean` 不再误杀在用实例）。③ 配套**同机多 agent 并行验收**三 env 隔离配方（`LASSO_RENDER_PORT` + `LASSO_LAUNCHED_CHROMES_PATH` + `LASSO_RENDER_GUARDIAN_PID_PATH`）真机验证：双终端并发各自清场，并行互不可见零互杀。media-gen-mcp 等消费方只调 `--ensure` 不受影响（已源码级实证）。\n- **v1.19.0**：确定性渲染档 + 性能/准确率批——① 新增 `lasso-mcp render-chrome`：给其它 AI 工具（如 media-gen-mcp）当**确定性渲染浏览器**——`--ensure` 一行拉起带冻结旗标快照的 headless Chrome（消费方进程被强杀浏览器照常存活，空闲 10 分钟自动回收并清理 profile），详见 README 渲染档节；② 性能：浏览器引擎冷启动握手加预算（卡死快速失败不再挂 60 秒，`LASSO_MCP_HANDSHAKE_TIMEOUT_MS` 可调）、首装 npx 下载税消除、2FA 探测幂等化、大求值截断快路；③ 准确率：搜索页改版检测链上线（选择器失效自动发现并记录基线）。工具接口零变化（纯新增子命令与旗标）。\n- **v1.18.8**：doctor 与 CLI 打磨——① `doctor` 不再因 **ad-hoc 签名**报「不健康」（此前 `ready:false` 误报：ad-hoc 是官方免费合法方案，功能正常，唯一代价是重编译后需重新系统授权；Developer ID 正签仍 pass）② `lasso launch-chrome --help` 修复（此前会误启动一个 Chrome，现在正确打印用法说明）③ 架构文档全量对齐 + 20 项历史遗留清理（测试增至 2471 / 不变量 84）。\n- **v1.18.7**：架构重审落地（03 清单五维+循环修复）——① browse 族接口面诚实化：`wait_until` / `timeout_ms` / `screenshot.element` / `stealth_profile` 四个**从未生效的死参数**从工具描述与 schema 移除（此前传入会被静默忽略，现在文档不再承诺不存在的行为；非破坏——传了也会被静默剥离）；② 「隐藏的 Chrome」文档中关于 CI 的四处失实描述改真；③ 内部：doctor 与 channels 解耦、firstText 单一定义、测试穿堂方法收敛（新增 2 条架构不变量，INV 总数 82→84；测试 2446→2455）。\n- **v1.18.6**：外部消费与隐藏执守闭环——① 命令行拉起的 Chrome 默认**不再 60s 被后台静默回收**（外部 CDP 直连工具之前稳定 60-75s 被误杀，如自动化工作流）；外部消费者还可用 `touch ~/.cache/lasso/chrome-touch-<端口>` 一行续命；② 「隐藏的 Chrome 有时藏不住」根治——hidden 档出生即写粘滞账 + 独立执守进程兜底（server 不在也 ≤2s 压回，账空自退不留常驻进程）。\n- **v1.18.5**：发布包清理——**v1.18.1 ~ v1.18.4 的 npm 包误含应用域文件**（某课程抓取工程的中间产物，与 lasso 本体功能无关，已弃用），这些版本请勿安装；本版起发布面收敛为 lasso 本体，体积从 ~28MB 降回正常。\n- **v1.18.4**：desktop 通道修复——① 此前 server 不是从仓库根目录启动时（比如由 Claude Code 等宿主在任意目录拉起），desktop 工具会全部报错 `rust_helper_crashed`：现在 helper 路径按安装位置自动解析，**任意目录启动都可用**；② desktop 起不来时的报错从「裸错误码」变成一眼自诊断（附实际路径、当前目录、修复办法；缺文件/指到目录/缺执行权限/文件损坏各说各话，秒级失败不空等）；③ 二进制构建时自动 ad-hoc 签名（无签名环境的机器跳过不报错）；④ 新增 GitHub CI（每次推送自动跑全量测试）。\n- **v1.18.3**：Chrome 后台静默三连——① **`chrome-hide` 转后台的窗口被任何来源掀出（含上游页面自己弹的），约 1.5 秒内自动压回后台**（server 运行期间一直守着，粘滞状态跨重启保留）；想看窗口用 `chrome-show`（明示解除，不再压回）；② `chrome-hide` / `chrome-show` 新增 `--pid N`：台账缺条目时（Chrome 由旧版启动、台账被清）按进程号直达——只认 lasso 自己的 profile，你手动开的日常 Chrome 一律拒绝；③ Chrome 正忙时不再拖慢并行的其它操作。\n- **v1.18.2**：长任务被自己限流的错配修复——批量任务默认直接放行（单用户本地场景没有「滥用者」，配额自控改为可选配置）；瞬态 DNS 故障不再被误判成策略拦截、不再误开长熔断；链预算超限如实报可重试；大任务溢写落盘不再挤掉近期页面。\n- **v1.18.1**：批量实战五修——页面内求值失败不再被静默吞掉（如实报错）；「没有选中的 tab」状态自动自愈不再卡死；可见档冷启动探活最长等 12 秒（启动慢的机器不再误报失败）；机器缺 PDF 上游工具时前置如实报「没做」，不再白跑一遍导航。\n- **v1.18.0**：静默守则落地（把「能静默就静默；需要你时才弹、用完自动收回后台」明文为运行守则，见「隐私与安全」）——① 🔴 修复 **server 退出会杀掉你的登录窗口**：Claude 会话结束 / CC 重启时，visible 登录 Chrome 此前被无差别强杀（真机三次复现实锤），现在与「用户拥有的窗口永不自动关」同款豁免；② 新增可选的**登录完成自动收窗**：`\"LASSO_AUTO_HIDE_AFTER_LOGIN\": true`（默认关）后不用记 `chrome-hide`——观察到登录页消失 + 等 10 秒 + 确认没人正在用，自动把窗口收进后台（拿不准就不收，`chrome-show` 随时可逆）；③ 守则句写入文档（README / KEY-GUIDE / ARCHITECTURE），新增架构不变量 INV-82 守住以上红线。\n- **v1.17.2**：静默性全面审计落地（真机六维实测：焦点/窗口/Dock/音频/通知/资源）——① 修复「连你自己开的可见 Chrome」时 lasso 会**改写你第一个 tab 内容**的缺陷：现在 lasso 在你的 Chrome 里自建一个后台 tab 干活（不抢焦点、不激活），会话结束自动关掉，你的 tab 一律不动；② 修复 tab 管理的契约错配（`close_page` 参数形态），且关 tab 现在只可能落在 lasso 自己开的 tab 上（登记制，类型层面保证）；③ 隐私文档新增**静默性矩阵**（每条通道×每维打扰的实测结论，见「隐私与安全」）。\n- **v1.17**：五项升级——① 智谱直连 key 退役（`ZHIPU_API_KEY` 不再消费；智谱能力由机器 web-search-prime MCP 复用唯一承载，搜索默认零配置）② `search` 新增 `content_blocks` 第二跳（搜完并发抓 top N 正文、查询相关裁剪 ~6k 字符，失败条目如实标注，零付费依赖）③ 新工具 `search_local`（Chrome 浏览历史 + Spotlight 本地私有搜索，隐私红线：只返标题/链接/时间，禁全文导出）④ 高风险操作支持回合内 elicitation 确认（老客户端零影响）⑤ `browse extract` 新增 `include_refs` 交互句柄（`[r1]` 式附录 + 按句柄点击/填写，页面变了诚实失效）。搜索结果统一带 `quality` 质量轴标注（api / scrape / stale）。\n\n- **v1.16**：新增 `fetch_feed` 工具（RSS / Atom / JSON Feed → 结构化条目；追版本号、退役时间线、官方公告这类「要新」的问题直接问源，不再等搜索索引）+ 修复搜索缓存新鲜度缺陷（`freshness=day` 的结果此前可能被缓存成最多 7 天的陈货，现在 day 档 24 小时即过期；全源熔断时的录制回放也会按 freshness 窗口拒掉过期 fixture，不再拿陈年录像充数）。\n- **v1.15**：Bing 死层彻底清除（Bing Search APIs 2025-08-11 全量退役——删代码非标注；历史 `BING_API_KEYS` 静默忽略、`lasso doctor` 提示删除）+ 无头浏览器之前新增**裸 HTTP 快探层**（API 层全挂时先用无浏览器直连抓一次搜索结果页，约 1 秒，探不到再启动无头浏览器慢路径；真机实测英文命中 20 条结果仅 1.9 秒，而无头浏览器路径 5.3 秒且被验证码挡成 0 条；百度验证码/首页壳等软挡页不伪造成功，自动升级浏览器复核）。\n- **v1.14**：搜索运营事实清偿（Brave 配额账本对齐 $5 赠送额度 ≈1000 次/月、`free_only=L2` 不再把计量计费的 Brave 当免费层；Bing 配额归零）+ 英文零 Key 兜底双引擎（DDG 失败/空结果自动级联 Brave 实搜）；`lasso doctor --deep`（Brave 计划级探测，消耗 1 次额度）+ Bing 退役静态提示；KEY-GUIDE 时效标注制度（每条 key 声明自带「最后核实」日期与 90 天重核触发）。\n- **v1.13**：无头浏览器语言指纹一致（HTTP `Accept-Language` 随档案下发，消除「头 zh-CN ↔ 页面 en-US」矛盾）；VLM 截图区域坐标落点修复；`desktop find` 拒绝纯 ref 查询；Steel 会话释放加 3 秒上界（Steel 停摆不再卡退出 5 分钟）。\n- **v1.12**：markdown 抽取双激活（defuddle 20 余站专用抽取器 + 表格/数学保真）；macOS 默认指纹与宿主系统对齐；桌面链尾诚实化（VLM 不谎报成功 / expect 需连续两次命中 / `truncated:true` 信号）；Electron 输入框 type 自动降级；拖拽插值变可用；CC 异常退出即时收尾。\n- **v1.11**：桌面从「能看」变「能点」（click/type/scroll 真实现 + 坐标鼠标 + `skeleton` 剪枝）；驱动层升 chrome-devtools-mcp 1.7.0（反检测启动级生效、默认关遥测）；搜索新增 `freshness` 时效过滤；英文查询零 Key 兜底换 DuckDuckGo；新增 `LASSO_PROXY` 出口代理。\n- **v1.10**：浏览器默认静默 + 用完即关（`launch-chrome` 零窗口启动、~60 秒自动关，`--mode visible` 可回退）。\n- **v1.9**：浏览器生命周期收尾（无头空闲 5 分钟自动回收、`lasso chrome-stop`、`tab_restore` 恢复原 tab 列表）。\n- **v1.8**：修复全量实测暴露的 24 条缺陷（上游契约适配、截图真实落盘、`read_text` 续页等）——完整清单见 [doc/testing/01-功能测试清单.md](doc/testing/01-功能测试清单.md) 的「v1.8 修复记录」。\n\n</details>\n\n---\n\n## 配置详解\n\n**只有搜索需要 key，其余全部装完即用。** 按需查表：\n\n| 你想干什么 | 要配什么 |\n|---|---|\n| 抓公开页 / 截图 / PDF / 看第三方资源 / 抓原始字节 / 控桌面 | **什么都不用配** |\n| 搜东西 | 通常零配置（机器智谱 MCP 复用）；可选 Brave key（付费计划） |\n| 搜索几乎不挂 | 再加 Brave key（付费计划含每月 $5 额度；不配也有免费兜底实搜） |\n| 抓登录态页面 | 跑一次 `lasso launch-chrome` |\n| 控 macOS 桌面 | 跑一次 `lasso doctor` 授权 |\n| 抓有 Cloudflare 的站 | 总开关 + Steel（免费自托管）/ browserbase（付费） |\n\n下面四个模块各给「最短能跑通」的配法，细节折叠可展开。\n\n### 一、搜索（✅ 免费 · 唯一要 key 的模块）\n\n**先看要不要配**：如果你机器已经配过智谱 `web-search-prime` MCP，Lasso 会**自动检测复用它的 key**，什么都不用填。跑 `lasso doctor` 看 `#36 machine_search_mcp` 是 `pass` 就是这种情况。\n\n**要配就两步**（可选——机器 MCP 已覆盖时完全不用配）：\n\n```bash\nlasso config init        # 创建 ~/.lasso/config.json\n```\n\n想**更稳 / 要多源扇出**再加 Brave（付费计划含 $5/月额度 ≈1000 次，需信用卡——2026-02 起免费档取消；配了挂了自动切，多个 key 逗号隔开各带额度）：\n\n```json\n{ \"BRAVE_API_KEYS\": \"bravekey1,bravekey2\" }\n```\n\n> ⚠️ **`ZHIPU_API_KEY` 已于 v1.17 退役**：智谱直连 API channel 整层删除，历史配置里的该键**会被静默忽略**（`lasso doctor` 的 `zhipu_keys_retired` 项会提示你删掉它）。智谱搜索能力现在**只**通过机器 web-search-prime MCP 复用承载（上面第一段，零配置）。\n\n> 降级顺序：机器 MCP 复用 → Brave（配了 key 时）→ 无头浏览器实搜兜底（v1.14 起英文兜底双引擎：DuckDuckGo 失败/空结果自动再试一次 Brave 实搜；v1.15 起无头浏览器之前先加一层**裸 HTTP 快探**（约 1 秒，无浏览器直接抓搜索结果页——实测部分搜索引擎对「无浏览器」反而更不设防），探不到再启动无头浏览器慢路径）。前一个挂了自动切下一个。（Bing 源已随上游 2025-08-11 退役整层移除、智谱直连档已于 v1.17 删除；历史配置里的 `BING_API_KEYS` / `ZHIPU_API_KEY` 会被静默忽略，`lasso doctor` 会提示删除。）\n\nkey 怎么申请、免费额度多少 → [Key 配置指南 · 搜索](./doc/usage/01-KEY-GUIDE.md#a-搜索)。常用命令：`lasso --version` / `lasso --help`（v1.8 起未知命令打印用法非零退出，不再静默挂起）。\n\n### 二、抓登录态页面（✅ 免费 · 一行命令，不用 key）\n\n**首次使用（要登录一次，三步）**：\n\n```bash\nlasso launch-chrome --mode visible   # 1. 弹出窗口（默认 hidden 是零窗口，没法登录）\n#    2. 在这个窗口里登录你的账号（2FA 自己解）\nlasso chrome-hide                    # 3. 登录完转回后台静默（登录态留在 profile）\n```\n\n嫌第 3 步也要记？在 `~/.lasso/config.json` 配 `\"LASSO_AUTO_HIDE_AFTER_LOGIN\": true`（v1.18，默认关）：Claude 会话在跑的时候，它会自己观察到登录页消失、再等 10 秒确认你登录完，**自动把窗口收进后台**（拿不准就不收，只会漏收不会误收；想再看随时 `chrome-show`）。这个登录窗口现在也不会被 Claude 会话重启杀掉（v1.18 修复——之前 server 一退出窗口就没了）。\n\n第 3 步报「找不到台账目标」时（Chrome 由旧版 lasso 启动、台账被清）：`lasso chrome-hide --pid <进程号>` 按进程号直达（`lasso chrome-show --pid <进程号>` 同）——只认 lasso 自己 profile 的 Chrome，你手动开的日常 Chrome 一律拒绝。\n\n**要第二个/非默认端口的 Chrome 实例**（比如一个日常 9222、一个专门登录某站 9225）：`lasso launch-chrome --port 9225 --mode visible` 起实例（profile 登录态独立保存）→ 用 `browse_logged_in` 交互时两种方式指向它：①什么都不配——默认 9222 连不上时 lasso 自动发现台账里最新活着的实例（v1.26+）；②钉死更稳：`~/.lasso/config.json` 配 `\"LASSO_CDP_PORT\": 9225`（或 env）后重启 Claude 会话。**visible 调试用完记得收尾**：`lasso chrome-hide --port 9225` 把窗口收回后台（实例和登录态都保留，永不自动收——`doctor` 的 `chrome_ledger_inventory` 检查会提醒你）。\n\n之后**一行命令**就行——默认零窗口静默档直接继承上次的登录态：\n\n```bash\nlasso launch-chrome\n```\n\n以后对 Claude 说「打开我已登录的 Jira」就行。想再看窗口随时 `lasso chrome-show`（可逆，登录态不动）。\n\n- 默认**零窗口静默**干活、不抢焦点、永远静音；想看着它干加 `--mode visible`\n- 命令行拉起的 Chrome **默认 30 分钟无活动自动收**（BUG-03 A1——「有活动就活，无消费者到期自动收」；外部工具 `touch ~/.cache/lasso/chrome-touch-<端口>` 一行续命；长会话显式 `--idle-ms 0` 不做 idle 回收、但**无活动 24 小时硬顶回收**（BUG-06），真·无限须 `--idle-ms 0 --no-hard-cap` 双旗），手动关随时 `lasso chrome-stop`\n- 它在你 Chrome 里开的 tab，任务后说 `admin {action:\"tab_restore\", reason:\"完成\"}` 恢复原列表（server 退出也会自动做）\n\n> 🔴 **红线**：2FA / 验证码 / CAPTCHA——Lasso 不替你解，你在窗口里手动过一次。\n\n<details>\n<summary>细节：profile 复用 / 端口被占 / 调参 / 静默边界</summary>\n\n- v1.8 起默认用 Lasso 独立 profile（Chrome 136+ 禁止对默认 profile 开调试端口，老办法会秒退）；复用已有 profile 用 `lasso launch-chrome --profile <目录>`。\n- 启动后自动探活调试端口，Chrome 没起来 / 端口被占会明确报错，不假报成功。\n- 自动关阈值：`LASSO_LAUNCH_IDLE_MS`（默认 60000；`300000` 回退 5 分钟；`0` 禁用）。单次长任务放行：`--idle-ms 3600000`。BUG-03 轮起**命令行显式拉起默认 `--idle-ms 1800000`（30 分钟）**——server 退出不再连坐任何 CLI 拉起的 Chrome（归属过滤），执守进程（server 不在也活着）负责到期收割；显式配置 env / config.json 仍最高优先。\n- **外部 CDP 消费者续命**（v1.18.5，BUG-03 口径修订；BUG-06 起 lasso browse 自动落盘同一 touch 文件——续命信号跨收割宿主可见）：其他工具（chrome-devtools-mcp、自动化脚本等）直连这条 Chrome 的调试端口时，一行 `touch ~/.cache/lasso/chrome-touch-<端口>` 即视为「刚用过」（承诺口径 = **在用就一直活**，无信号才到期收）；不需要常驻（hidden 档冷启动实测 1.5s 内 CDP 可用），一整段会话要用就拉起时配 `--idle-ms 3600000`（到点自动收）或定期 touch——`--idle-ms 0` 现带 24h 硬顶（BUG-06），不再是无上界常驻。\n- 登录后自动收窗：`LASSO_AUTO_HIDE_AFTER_LOGIN`（默认 false；开启后只在「见过登录页 → 登录页消失 → 等 10 秒 → Claude 没在用」四关全过时才收，收错方向保守——拿不准就不收）。等待时长 `LASSO_AUTO_HIDE_AFTER_LOGIN_DELAY_MS`（默认 10000）。只在 server 会话运行期间生效（CLI 单独 `launch-chrome` 没有调度器，仍走手动 `chrome-hide`）。\n- 无头浏览器空闲 5 分钟自动回收（`LASSO_HEADLESS_IDLE_MS` 可调/禁用）。\n- 诚实边界：单独跑 `lasso launch-chrome`（不经 server）没有 idle 自动关，出口是 `chrome-stop`；它起的 Chrome 在 Dock / 任务栏会多一个图标（浏览器有头进程的注册行为，lasso 控制不了），要零图标用 `browse_headless`；`browse_logged_in` 连**你自己开的可见 Chrome** 时会在你的 Chrome 里临时开一个后台 tab 干活（不抢焦点不发声，结束自动关，v1.17.2 起你的 tab 一律不被改写）——但你的 Chrome 本身不静音（lasso 不改写你的浏览器参数），浏览到自动播放页面会真出声；`desktop` 模拟真人键鼠，设计上就占用物理键鼠，没有静默形态。\n- chrome-stop 只关 Lasso 自己起的、验证过归属的 Chrome，不会误伤你手动开的浏览器。\n- `chrome-hide` / `chrome-show` 同样只动台账在案的 Chrome（按 pid 定向，永不碰你手动开的浏览器）；hide 只隐藏窗口，进程/登录态/CDP 全保留。台账缺条目时按 `--pid N` 直达（见上文；归属不满足会明确拒绝）。\n- hide 是**粘滞**的（v1.18.3，v1.18.5 补全生命周期）：已 hide 的窗口无论被什么来源掀出（上游页面自己弹的、外部工具开的 tab、系统焦点切换），约 1.5 秒内自动压回后台；想看窗口用 `chrome-show`（明示解除，不再压回）。粘滞状态跨重启保留；v1.18.5 起 hidden 档**出生即受保护**（拉起落账即写粘滞），且由独立执守进程兜底——**即使 Claude 会话/server 不在，隐藏的 Chrome 被掀出也会被压回**（执守是账空自退的短命进程，不留常驻开销）。\n- **你亲手点开它时，执守会让位**（BUG-03 B1）：压回决策带「用户激活让位门」——Dock 点击 / 你手动点开的激活（判定 = 本 Chrome 处于前台 + 键鼠刚有输入，连续约 30 秒确认）会被认领：不再压回、不再自动收，关它只剩你自己关或显式 `chrome-stop`。程序掀出（页面自己弹的）照常压回。误认领可用 `lasso chrome-hide` 重新武装。\n- **端口被你自己的 Chrome 占了？lasso 永不动它**（BUG-03 C）：报 `port_in_use_non_cdp` 时，自家挂死且**未被用户使用**的实例会自动清掉重拉（`ledger_zombie_collected`）；已被用户拿去用的实例（已认领 `user_taken_asset` / visible 登录窗）**绝不自动清理**——唯一出口是你自己关掉或你本人跑 `chrome-stop`；是你手开的 Chrome / 其他程序占用则明确说「用户资产，不会 kill，请自行裁决或换口」——lasso 不提供任何针对非自家资产的 kill 出口。\n- **端口被占了想知道是谁？`lasso chrome-status [--port N] [--json]`**（BUG-04 A，只读）：lasso 直接替你做「归属鉴定」——真实监听 pid / 进程名 / 已运行时长 / 命令行 / 台账 / CDP 探测一次查清，分 10 类作答（空闲 / lasso 在用 / 慢启动中 / 台账僵尸 / 用户已认领 / 台账陈留 / 疑似 lasso 无主实例 / 疑似用户资产 / 外部进程 / 证据不足），并给出**给你看的裁决包**（`user_paste_pack`，含你能走的出口：自己关 / 本人跑 `chrome-stop --port N` / 让 Claude 换口）。对 Claude/agent 侧它**永不输出任何 kill 命令**（唯一的清账指引是 `chrome-stop --zombie-gate --port N` 门槛变体——kill 时刻重估你的认领状态，且仅限 lasso 自家僵尸分支）；探针失败/空输出一律如实报「证据不足、只上报」——空输出≠没占用。MCP 侧等价入口：`admin {action:\"chrome_status\"}`。\n- 纯抓取不需要登录态时可用 `--mode headless`（BUG-03 B2）：无头实例零窗口/零打扰，适合**无人值守**机器的纯抓取。🔴 真机复核订正（BUG-03 对抗复审）：macOS 上它**并不**让出 Dock 槽位——它活着时你点 Chrome 图标不会有任何反应（激活被无头实例吸收、没有窗口可显示）；有人会用的机器请用默认 hidden（有让位门，你点开它会让位）。代价：没有窗口、`chrome-show` 无效，登录流用 hidden/visible。\n\n</details>\n\n**详见** → [Key 配置指南 · 登录态浏览](./doc/usage/01-KEY-GUIDE.md#b-登录态浏览命令行配置无-key)。\n\n### 三、控桌面（✅ 免费 · 授权一次，不用 key）\n\n- **macOS**：跑 `lasso doctor`，按提示给 `lasso-rust-helper` 勾「辅助功能」+「屏幕录制」\n- **Windows**：第一次桌面操作时系统弹授权窗，点「允许」\n- **Linux**：装辅助功能接口（GNOME/MATE 默认有；没有就 `sudo apt install at-spi2-core`）\n\n> 诚实边界：macOS 经真实环境验证；Windows / Linux 编译和契约层过自检，真机完整手测推进中，不伪造「已完整验证」。\n\n**详见** → [Key 配置指南 · 桌面控制](./doc/usage/01-KEY-GUIDE.md#c-桌面控制系统授权无-key)。\n\n### 四、云浏览器（默认关 · 只有重度反爬才需要）\n\n轻度反爬 `browse_headless` 自带反检测就能过——**用不上就别配**。要过 Cloudflare 级反爬才开，需同时满足总开关 + 一条通道：\n\n```json\n{\n  \"LASSO_ALLOW_CLOUD_BROWSER\": true,\n  \"STEEL_ENDPOINT\": \"http://localhost:3000\"\n}\n```\n\n- **Steel 自托管（推荐 · 免费）**：Docker 一行启动 `docker run -p 3000:3000 -p 9223:9223 ghcr.io/steel-dev/steel-browser`，零 per-session 费、cookie 不出本地\n- **browserbase 托管（付费）**：换配 `\"BROWSERBASE_API_KEY\": \"你的key\"`，不想跑 Docker 的备选\n- ⚠️ stagehand：程序化实验通道，无 MCP 工具入口，别指望它抓页面\n\n**怎么申请 key、Steel 完整开通步骤** → [Key 配置指南 · 云浏览器](./doc/usage/01-KEY-GUIDE.md#d-云浏览器反爬默认关双重解锁)。\n\n<details>\n<summary><b>高级调优（可选，普通用户不用展开）</b></summary>\n\n日常使用**完全不用管**下面这些。只在特殊场景才需要，且大多可以通过 `lasso config init` 写进 `~/.lasso/config.json` 或设环境变量来覆盖（环境变量优先级高于配置文件，方便临时替换）：\n\n- 改登录态 Chrome 的调试端口（默认 `9222` 被占用时）\n- 换缓存 / 状态文件的存放位置\n- 限制只用免费搜索源\n- 放行公司内网 / 特殊代理网段\n- 给登录 cookie 加一个自己的加密口令（不设则走 macOS 钥匙串）\n- 落盘搜索结果快照（做回归测试用）\n- 调无头浏览器空闲自动回收时间（`LASSO_HEADLESS_IDLE_MS`，默认 5 分钟；配 `0` 禁用）\n- 调 launch-chrome 起的 Chrome「用完即关」时间（`LASSO_LAUNCH_IDLE_MS`，默认 60 秒；配 `300000` 回退 5 分钟、`0` 禁用）或切回可见启动（`LASSO_LAUNCH_MODE=visible`）\n- 给浏览器配出口代理（`LASSO_PROXY`，如 `http://127.0.0.1:7890`；**只影响无头浏览器和 Steel 云浏览器，登录态 Chrome 的出口永远保持原样**——v1.11）\n- 放行 `file://` 本地文件导航（`LASSO_ALLOW_FILE_FROM`，冒号分隔目录白名单；只开 `browse_headless` / `browse_logged_in` 两工具，且只放行指定目录子树——默认仍拒）\n- 开放自定截图落盘路径（`LASSO_SCREENSHOT_DIR`，冒号分隔写根目录；`options.screenshot.filePath` 只允许写进指定子树，默认拒、默认 `/tmp` 管理路径不受影响）\n- 设 Steel 自托管云浏览器端点（`STEEL_ENDPOINT`，如 `http://localhost:3000`；需同时开 `LASSO_ALLOW_CLOUD_BROWSER=true` 才启用）\n\n完整变量清单和默认值见 [Key 配置指南 · 高级调优](./doc/usage/01-KEY-GUIDE.md#e-高级调优可选全不配)。**Surge / Clash 等 TUN 代理网络（fake-ip，`198.18.0.0/15`）与 `127.0.0.1`（本机 Chrome CDP 调试端口用）都已内置放行**，无需额外配置——这是设计行为，不是漏配。\n\n> **向后兼容**：如果你以前用 `claude mcp add -e KEY=VAL` 装过，那些环境变量**仍然生效**，且会**覆盖**配置文件。配置文件只是新增的一条更友好的途径，不废除老办法。\n\n</details>\n\n---\n\n## 隐私与安全\n\n你的数据是你的。\n\n> 🤫 **运行守则**（v1.18 起明文）：能后台静默干的就静默干——零窗口、不抢焦点、永远静音；确实需要你时（登录、2FA、高风险确认）才弹一次，你处理完它自动转回后台静默，不需要你记着收尾。\n\n- **登录 cookie 永不导出**，除非你显式同意并加密落盘。Lasso 不会把你的登录态偷偷传到任何地方。\n- **桌面操作日志只在本地**，零远程上报。Lasso 不向任何第三方上报你的操作。\n- **云浏览器默认关**，必须你**明确确认两次**（总开关 + key）才会启用。没配就等于没有这个能力。\n- **不解 2FA / CAPTCHA / 验证码**（红线）。这些永远需要你本人在本机浏览器里手动过一次。\n- **不让陌生人随便碰你的内网服务**——访问内网默认被拒，保护你的内部服务不被随意触达；Surge / Clash 等 TUN 代理网络已内置放行，无需额外配置。\n- **搜索结果默认不落盘**，只有你主动开启录制模式才会存一份快照（用于回归测试）。\n\n### 静默性矩阵（v1.17.2 真机实测）\n\n「静默」= 干活时你不被打扰。下表是六维打扰面（抢焦点 / 弹窗口 / Dock 图标 / 出声 / 系统通知 / 资源占用）逐格真机实测的结论（macOS 12 + Chrome 150，2026-08）：\n\n| 你用的能力 | 抢焦点 | 弹窗口 | Dock 图标 | 出声 | 通知 | 资源 |\n|---|---|---|---|---|---|---|\n| `search` / `fetch_url` / `fetch_feed` / `search_local` | 无 | 无 | 无 | 无 | 无 | 极低（纯网络/本地查询，CPU 峰 <3 秒即落） |\n| `browse_headless`（无头浏览） | 无 | 无 | 无 | 无（恒静音） | 无 | 中（存活期约 400MB，闲置 5 分钟自动回收） |\n| `launch-chrome`（默认 hidden 档） | 无 | 无 | **多一个 Chrome 图标**（清不掉，见下方边界） | 无（恒静音） | 无 | 中（v1.18.5 起 CLI 拉起默认不自动关；配 `LASSO_LAUNCH_IDLE_MS` 才有 ~60 秒自动关） |\n| `launch-chrome --mode visible` | **会**（弹出窗口，你主动选的） | 会 | 会 | 无（也恒静音） | 无 | 中 |\n| `browse_logged_in` 连**你自己开的 Chrome** | 无（逐操作实测） | 无 | 无新增 | **你的 Chrome 不静音**（lasso 不改写你的浏览器） | 无 | 低 |\n| `desktop` 控桌面 | **设计上占用键鼠** | — | — | — | 首次配置授权弹窗 | 极低 |\n\n连你自己 Chrome 的三条边界（v1.17.2 起）：① lasso 在你的 Chrome 里自建**后台 tab** 干活，不抢焦点、不激活窗口，会话结束自动关——你的 tab 一律不被改写（旧版会改写第一个 tab 的内容，已修复）；② 你的 Chrome 不静音——lasso 浏览到自动播放页面会真出声（要静音自己启动 Chrome 时加 `--mute-audio`）；③ lasso 操作期间那个后台 tab 会「自认为有焦点」（浏览器调试协议的仿真，不影响你正在用的前台应用）。\n\n---\n\n## 故障排查\n\n**遇到任何问题，第一步永远是 `lasso doctor`。** 它会自检并告诉你哪里没配好。\n\n| 现象 | 你该怎么做 |\n|---|---|\n| macOS 桌面控制不工作 | 「系统设置 → 隐私与安全 → 辅助功能 / 屏幕录制」里勾上 `lasso-rust-helper`（`lasso doctor` 会引导你） |\n| 抓登录态页面失败 | 在你本机 Chrome 里手动登录一次（2FA 也手动解），再说「打开我已登录的 X」 |\n| 存 PDF 失败 | 改说「把这一页截个整页长图」即可 |\n| 搜索一直没结果 | 跑 `lasso doctor` 看 `machine_search_mcp` / `brave_keys`；Brave key 是否过期或额度用完；机器 MCP 复用 + 免费实搜兜底本身零配置可用 |\n| 链接打不开 | 改说「这个链接找不到了，找找存档」，去查互联网档案馆 |\n| 提示要内网访问被拒 | 确认 URL 没写错；TUN 代理网络已默认放行，其他内网需手动允许 |\n| `file://` 链接被拒（`ssrf_blocked:protocol_not_allowed:file:`） | 默认行为。测本地单文件 HTML 时设 `LASSO_ALLOW_FILE_FROM=项目目录`（冒号分隔多目录），拒绝 payload 里的 hint 有完整指引；配没配可用 `lasso doctor` 看 `ssrf_config` 的 `fileFrom=<n>` 回显 |\n| 想验证反检测效果 | 跑 `lasso doctor --stealth-check`，会驱动 creepjs 检测页对比基线（可选，不影响日常使用） |\n\n完整 FAQ 与调试技巧见 [`doc/usage/02-TROUBLESHOOTING.md`](./doc/usage/02-TROUBLESHOOTING.md)。\n\n---\n\n## 适合谁 / 不适合谁\n\n**适合**\n\n- **Claude Code 重度用户**——每周都要搜、抓、控桌面，不想为每件事单独装一个 MCP\n- **做调研 / 写报告 / 搞数据的人**——搜一搜、抓干净正文、死链救活，一条龙\n- **搭 RAG / 喂知识库的人**——网页转成干净正文、带引用角标、省字数省钱\n- **做自动化 / DevOps 的人**——控 macOS 原生 app、抓登录态内部面板\n- **经常抓登录态页面的人**——复用本机 Chrome 会话，不用在配置里重存一遍账号密码\n\n**不太适合**\n\n- **不用 Claude Code 或其他 MCP 客户端的人**——Lasso 是 MCP 服务，需要一个 MCP 客户端来驱动它\n- **只要单一能力、而且已经搭好专方案的人**——全家桶对你可能冗余\n- **想绕过 2FA / CAPTCHA 的人**——红线，做不到，也不会做\n\n---\n\n## 支持作者\n\n如果 Lasso 帮到你，欢迎请作者喝杯咖啡 ☕\n\n<div align=\"center\">\n\n微信 | 支付宝\n:-: | :-:\n<img src=\"doc/assets/support-wechat.jpg\" height=\"200\" alt=\"微信赞赏\"> | <img src=\"doc/assets/support-alipay.jpg\" height=\"200\" alt=\"支付宝赞赏\">\n\n</div>\n\n或 ⭐ [Star 这个仓库](../../stargazers)、[提 Issue](../../issues) / [发 PR](../../pulls) —— 都是对作者的鼓励与支持。\n\n---\n\n## 更多文档\n\n- 想看深度架构？见 [功能架构](doc/architecture/01-功能架构.md)\n- 想看版本路线？见 [实施排期](doc/architecture/02-实施排期.md)\n- 想看 key 获取？见 [Key 配置指南](doc/usage/01-KEY-GUIDE.md)\n\n## License\n\n**MIT** © wangdong233。桌面辅助进程与浏览器引擎依赖均选 MIT / Apache-2.0，企业可商用。\n\n> 想看内部架构、设计原则、跨平台边界、开发命令？见 [ARCHITECTURE.md](./ARCHITECTURE.md) 与 [`doc/usage/02-TROUBLESHOOTING.md`](./doc/usage/02-TROUBLESHOOTING.md)。\n\n<p align=\"center\">\n  <sub>Built for everyone who'd rather <strong>say it</strong> than <strong>script it</strong>.</sub><br>\n  <sub>装一次，搜 / 抓 / 登录态抓 / 控桌面都是一句话。</sub>\n</p>\n","readmeFilename":"README.md"}