{"_id":"@tianshu-ai/local-bridge","_rev":"37-6f75098bb134f48d7f394ca922f1da30","name":"@tianshu-ai/local-bridge","dist-tags":{"latest":"0.12.6"},"versions":{"0.1.0":{"name":"@tianshu-ai/local-bridge","version":"0.1.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.1.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"bin":{"tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"297e5f46ff9a33a793bc84953d50e4dd16598805","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.1.0.tgz","fileCount":10,"integrity":"sha512-9Te2uPYWpTMCUmeipXtjo42WQBgl4JBp+LcsF0KtqBWSVjaBFbPVrDaS7ZL+pQzRU2tUQfShsdnVy1X/X5gNnA==","signatures":[{"sig":"MEUCIAEuV4JPlZ1YzIN/qRN4zzZQDNSf/Evsxpb87rJO85OuAiEA9hUKIvkshoeC21kxZIWDgsDf9ODs/A0HElQzMfDgDpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35134},"type":"module","engines":{"node":">=20"},"gitHead":"ae480768878b9f7abe398388d0eca41c4648f2b7","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"_npmVersion":"11.16.0","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.1.0_1784440945659_0.3392207959227411","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@tianshu-ai/local-bridge","version":"0.2.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.2.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"938a3dbf374526d68ce68aef03ff1fb96ea43c6f","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.2.1.tgz","fileCount":12,"integrity":"sha512-pgmZ2uovJzh4augDpQal0x39PSl8PfM6jZCG6ii7I4E98/kenvb8ijT3zl0NAVLPwzjf3L1epjRTFQTu2eZGfg==","signatures":[{"sig":"MEUCIQCb3YLfZ3ygBTg7v7fcgZizzjW2GdE4LGtI68KqPNNoFwIgN9MT/4pVDEq9lRNoJhpTnyPLTMYxAZzmisiNVpmqVxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43639},"type":"module","engines":{"node":">=20"},"gitHead":"b73d02de48f04a47d7d54d9b3d8f5c1ed5022e6c","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.2.1_1784456990419_0.9183272945008087","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@tianshu-ai/local-bridge","version":"0.3.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.3.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"749e8b3221c4900ddb65366d4e41e02d8197a905","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.3.0.tgz","fileCount":12,"integrity":"sha512-zmAMn26CNKUYyCYiWKavDGrsr8zX2XYOOt8ptcOkInNbrR3yFiO1F+sO5siRJuzkdN+OE2LqtEGdX+t3pD1moQ==","signatures":[{"sig":"MEQCIFbb+ngbcwm0V7MOiT//YGVUz8m7BesDtDNYspyPSStbAiAhxIbmNEQAhMS4zQZFIHMuAaHSg09LYR+6DE1lAlfyPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44161},"type":"module","engines":{"node":">=20"},"gitHead":"ac18f6a92fa811cab7b84cef73e6180dd4e449aa","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.3.0_1784459725498_0.768271912693413","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@tianshu-ai/local-bridge","version":"0.4.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.4.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"8381852729b9a5464727d70b4ffba37737f28789","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.4.0.tgz","fileCount":14,"integrity":"sha512-nWNWbPW29pinCdlTIVLqjwmErudXaETeWcSSraHjTJVPCFhZbuUjLSErJfa4QMnL1l5M9PcL8qgwCMvNBVUDTw==","signatures":[{"sig":"MEQCICgmFE05aUkEZXWzvLayIpNSiVCuaCEzycnRdDbz5LmNAiAC11QSIF+NYn3OtWayKtLZ+Z7WVA0CwZbdQ6HXZjq9BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53153},"type":"module","engines":{"node":">=20"},"gitHead":"fb78e2bd203bb010d26af5e9601fcff14db56d61","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.4.0_1784460069202_0.4041119680662124","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@tianshu-ai/local-bridge","version":"0.4.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.4.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"1b85cb373fb71d9e69997e85a0bc6cca65f6ae3f","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.4.1.tgz","fileCount":14,"integrity":"sha512-X6wdC0xiDQH+1MXMWGlQeNFC47mLdUqtytRGkeLv71no5+dD7lFuaM6xOgPN1SSZlNm+7XqXUkm2bjtkbKNxQw==","signatures":[{"sig":"MEUCIATe0HmFBL3SMIqHxx1mpbQtq1TXTKRB6iReFJ4iboQNAiEA4u3cYZr4Ci/5+d8HGFOslJyUgkVAMfSeLmc/ctJu7sk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52645},"type":"module","engines":{"node":">=20"},"gitHead":"d90c9284e858e9d3aadf9b0915efffbc1097608c","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.4.1_1784461964091_0.015441094803149813","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@tianshu-ai/local-bridge","version":"0.5.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.5.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"f7bc9f79cb2efa70221feba9a9e75d38dc66b9c9","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.5.0.tgz","fileCount":15,"integrity":"sha512-fRLUG3SXs6ZgvAU8iQzsHYwNiJSEhg47vWfLzN844haXP7zcRoVHsXDIL8mkz8HgMbJc/Du2IQbAcMGRJlCLuQ==","signatures":[{"sig":"MEYCIQCkdFhAUQeWpoRUchVpdv5RRl94x51tu/Rv8J5zFO5iGQIhAKt8Yre+5KjwEVUIIsZFx4Fu1WFb0PMNJUJi7OJH6cDp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68103},"type":"module","engines":{"node":">=20"},"gitHead":"e3feccf0ee1126056a8b9c53ee2698fbd2473782","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.5.0_1784481917620_0.6990539054419269","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@tianshu-ai/local-bridge","version":"0.6.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.6.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"7618ee6cdf3f457dcbb7bbf17f6aec9fbbf0e973","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.6.0.tgz","fileCount":17,"integrity":"sha512-XvvHlrjIjZx4LDxpOxZwBCXD775ki0o7x6lLupVBZVg9ezsIjR2g92HNZsfdQQDbqE9xabj160wZhOZ0z2cRUQ==","signatures":[{"sig":"MEYCIQCsgaqbOPD8D9IOnoQ0J2od8VIEbCGza7L+21oeX7oEHwIhAIyW/GnchIh/g772HPkWvBQVGr0yeAeJCjxdiWEPWvLL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103904},"type":"module","engines":{"node":">=20"},"gitHead":"f325b4ab933cac33a48e90c9dfe5a886ef28ee79","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.6.0_1784567280267_0.6460693283238246","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@tianshu-ai/local-bridge","version":"0.6.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.6.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"d511708861329ba56ab013114a42ad27285a38e3","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.6.1.tgz","fileCount":17,"integrity":"sha512-J++4lMRRD3BBeXtoa7qSIMJsjmaVKHdmWg4MgWZ/KVfoC8GFjE0L1VAcIQG370ZS3rUFvWHwIxh8z7DHLFK9uA==","signatures":[{"sig":"MEQCIBlWQP6odcCE2kD9fhPs7G7boepNOBq2FSA9laFzRe8EAiBRY13BMDDJf/I3aQbhlP8AqmXCOzlwq9z4rCxRZnyMtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104515},"type":"module","engines":{"node":">=20"},"gitHead":"8f74c6bfe34363dd142b9b896c285203a48860c2","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.6.1_1784596791732_0.7234815785964741","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@tianshu-ai/local-bridge","version":"0.6.2","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.6.2","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"b255fab6bb756cb41e1c7e507c2628f99c069d1e","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.6.2.tgz","fileCount":17,"integrity":"sha512-1M/N50VdVJMQx8D2sQitUE818TOeBA9E4f/iM22jT6V9xxb9ax8lQRyIy5ymfmymwKwylNG6KJf1kqQhkxZpyA==","signatures":[{"sig":"MEQCIG06amu5spRyak/TbtpJAqYNfcnFuRheIfRFiu29eMjBAiAblNhqwMdNd41sMtUKeNE8ICmhbV7Y7dDzUMWwl10ZeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105354},"type":"module","engines":{"node":">=20"},"gitHead":"8d83b5bee9453152fe145c973210815a4271e72b","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.6.2_1784597506483_0.8234420453148443","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@tianshu-ai/local-bridge","version":"0.7.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.7.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"43c83502283e3301009accabe73a1e824ec7cba2","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.7.0.tgz","fileCount":17,"integrity":"sha512-aass6biLdzksglaUT8CqhjedUAj2jIWnYVrFRG4117EjeFlL8zjyP63eQF1t8C+uzIq9wGYoIxoky5QNui7BKQ==","signatures":[{"sig":"MEYCIQDOEA2FJnIb5I0G5qgpyA6Bi+rqvnxyS6kroRuyJk4HGwIhAMsVilStAPDDz2XTHKM/MwnfZqFfWm2godR0uKs+xgN6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107076},"type":"module","engines":{"node":">=20"},"gitHead":"bccabc512d75d857c2b70fe9074c7963fd48ddae","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.7.0_1784600913893_0.4077738283326926","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@tianshu-ai/local-bridge","version":"0.7.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.7.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"10fbfae16f948463bfe5069788055c569fd8fcc6","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.7.1.tgz","fileCount":17,"integrity":"sha512-ZFJmG4SY/Hyox2JXRrlRnChYuBEFMIwf757jMTXPtkSdnhwRHHZ07AhxfsJrxFGiV/KCcxnGFtES7xYjTN7wgw==","signatures":[{"sig":"MEUCIQC+fBE++14nNo55G6n3CRQQQ9+yerSY8XSex73SFv6KsgIgX0yioMDbevFxNwRXqFa7BC80mjzBHsHoeFzwzoYrtMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":112849},"type":"module","engines":{"node":">=20"},"gitHead":"26b31af581b5f198a4770d9447ed18ddf1ff3265","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.7.1_1784689287687_0.06978996325315112","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@tianshu-ai/local-bridge","version":"0.7.2","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.7.2","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"1bd3e01b0dace8de5d71842a1b4c1c41bcd487dc","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.7.2.tgz","fileCount":17,"integrity":"sha512-cAWzgiPNEsg5HbNiHei0UYmmx+mq8kVnx7sC3PY4fdBsjG4CWm8L44Vd8da1CjxqElOgARF9j7Sn2p1JJjo78g==","signatures":[{"sig":"MEQCIC/ao6revxWhOkfms6ypIsQ9ycJsmJFPiKi4tL53IF+7AiBSjA50b6VpF4UC6CvtA0DGtq+BgcIZe+cIze/BlRS/5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115025},"type":"module","engines":{"node":">=20"},"gitHead":"bf0018b705336c31a651c2ca1a15fc8eef01dabe","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.7.2_1784720408876_0.07800454410796864","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@tianshu-ai/local-bridge","version":"0.7.3","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.7.3","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"541b47c67feefc2ea901ae7ac27fb0c987a10fd4","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.7.3.tgz","fileCount":17,"integrity":"sha512-XZlRQZ69TTeLJyDSmRYk2ZJY7sOARhLCxRn3O9+cAlsMDami7OKpOT+vw+2x+dH6U/MXdjAQW/l2PqPh/x8kgA==","signatures":[{"sig":"MEUCIQD1Vi9VAH4BmCDf4xcNVIDmJnfVrZ57Yc4Y66pU6ocCVgIgV7xv2FN4sUzna90I/acrycPhFhvGNHfNsa9lqgoiAiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116361},"type":"module","engines":{"node":">=20"},"gitHead":"026575216db3a28fc6d0e5a91cc0b2a7ecc72efb","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.7.3_1784722165681_0.2033934784161291","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@tianshu-ai/local-bridge","version":"0.7.4","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.7.4","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"ce387331ad085f3a800a52d76b42c95fb766a0fc","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.7.4.tgz","fileCount":17,"integrity":"sha512-9lu9Y8Er2eCfRekpIzhQpNUN4KbJ/WReqPwaLxCf95Ydx/ZRdPe2a9RwtuU2pRmd9F2zey3/RrrtzRVTKXtIOQ==","signatures":[{"sig":"MEQCID2pcO50n/yjX5i08woWfWt7TsgUVophdRa3WYh5eru1AiBCiMOv4L2GQNF/+BJQm/Pzdf6cls5zeCez8YOshFVF7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116884},"type":"module","engines":{"node":">=20"},"gitHead":"dec929c3b6f4cdc5247f43488825ba6f9472c4ba","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.7.4_1784733491932_0.8000568311221148","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@tianshu-ai/local-bridge","version":"0.8.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.8.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"ea3cea0f22cc20b52e9625789b381a0d85a08d70","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.8.0.tgz","fileCount":23,"integrity":"sha512-GBlAbnR/qykwoD1HKtOSmBlcy7o/YhVwCo2s+7iOXsbU4pLmVIgJ2qkXlC0VU5AB9KG1yKtamJ/EJLppQvYAvA==","signatures":[{"sig":"MEQCIHSdOzsrd8Upj3jwaMAUwhPd0QIH6wMENz3JlDEPlcgxAiBs0TYnik94ENOLw8lyb5wkXm31rb05wWO74a8ynYVRBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142367},"type":"module","engines":{"node":">=20"},"gitHead":"a8df89343e23bc2a479101251be053e86a04b14b","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.8.0_1784806204931_0.28941061045019434","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@tianshu-ai/local-bridge","version":"0.8.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.8.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"d00659f6444e467b9444f9dc3e5c0c2393a2c153","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.8.1.tgz","fileCount":23,"integrity":"sha512-GMXpGt7211gb6AtH+pvqPRBGFJKiiILWxivgmXufIZbjCGxaFmixVti30YSIVrtkd+cnxKPminIC/zqxdVLJxg==","signatures":[{"sig":"MEYCIQCg48geWKLBWUQ1r1wpMX6c6hO/TWZPBDxCPYpFrVNgrQIhAPEBf6DMUq5MF1JxSmDRwVcf570nCIPzlgKxehpiOFbA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144497},"type":"module","engines":{"node":">=20"},"gitHead":"43d1287f09e576f90175e89d2f308ca009710d97","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.8.1_1784806993285_0.07264387976782927","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@tianshu-ai/local-bridge","version":"0.9.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.9.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"e2c57bc013a06205cc4b3e59f2f7d4beee58cba7","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.9.0.tgz","fileCount":25,"integrity":"sha512-T2eMd/zBS/j5up+wnO4YvtMRk2AQMf995sKg4oX0GTa7BFi4vAqBFZ3wiCdmdQyIOJLX4E+8L7tWaeEePWbMmQ==","signatures":[{"sig":"MEQCIEdt4crNVK49jiwqqZnH9wm8mFsGdba67L8NIw0p7vfvAiBl2McY4GvpZ7ICqmCz075Z1MN7e2Y0I+bSDJq/Dv24gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":158699},"type":"module","engines":{"node":">=20"},"gitHead":"b5f32b66ef02d37348190c8ce86e361312a61584","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.9.0_1784810696730_0.8535755960662561","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@tianshu-ai/local-bridge","version":"0.9.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.9.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"dcab21c63c0b32d2f52c7a0cac4af60083201836","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.9.1.tgz","fileCount":25,"integrity":"sha512-n+I0CNWxstjPIFnWzD+8EyEfu87tEuVkyC3kdB2M1MnvreljglXe1T0lED8MvAao1/kPm9JINymXuzhnZwaxug==","signatures":[{"sig":"MEQCIAucyrs9kEe22AQBJPkAQHQTU8JjH4O0MXxHUz22s3EeAiAA4Bq4/l/OXrbKu3sABQrXP5p3FHIgJYDor7Z6preuOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159770},"type":"module","engines":{"node":">=20"},"gitHead":"1dafdbbaef3bbdc4219d2e366e7a96435fa841f0","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.9.1_1784815083373_0.35574506058205424","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@tianshu-ai/local-bridge","version":"0.9.2","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.9.2","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"00f26cc0e24869269880927b069916948d75c386","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.9.2.tgz","fileCount":25,"integrity":"sha512-CMX7DUpniVOO26maciteq/RM44mijeo71l+XUNgi2Jp1YuFmfONcqXvce6t2g8ABO2xcunhkr86PtvJ0k1bodg==","signatures":[{"sig":"MEQCIB3YGpXtuJZIXH9RdvFrTCZpxI9m0ZDTvIcarNYfbkRmAiBMRPc7fQEkqOgiRbiTBqr8YV53B5RwxQtAoIlzoGBZBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161564},"type":"module","engines":{"node":">=20"},"gitHead":"efed830688523dc3a9dc4d255668f17e55daf79c","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.9.2_1784816401535_0.2538769742695679","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@tianshu-ai/local-bridge","version":"0.10.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.10.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"20f3da6a32d822e691bd5afae824073f4c7d1c33","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.10.0.tgz","fileCount":25,"integrity":"sha512-aGagaTIOF2i576x6oFfHBPh/MAT+xC8Euddt2I32b+SWMEHn2Xlfvlr8IInWy7aZu6c7aMxbAB0RIvuckd7lBg==","signatures":[{"sig":"MEUCIEOe9gLVP97XL+rs3RwYlOOvk+78Y4u1ySpbdiP92G69AiEA4Q9bhVnoi/0YhOgL90hiUOYYyTBIk+JUDR0zcPBGYu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165313},"type":"module","engines":{"node":">=20"},"gitHead":"660bbd398e5952d851af45e13513b47b4a7432e5","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.10.0_1785045508146_0.19952443715172619","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@tianshu-ai/local-bridge","version":"0.10.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.10.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"98206ec990f1f6db0be959dc240dbbb205db58ce","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.10.1.tgz","fileCount":25,"integrity":"sha512-mz2bZkyp/ab96LeBoW2LowfWI//ispZV3BkbmBl1ssSomnOGpaw7dgK7WSLWk0SbfALSDnKK5ZzawAGbmEM+vQ==","signatures":[{"sig":"MEYCIQDjEfdUWokr8cRU41zPuYVzMg7Aqk9bB2TUy/f/vLz8IgIhAMTPxx9RoQRlCx3UbYDlXCMfUkd8oKyBYDrtFdcilyg1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165827},"type":"module","engines":{"node":">=20"},"gitHead":"17ed604676b16a7043643431845001d7f9b0cf7a","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.10.1_1785052381970_0.6123305090449216","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@tianshu-ai/local-bridge","version":"0.7.5","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.7.5","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"ee9332ea7beb77777a0e131ac4094c820d94d546","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.7.5.tgz","fileCount":25,"integrity":"sha512-H0sa8Q/rXSQF42/DP6sPXreROp9ygzxA0S2b8RLwufxQLF7lYR0n3VSjX0LFYhzq/lDeGgcAlpUbZC4uaNAPdg==","signatures":[{"sig":"MEUCIF+aZJdVKzCxTMsEqJg2YFTT/P3ZYHPwGTkSrO7XFptoAiEA1IotSoyivIgc7BU65FrUyMrUYhCRivCglAmDHn9gTaQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.7.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165575},"type":"module","engines":{"node":">=20"},"gitHead":"325790a2655c53c062a8fa1b21d35251ea6e655a","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.7.5_1785251916461_0.8437658825223571","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@tianshu-ai/local-bridge","version":"0.10.2","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.10.2","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"aee8b1e3bf0c04223b83184522e6bcb986e3ef33","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.10.2.tgz","fileCount":25,"integrity":"sha512-e8jIpZHWNYuUn6oEndN3A5xCNqSs56D8cZFro90vlPc8/gbd4hPQyQAHe39kXqDketJlhgwNaMpy/C21GQblxg==","signatures":[{"sig":"MEYCIQCy6cQ/oOujutnoJf5XdfCgp9Ycc2gEiCpRKlYQvmr0EgIhAJ1dlYYzaxwJwk2TuFsm2D6eguYJu9gNpRbLP8Pqb+eR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165576},"type":"module","engines":{"node":">=20"},"gitHead":"9b229cb6be0e5bced34270349640ca1e7d4ffba1","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.10.2_1785252290624_0.1476801383161339","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@tianshu-ai/local-bridge","version":"0.10.3","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.10.3","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"6d8587b391d3e44b9b3138fd8bf79796ad437361","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.10.3.tgz","fileCount":25,"integrity":"sha512-FX2I7s2dmk3cKMP3svq5P//JnL3P0w7Wl5r/dyTQfVAaIyjIcbNBoLwU262OLzj4jqiuMSCFDbWSYORaeHC21Q==","signatures":[{"sig":"MEUCIQDeUDTQT4tgK8gXobgqnQA7NcrtbkydVxqHzFCL5jH8xQIgHpssd4ZtF0knOV77dvnet4EgvednkqcknKcrNFTHc1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165911},"type":"module","engines":{"node":">=20"},"gitHead":"f55442ce660939ede1d8b5af9cf6b9026fa0d65b","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.10.3_1785254349033_0.5118096685214835","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"@tianshu-ai/local-bridge","version":"0.10.5","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.10.5","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"80742ad46d94ee75001333a03e03f5c0221eb250","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.10.5.tgz","fileCount":25,"integrity":"sha512-qEWFh90k+f1+8hkBpNXefhwKw5NeCnXzBWyQuyZTGeWSrdXM7PMGfPFjFa9BrFdTG4arZw2uHkXwpR5dwLBcpg==","signatures":[{"sig":"MEUCIQDeYT1fo3NNlHbB3tBM/Edne+Fx853gq2m9UqaOPMRd+QIgMkphz4LsTOy9+N8fKTt5p9uI+Q47q+0Y0X2GK061zLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165629},"type":"module","engines":{"node":">=20"},"gitHead":"fbb878bd46909f00bc8dc080fae98fc1d76e3c96","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.10.5_1785945901020_0.6053647998179188","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@tianshu-ai/local-bridge","version":"0.11.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.11.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"a1ff158420479b2d9c285704c9cfddea41fb8441","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.11.0.tgz","fileCount":25,"integrity":"sha512-26xH/HI5EUs7EgSm1TNHysI1O+ycVxP4OtaLQSrjA4eOF2TmUDUlDpX3VkojgQSHzlI1QsJ/pcCv9OzB0VKrYw==","signatures":[{"sig":"MEQCIFzjRgrD34uwAVgSVV4Wj26G7EiahYg+g/H9ggC84CSlAiBrsZis3efzgB7wEYnszajiW3SsXpev9MPmm70erMn8Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":173676},"type":"module","engines":{"node":">=20"},"gitHead":"17ef179bf285485df45b5dbb392c573b791cf19b","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.11.0_1788150690268_0.8522822938094443","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@tianshu-ai/local-bridge","version":"0.11.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.11.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"2a38407f039c6dea573e495ac687be9d1720595d","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.11.1.tgz","fileCount":25,"integrity":"sha512-zL0goRB4zgZPeTuNLvNNjIyOvp6t224X7WtbxHZ9BFEXZmYkgTUieDEd7p3FqlYQv0DxVHWv6Y2bqKGQ4JN3hg==","signatures":[{"sig":"MEUCIEauGQyLGyYZlTuqBnb1n+tN/mSNN/usgWGKrc3SiTJEAiEAyaSxjNfXnwSPK/dS1/CFId+FSw1PSJWVTg0Nzco1LGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170027},"type":"module","engines":{"node":">=20"},"gitHead":"18276b62620ac453561a2d620614242cedea77f9","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.11.1_1788166189381_0.619449048155726","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@tianshu-ai/local-bridge","version":"0.11.2","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.11.2","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"6a370da4a4e9e77b68f8689cbfbff1235e8a6002","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.11.2.tgz","fileCount":25,"integrity":"sha512-1Xak1ahdzvBHGi0O1rI7FKhSB1X9HBBgJRMdtT1AyOjkgf7KTNErop23yRDyKcWA57E8a5h6RMkmVnK21x8H7g==","signatures":[{"sig":"MEYCIQCg0F58BJV+f3iVt5Aj1WbNS0bPQHsG7M3XY1hpm+0BGQIhAJzZOPLHSFTWS2RxI3eMiWp4SOnw/OpiFIkDg2xKRp9t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170028},"type":"module","engines":{"node":">=20"},"gitHead":"981cc15bce3436569a0937bcfbd126dd7928be7e","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.11.2_1788265493837_0.24695557584111416","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"@tianshu-ai/local-bridge","version":"0.11.3","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.11.3","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"b2eecf82435204bb40b265b5e2cc2bba4dd4416b","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.11.3.tgz","fileCount":25,"integrity":"sha512-1wX0nwWDcd1GM2PPNBY0eOJwW1sGTzA5oRiAFxOEFpoe0Ul4oI2g11ggAGZiUoz0vr7F/lYlSh2N2MDYiAz/9Q==","signatures":[{"sig":"MEUCIQC8uzYl3CcSAfG19+aIPECbybzgqQtB0UVQVtAW5uU9RgIgcSNOFu41ld112g5dqn8fA1Iu4eMGHa8Cz8qWxdIqzRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170237},"type":"module","engines":{"node":">=20"},"gitHead":"de5622d1c57767bfecbe328e5ffd3173026319b9","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.11.3_1788265660001_0.9188218328345823","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"@tianshu-ai/local-bridge","version":"0.11.4","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.11.4","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"5de58999d6a5d0d5105c3a38f8719a600cb1b080","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.11.4.tgz","fileCount":25,"integrity":"sha512-QjJphmZaElY+JtkU0RyrwMtTSam/KzDGSm/Zma61CwvuTW4B4yP9yZ+NWx+8NTPI4MjrPR8mc2J/XxMlrC7uLQ==","signatures":[{"sig":"MEUCIHlCNWtXoplUay2noeVTAzYh6qwu+lqnUysdUEB8r8mgAiEAhxQ9ep9tTyTBHKTrS8MfYg2H680GuYmwhWGDfBf+4tE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172800},"type":"module","engines":{"node":">=20"},"gitHead":"353cad28019e56767d493a1eeffbdcc5eb1c77ec","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.11.4_1788313242375_0.415375969720186","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@tianshu-ai/local-bridge","version":"0.12.0","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.12.0","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"1405680496fe9e7e2a6da4d818ebef8a70eb226f","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.0.tgz","fileCount":29,"integrity":"sha512-Ch0YLvXM9tDGJY0iB+XbyMyz5Wh7T1RoQTlb4JImCh0UX4s4tdBXV7Dl83ooh9wEMp9dUNMw8+8/qaKObMiT6w==","signatures":[{"sig":"MEQCIHt2j0FZSFqR2NFKxZEROkZt72TsX0eJeF06iNlLRStvAiA2jDn334sJV3nIgQ8WYFO72SSvtAhK6I1zUQcyTXuSUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180310},"type":"module","engines":{"node":">=20"},"gitHead":"dbb862455f7ac000794c36ba8d7bece048460d2f","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.12.0_1788966322872_0.9715838336481466","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@tianshu-ai/local-bridge","version":"0.12.1","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.12.1","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"59aa734a2dcf98255d90e81ef25fd00c8875b682","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.1.tgz","fileCount":29,"integrity":"sha512-PtYQlVfaxpQlLfEUlCwxpHuZPfFukA1mQZL4NVSzjxG66h96wWqpIIKzUJ8d3w5ltNrdzHtpKeYkGSbsT3oLDA==","signatures":[{"sig":"MEQCIDps6CIJA5SME5rfGYUmWMfVC8+Tp5Obw31zhBRm6UjrAiBj2XjpFyDDNtKpiDqcmTUh1N+6TfLEvGg5Tn3aEyOJmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":186193},"type":"module","engines":{"node":">=20"},"gitHead":"6c015f14b5b250d94e63270e66b5fa72de8f4b6f","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.12.1_1788970048763_0.09852197250635775","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@tianshu-ai/local-bridge","version":"0.12.2","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.12.2","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"d48db4ccc107f54a5f9eadeeda9a61435704077b","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.2.tgz","fileCount":29,"integrity":"sha512-UNDCktkADgYXtWCo6i3SRwUA38tNNmOs9ZLqiA7R8WW0tVq1uBGi3U+4gxYD2JAlEoz+6awSTRiBWWo+WwX5+Q==","signatures":[{"sig":"MEUCIQC6ZPxJARu9JoSJe+9CRXmZzOhvoJKvhFI1vzX03B9UIgIge3ZYIP1+JBZjV8LjryyQul4MkR1Xcf3pZx76JvTMqWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":186676},"type":"module","engines":{"node":">=20"},"gitHead":"1c79321514e1f706dd37f5232b23322ebc47179b","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.12.2_1788970481766_0.030479898008177964","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"@tianshu-ai/local-bridge","version":"0.12.3","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.12.3","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"4cd082fd8a69f64c0ba8998a5b8ad30ce9824431","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.3.tgz","fileCount":29,"integrity":"sha512-Kq7/IAwpi2rbt/w/liJqcS7t8JNi0nXTu3acnv4sLODZ0KvBNH7lguAROIpDs3zecGwo6tDEUvl6JSMmV3spMw==","signatures":[{"sig":"MEUCIQCKGSj8bof4cuD3I/mGPV5/GgzjwPKihCqzvPC/Ib90wQIgfMkMvPfQh2demkhsjKVOeGnktRSKL7PR7t9Q1GnyBpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":186979},"type":"module","engines":{"node":">=20"},"gitHead":"0cfd005afadea34f0a5dbd26b269ea8e2f394c55","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.12.3_1788971067136_0.5612808843586181","host":"s3://npm-registry-packages-npm-production"}},"0.12.4":{"name":"@tianshu-ai/local-bridge","version":"0.12.4","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.12.4","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"af5b6964e89e1217f5604bde5a22705003403fe3","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.4.tgz","fileCount":29,"integrity":"sha512-dW8XCyjx62/GmrMTTtDPIZQg0sVAoKx4s0S+a2Lc9Zav2wV08aZd2nTZdG81kyYDYF7Zy9w0Pb61/E+ORLCLvQ==","signatures":[{"sig":"MEUCIQCBFukJkbtIUgcEUactPbulu5NVV+jhs+6SjbcgB0JctAIgMe3rKGE0DgwD/uyWYyIs9Ix6+V8tnJVZgt7t6Z6Omwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188711},"type":"module","engines":{"node":">=20"},"gitHead":"2ac5dc99866757118e2292dc8ddf22a16235d31c","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.12.4_1788971425295_0.7486826611091408","host":"s3://npm-registry-packages-npm-production"}},"0.12.5":{"name":"@tianshu-ai/local-bridge","version":"0.12.5","license":"Apache-2.0","_id":"@tianshu-ai/local-bridge@0.12.5","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"homepage":"https://github.com/tianshu-ai/local-bridge#readme","bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"dist":{"shasum":"55788690dbe2697e84a4fc2e813317e111b07110","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.5.tgz","fileCount":31,"integrity":"sha512-s9PxWq7+RGqryoDngmgCxpdD5IALNbUyHvVBm4h2qVRgOtNmvSb/1wJlQHnRf8JYO3TR5aPIZr98qInBRFrN7w==","signatures":[{"sig":"MEUCIHd0J+s5pA5+Whl9pvjeg0ArIc6GT2yaC4Fxusn/6AQLAiEAp/8bysLz2DHXWhF4SA+TGicMJZUUqQ8Dxdi7spz4xfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFHqsBcEplIUsDU+e12UpCSmCo8VH025+MLb5hFr+DEkAiEAg7c5QyUlJPGJ0L2olbdZT22In7amS4edpDlvh9TWyS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":201407},"type":"module","engines":{"node":">=20"},"gitHead":"9236a86b142925ea36bc96bd90d706ba693037cf","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/local-bridge_0.12.5_1789314670561_0.721783641590352","host":"s3://npm-registry-packages-npm-production"}},"0.12.6":{"_id":"@tianshu-ai/local-bridge@0.12.6","bin":{"tsbridge":"dist/index.js","tianshu-local-bridge":"dist/index.js"},"bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"dist":{"shasum":"9576739d46059f99efe9478fdc6599b895d85cdd","tarball":"https://registry.npmjs.org/@tianshu-ai/local-bridge/-/local-bridge-0.12.6.tgz","fileCount":31,"integrity":"sha512-hWoWtbvxYb4TaXLhRiIGa9SdxkBts3QJ5hjrTHvXJl73KYtLuRohkbqK5u6HUdWa6LK4VTcE1G0fwPRVghlDjw==","signatures":[{"sig":"MEUCIQDT035VyrOYvW7e5H2BJTSuPqwvi49d5mJFGwG57yoTxQIgCp6m1HrzE3+vYjVBmdR4TMKOB/dKrCLln2gNqQNY038=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDdWGeSl0HIiURuN1K5Ivx4BmQb9KU6p42DIAQ+k+UiMwIhALrx6Zn6HtC4vTjA78f9l8j2BT/4J5zDMvL4AXXvOqB0"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tianshu-ai%2flocal-bridge@0.12.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":207161},"name":"@tianshu-ai/local-bridge","type":"module","engines":{"node":">=20"},"gitHead":"93094b832a447adc3c2eb897e0cc55d44d8d693c","license":"Apache-2.0","scripts":{"dev":"tsc --watch --preserveWatchOutput","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"version":"0.12.6","_npmUser":{"name":"yv200","email":"ltjsjyyy@163.com"},"homepage":"https://github.com/tianshu-ai/local-bridge#readme","repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"_npmVersion":"10.9.8","description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","directories":{},"maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","systray2":"^2.1.4","playwright":"^1.56.0","@modelcontextprotocol/sdk":"^1.19.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/local-bridge_0.12.6_1789349244714_0.9869914992747011"}}},"time":{"created":"2026-07-19T06:02:25.504Z","modified":"2026-09-14T01:27:25.120Z","0.1.0":"2026-07-19T06:02:25.793Z","0.2.1":"2026-07-19T10:29:50.574Z","0.3.0":"2026-07-19T11:15:25.639Z","0.4.0":"2026-07-19T11:21:09.346Z","0.4.1":"2026-07-19T11:52:44.236Z","0.5.0":"2026-07-19T17:25:17.767Z","0.6.0":"2026-07-20T17:08:00.412Z","0.6.1":"2026-07-21T01:19:51.873Z","0.6.2":"2026-07-21T01:31:46.635Z","0.7.0":"2026-07-21T02:28:34.007Z","0.7.1":"2026-07-22T03:01:27.838Z","0.7.2":"2026-07-22T11:40:09.013Z","0.7.3":"2026-07-22T12:09:25.844Z","0.7.4":"2026-07-22T15:18:12.075Z","0.8.0":"2026-07-23T11:30:05.061Z","0.8.1":"2026-07-23T11:43:13.456Z","0.9.0":"2026-07-23T12:44:56.890Z","0.9.1":"2026-07-23T13:58:03.501Z","0.9.2":"2026-07-23T14:20:01.697Z","0.10.0":"2026-07-26T05:58:28.331Z","0.10.1":"2026-07-26T07:53:02.098Z","0.7.5":"2026-07-28T15:18:36.599Z","0.10.2":"2026-07-28T15:24:50.811Z","0.10.3":"2026-07-28T15:59:09.176Z","0.10.5":"2026-08-05T16:05:01.235Z","0.11.0":"2026-08-31T04:31:30.412Z","0.11.1":"2026-08-31T08:49:49.525Z","0.11.2":"2026-09-01T12:24:54.104Z","0.11.3":"2026-09-01T12:27:40.146Z","0.11.4":"2026-09-02T01:40:42.521Z","0.12.0":"2026-09-09T15:05:22.999Z","0.12.1":"2026-09-09T16:07:28.943Z","0.12.2":"2026-09-09T16:14:41.917Z","0.12.3":"2026-09-09T16:24:27.266Z","0.12.4":"2026-09-09T16:30:25.422Z","0.12.5":"2026-09-13T15:51:10.642Z","0.12.6":"2026-09-14T01:27:24.807Z"},"bugs":{"url":"https://github.com/tianshu-ai/local-bridge/issues"},"license":"Apache-2.0","homepage":"https://github.com/tianshu-ai/local-bridge#readme","repository":{"url":"git+https://github.com/tianshu-ai/local-bridge.git","type":"git"},"description":"Local bridge for tianshu — dial into a tianshu server over WebSocket and expose your machine's tools (browser, files, shell) to the agent via reverse-MCP.","maintainers":[{"name":"yv200","email":"ltjsjyyy@163.com"}],"readme":"# local-bridge\n\n`@tianshu-ai/local-bridge` — a lightweight local client that connects\nyour machine's tools (browser, and more) into a\n[tianshu](https://github.com/tianshu-ai/tianshu) server via\n**reverse-MCP**.\n\ntianshu runs on a server. This bridge runs on **your** computer, dials\nout to the server over a WebSocket, and registers itself as an MCP\nserver. The server-side agent can then drive your local tools — as if\nthey were built in — but scoped to your own sessions only.\n\n```\nyour machine                         tianshu server\n┌──────────────┐   outbound WSS    ┌──────────────────┐\n│ local-bridge │ ────────────────▶ │ /ws (Local Bridge │\n│  • browser   │   register tools  │   plugin)         │\n│    tools     │ ◀──── tools/call ─│   → agent uses    │\n└──────────────┘ ──── result ─────▶ │     your tools    │\n                                    └──────────────────┘\n```\n\n## Install & run\n\nInstall globally, then use the short `tsbridge` command:\n\n```bash\nnpm i -g @tianshu-ai/local-bridge\ntsbridge --server wss://your-tianshu.example.com/ws --token ***\n```\n\nOr run one-off with `npx` (no install):\n\n```bash\nnpx @tianshu-ai/local-bridge --server wss://your-tianshu.example.com/ws --token ***\n```\n\nThe **Local Bridge** panel in tianshu shows a ready-to-copy command with\nyour server URL + token filled in.\n\n### macOS menu-bar app\n\nPrefer a UI? Build a tiny native menu-bar app (no Electron) that wraps\nthe CLI — a menu-bar icon with Start/Stop + Settings (server / token /\nbrowser engine / headless):\n\n```bash\nnpm i -g @tianshu-ai/local-bridge\ntsbridge install-app --run\n```\n\nThat installs `Tianshu Bridge.app` to `~/Applications` (menu-bar only, no\nDock icon) and launches it. Click the bolt icon → Settings to configure,\nthen Start. Requires Xcode command line tools (`xcode-select --install`)\nfor the one-time `swiftc` build. First launch: right-click → Open\n(unsigned local build).\n\n(`app/install-app.sh` is also available for a clone-based build.)\n\nFor a local dev server with auth off, the token is optional:\n\n```bash\ntsbridge --server ws://localhost:3110/ws\n```\n\n> The `tsbridge` and `tianshu-local-bridge` commands are equivalent.\n\n### Keeping it updated\n\n```bash\ntsbridge update            # update to the latest version if newer (default)\ntsbridge update --check    # just check; exit 1 if an update is available\ntsbridge update --dry-run  # print the npm command without running it\ntsbridge update --tag next # target a non-`latest` dist-tag\ntsbridge version           # print the installed version\n```\n\n(Same semantics as `tianshu update`.)\n\n### Flags\n\n| flag | meaning |\n|---|---|\n| `--server <url>` | tianshu chat WS endpoint (required), e.g. `wss://host/ws` |\n| `--token <token>` | connection token from the Local Bridge panel |\n| `--device <id>` | stable device id (default: hostname) |\n| `--label <name>` | human label shown in the panel |\n| `--no-browser` | don't expose browser tools |\n| `--shell` | expose the shell exec + file sync tools (OFF by default) |\n| `--shell-root <dir>` | fixed root dir that jails `exec` + `sync_up`/`sync_down` (default: `~/.tianshu_shell`) |\n| `--headless` | run the browser without a window (default: headful) |\n| `--cdp <url>` | connect to an already-running Chrome's CDP endpoint (default probe `http://127.0.0.1:9222`; `off` to skip) |\n| `--chrome-channel <ch>` | which installed browser to launch: `chrome` (default), `msedge`, … |\n| `--user-data-dir <dir>` | reuse a Chrome profile dir so logins carry over |\n\n**No Chromium download.** The bridge uses *your* Chrome:\n\n1. If a Chrome is already running with `--remote-debugging-port=9222`,\n   it connects to that (your real browser — real cookies + session).\n2. Otherwise it launches your system-installed Google Chrome via\n   Playwright's `channel: \"chrome\"`. Pass `--user-data-dir` to reuse\n   your logged-in profile.\n\nTo expose your everyday browser, start Chrome with a debugging port:\n\n```bash\n# macOS\n\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\" --remote-debugging-port=9222\n```\n\n## Tools\n\nBoth engines expose the **full Playwright-MCP toolset** (navigate,\nsnapshot, click, type, fill_form, evaluate, tabs, screenshot, …). Only\nthe underlying browser differs:\n\n- **own** — `@playwright/mcp` pointed at *your* Chrome: connects over CDP\n  to a Chrome already running with `--remote-debugging-port`, else\n  launches your system Chrome (`--browser chrome`). Real cookies +\n  fingerprint, no Chromium download.\n- **stealth** — `cloakbrowser-mcp`: the same toolset on CloakBrowser\n  stealth Chromium (source-level anti-bot-detection patches).\n\n### Shell + file sync\n\nWhen `--shell` is passed, the bridge also exposes three **native**\ntools that run directly on your machine. Their names, parameters and\nresult shapes mirror tianshu's server-side `openshell` plugin, so an\nagent written against openshell works unchanged against a bridge device.\n\n**All three are jailed to a single fixed root directory**\n(`~/.tianshu_shell` by default, override with `--shell-root`). `exec`'s\ncwd + `workdir`, `sync_up`'s read base, and `sync_down`'s write dest all\nresolve *inside* that root; any path that escapes it is rejected.\n\n- **`exec`** — run a shell command via `bash -c`, cwd inside the root.\n  Params: `command`, optional `workdir` (relative to the root, defaults\n  to the root itself), optional `timeout_ms` (default 300s, cap 1800s).\n  Output is truncated at 200 lines / 8000 bytes per stream. Returns\n  `{ ok, exit_code, stdout, stderr, truncated, duration_ms, timed_out }`.\n- **`sync_up`** — read files/dirs under the root and return their bytes\n  (base64) *up* to the agent. Params: `paths[]` (relative to the root,\n  directories walked recursively). Per-file cap 8 MiB, ≤500 files/call.\n- **`sync_down`** — receive files (base64) from the agent and write them\n  *down* under the root. Params: `files: [{ path, base64 }]`. Parent\n  dirs are created; existing files overwritten.\n\nTransport is base64-in-args over the existing reverse-MCP `tools/call`\nchannel — no protocol changes.\n\n> **Security:** `exec` runs commands with your user's permissions, but\n> is confined to the `--shell-root` directory (default `~/.tianshu_shell`)\n> — the agent can't `cd` or read/write outside it via these tools. It is\n> not a kernel sandbox (a determined command could still reach the wider\n> fs), so only connect a bridge to a tianshu server you trust. Because of\n> this, shell is **off by default** — add `--shell` only when you want the\n> agent to run commands + move files on your machine.\n\n## Protocol\n\nThe bridge speaks the reverse-MCP protocol defined authoritatively in the\nserver repo: `plugins/reverse-mcp/PROTOCOL.md`. It's a thin envelope\naround standard MCP JSON-RPC over the authenticated chat WebSocket. This\nclient imports no tianshu package.\n\n## Develop\n\n```bash\nnpm install\nnpm run build\nnode dist/index.js --server ws://localhost:3110/ws --no-browser\n```\n\nRepo: <https://github.com/tianshu-ai/local-bridge>\n\nApache-2.0.\n","readmeFilename":"README.md"}