{"_id":"@openclaw/proxyline","_rev":"19-18578bea2f44309ee0ee205642225034","name":"@openclaw/proxyline","dist-tags":{"latest":"0.4.1","legacy":"0.3.14"},"versions":{"0.1.0":{"name":"@openclaw/proxyline","version":"0.1.0","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.1.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"dec665c14f8d0e7070226bb5ea2d4da42a0253fb","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.1.0.tgz","fileCount":13,"integrity":"sha512-W5chXWZXmI3vxrB3L4AoHH0r6bAVDyqiFzhNpS4KQI7Q76jR4XggKmNlG5RP4z0tEVvYTIc9WBA3u2THkSKzSA==","signatures":[{"sig":"MEUCIQCC5EE9z+SXHXOkIb7fsWWWwhS+S7dJUUGJumGEAuQspQIgfsgEkc6YA7fukjP+HbAT49o6KQeQS0T5xmsTQgTYwaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41363},"type":"module","_from":"file:openclaw-proxyline-0.1.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"tsx --test test/index.test.ts test/e2e.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm typecheck && pnpm test && pnpm build","typecheck":"tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/private/var/folders/qp/t4t5pw1n1279_1qckf4gqhyc0000gn/T/1ed501f589be5837c85985840aac1944/openclaw-proxyline-0.1.0.tgz","_integrity":"sha512-W5chXWZXmI3vxrB3L4AoHH0r6bAVDyqiFzhNpS4KQI7Q76jR4XggKmNlG5RP4z0tEVvYTIc9WBA3u2THkSKzSA==","repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.11.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"undici":"^7.25.0","proxy-agent":"^8.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.20.0","tsx":"^4.21.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^20.19.25"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.1.0_1778487594396_0.5139464371195113","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@openclaw/proxyline","version":"0.2.0","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.2.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"a507cc73941213e3904b4dbbe6896b2289f201e2","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.2.0.tgz","fileCount":25,"integrity":"sha512-puZtDMshL/ikWQPXq6GPYT5z3994m++Rp1mMs3Kw4/J1xaAeAlCkBH21n2DhTDdWiLwAbpeFqV3OL3jfwv99EQ==","signatures":[{"sig":"MEUCIQCbvYbOALGZpHeWnQwVkYl1Crw9LXor4IYnOckzTBCvTgIgLJi5fRiowlnWpAaYZHOKAZElX1qFzilyKKErQYqBPyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88029},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"52320f5f6b47186f56e5b91ab432092c40313c48","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run","prepack":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","coverage:run":"node scripts/run-coverage.mjs","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.11.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"undici":"^7.25.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"ws":"^8.20.0","tsx":"^4.21.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^20.19.40"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.2.0_1778777939967_0.10430872208157993","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@openclaw/proxyline","version":"0.3.0","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"39c3ed0ecb6d0d7aefb26166791281da161fecae","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.0.tgz","fileCount":28,"integrity":"sha512-+18F9jk948+qK70V63Nfiu4odfvdf+0T9qyKyzylmt1WLYGTtLLo88pLgtS+vN5CORJyCuC56Rdswkws5VsEig==","signatures":[{"sig":"MEUCIFqfQmG9CnG9x/fBUQ2PDZPoV2vpEQe3w45QiokalfyyAiEAtKqVQVnHli3XGiM0/2sfeBzlfghdh+9p0Ta2y3dakuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97596},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"73b5481ffbae25e0fde6b181601d903633320a1b","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","coverage:run":"node scripts/run-coverage.mjs","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.11.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"25.8.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"ws":"^8.20.0","tsx":"^4.21.0","undici":"^7.25.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^20.19.40"},"peerDependencies":{"undici":">=7.25.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.0_1778880113022_0.9439594963627223","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@openclaw/proxyline","version":"0.3.1","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"d3057271a8ad112aef57fe361225fa1f43d9a016","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.1.tgz","fileCount":52,"integrity":"sha512-mqoaf8fTDezNHUO5WOsp6dxNFI5wNK6GB/cU42ha8ihHzIP86MBmHozsLxNqxwCPXidsj68SxYjOWUIloGNctA==","signatures":[{"sig":"MEYCIQD3+FgU4GRg7Oj6aEX+OuaZ8RTsDiVlOGKiR1IlLax2KwIhAKYh5gks3L5ejwQSyiaWH29rtAbXfnCBjPZpVoszmhIF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231221},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"bb587534207afc9d6d8b255236ab458edd646a9c","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","coverage:run":"node scripts/run-coverage.mjs","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.11.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"25.8.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"ws":"^8.20.0","tsx":"^4.21.0","undici":"^7.25.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^20.19.40"},"peerDependencies":{"undici":">=7.25.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.1_1778967741682_0.20532246605141014","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@openclaw/proxyline","version":"0.3.2","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"40071149f9e5edbed6da6b8ab51d0b5b6e3ca863","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.2.tgz","fileCount":52,"integrity":"sha512-AHW1hsqbpEJjrzzVdP5TXqHG4j3zmWU5qkPp0rvrGq3vEdbdwNuvAsmfQF0PhJ9ARR7IoS5mKxmD6von3GnAkQ==","signatures":[{"sig":"MEUCIESnjV1DhvmPVWxFEs8+D/9b144yYml33eCk6JfSqBSjAiEArNHzdidOmlnlD5DGfP5gaUe2MVbZJ07nVQigkoVn6+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234029},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"4de5257986f01c72625def07686a5479bd2a9bb3","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","coverage:run":"node scripts/run-coverage.mjs","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.11.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"25.8.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"ws":"^8.20.0","tsx":"^4.21.0","undici":"^7.25.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^20.19.40"},"peerDependencies":{"undici":">=7.25.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.2_1778991167745_0.9855791360395407","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@openclaw/proxyline","version":"0.3.3","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"9e5994ee56a345d12b024bb8d5265958d93d1f52","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.3.tgz","fileCount":52,"integrity":"sha512-sftHnW69NHQqLjCxBTvQ8f/eQl+peZ5pHCBQtuTWBbeuYRHZ0/GXVTmw/O/YKsShMbqPWhJB0UYtPPdvCUSS8w==","signatures":[{"sig":"MEUCIH8rwEU1dupv0Q1WuqhLVQG71UoJfmn3PbMBYK3h5KhHAiEAzySLiHiVPwAnHHxgkODzGhfEuWteOk7MRu6KLFfv1ig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236180},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"8430d51d183bb8a25c4d5acd91e185a3f2ce824a","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","coverage:run":"node scripts/run-coverage.mjs","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.11.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"25.8.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.2","devDependencies":{"ws":"8.20.1","tsx":"4.22.1","undici":"8.3.0","@types/ws":"8.18.1","typescript":"6.0.3","@types/node":"25.8.0"},"peerDependencies":{"undici":">=8.3.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.3_1779083817521_0.38895269503692864","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@openclaw/proxyline","version":"0.3.4","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.4","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"d24487d28616ada0440502deafe48e8e355a29ea","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.4.tgz","fileCount":52,"integrity":"sha512-WuLE282PW7vLienDNFTjdSI/BCYDAepvr5siOTYABQhqFo8qbP9MgmJzZnwmskUqiYugGzle6gvaRbJTkwbZ8A==","signatures":[{"sig":"MEYCIQCpusWUb7HRKk0mCOu2RRxPU2UfC2czTPKxxIiNKglzVQIhAIY2AqnXTk6WNT0lrw72hlwx/F7SOgzmzYk6KRyxF+xM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240719},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.17.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.9.0","devDependencies":{"ws":"8.21.0","tsx":"4.23.0","undici":"8.6.0","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.1.1"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.4_1784603680278_0.5900164358225386","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@openclaw/proxyline","version":"0.3.5","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.5","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"16edd609d440f3f6488c47c65d4d8f4c6b4238e7","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.5.tgz","fileCount":52,"integrity":"sha512-5Ca8uMRvGbcqVGmKgkTjjsaNQ4OD4E60p6pmzbGeso1m5Zp8kUpOdsE0BVyINH+Coml0ZoNZzpdb6Zs1pqDakQ==","signatures":[{"sig":"MEUCICXJdPyiWbZ0wfZ3xW2MFEjr8+Z4hjhOyrUGx9smFsk4AiEA1dI56dZr7jCkhWRoMZksUSc1RgzxsPY5CWmt3ks2gp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH7VLNUzT9WcWAbgQpnZ2YHhHHGH1VibG3qWQi4J6G6NAiEAgXJXDsXg44dtjr3ufb0/mJM1GJ9bG5Snkw0b2IHBNg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243509},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.16.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.18.0","devDependencies":{"ws":"8.21.1","tsx":"4.23.1","undici":"8.9.0","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.1.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.5_1785634027507_0.7502426846742116","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@openclaw/proxyline","version":"0.3.6","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.6","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"3ae3fd06d3a9fd8e3d14f43f74f2dd11befc431b","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.6.tgz","fileCount":52,"integrity":"sha512-YmblHCT7tmMhrwhloLWR/wmthWyySEBgnmKWFqCGU+qUP0puMaYka1fCMx0vYfM3DG+DS4+ZJonG2pYx86sLQA==","signatures":[{"sig":"MEYCIQD2PzqDO2PYNaHjilX19baUTPsmKvrkgGBK4CyK3AeSngIhAO+JRAaC/tghlyP+JS6NSHwZCz3pvWvOVxGhIddGnKhO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICkZOJ+MdYOgvW2GN5Kl1Fqa3ASjfAMElcdHDULxcq0KAiEA5m7RKaTdmqkeorDHEAX96StAl7FhmL0QSNHjhN5nEOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243856},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"a9061fb63f6e7582d1409edb304496a1c2d0d545","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"11.19.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"22.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.18.0","devDependencies":{"ws":"8.21.1","tsx":"4.23.1","undici":"8.9.0","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.1.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.6_1785731122651_0.864667538965205","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@openclaw/proxyline","version":"0.3.7","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.7","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"3adb1437860d1c0f22b1c230988420ef2cc90f20","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.7.tgz","fileCount":52,"integrity":"sha512-RWkt4mPcBOj7E8euyeqynkIFXvEIxVStYH0YHDC08feq5qFyBXGmfdWC+MTMVJXfHN2ituoxLlrIyjpyJpW7ew==","signatures":[{"sig":"MEQCIC26hk8dcdkIXY0QZrjk7JhRn55xbHwmIb3p/HLIEDDGAiAjEo0QYoLBcHqqj1IKexFzOESu7FlxUQK7iG4Ei8ixGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCL/LBvwSM2ACS1KCPrT3AwQem9vzTu2XpCQlbnaX6kDgIgRQ3m4BwKkxIj0lxeHuOuIpT2FWBTYFZy/pp7vucmktI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":245981},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"d9ec65d39be3bff27f7dbf5ef2921962afd05dfd","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.0.2","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.20.0","devDependencies":{"ws":"8.21.1","tsx":"4.23.5","undici":"8.10.0","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.1.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.7_1785947737295_0.9879209710237842","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@openclaw/proxyline","version":"0.3.8","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.8","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"b79d343541d611ba0e59d9fef13d580768222c1a","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.8.tgz","fileCount":52,"integrity":"sha512-+2yTPsOD/+iyqd55RyFgxkKX5XbejvRgTSZbh0erxIj16pBPgB2tk+/u5hDN6rvd6USNWDnFcAScsAbloTw7SA==","signatures":[{"sig":"MEUCIELvfQyyUFM/2opAzGwOuPd1/lPeNj2m8mB4oKbQLY6CAiEA2rb03TSVldI+BquDyExiA7+Ih9xUnAqSFrieMWEEWN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEkcMlb3XEH0ct130wAkjJXeobLe4pZfLG4H8eNw89HwAiEAjTCTlCb8Oi9dFRUCkWoW8BPH0rCKa10YZuspkS+zBD8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":260170},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"8331ad77d4327a438fb16c8cf7e2be05a4bdfdb2","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.0.2","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.21.0","devDependencies":{"ws":"8.21.3","tsx":"4.23.12","undici":"8.10.0","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.2.0"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.8_1788162075078_0.1228182235044224","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@openclaw/proxyline","version":"0.3.9","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.9","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"003de7d244323bc303749a780cd1bbb0d767fa4f","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.9.tgz","fileCount":52,"integrity":"sha512-H+Fq+sssfzzkgrpeo06bvXiPm55iSIESKFRND7ky2hI0yHGhZl08lCoa77Ses6leUSPmVP7mf0+dXM0bB79nYQ==","signatures":[{"sig":"MEUCIQCjnDKEszNCZmCst7j0seLix3mq085iUaaN6AnW441vxAIgUXpoqvXX3fdmmNUlqZL/XxpInjIfFiGUcJPHImmbRSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEemC7m+uxdj9rZi431N1krjNOEcdethfoFiNbro5kXgAiEA466UK7E2oEEBSELSC8MGzEFlI18nm+c5zcnlydWPX6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262620},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"f75d1e763a071fea4fdab0471f08a76af93c345a","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.0.2","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.25.0","devDependencies":{"ws":"8.21.3","tsx":"4.23.13","undici":"8.10.1","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.4.1"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.9_1788633096892_0.22468574109793726","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@openclaw/proxyline","version":"0.3.10","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.10","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"e398c7d52fd93e06341c885ef0ad19a4a0be4e04","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.10.tgz","fileCount":52,"integrity":"sha512-k/BRhrefE7kbVnGKokAGt7PjwDxZVMpM3IgkUahpwZ7gm9Emri3PyimhEk5WLkBTL7gdiBoHyP7oTQEhOPIZkQ==","signatures":[{"sig":"MEYCIQCIndqXTEw/X8PDRnDxXzHy+McGi3ZEO7d7S6CngkjrLQIhAPZBBjie5jLx+bvig7/ltvUihmrq+VPQmRyh8bcFlVaf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICTezvCeDJvrpQX63yU6l2u7KtYey/mVezhpIWblzCIBAiEA3CBvTXvccCr1SUipdZ6QvYfNyP0kwErjw0Y8PkLct20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263622},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"c6e79655ca1d7d33e6fd03385783a4f93f3f3d4c","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.0.2","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.25.0","devDependencies":{"ws":"8.21.3","tsx":"4.23.13","undici":"8.10.1","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.4.1"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.10_1788722340854_0.11657535642786976","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@openclaw/proxyline","version":"0.3.11","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.11","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"1d0b5f8f3d51404bba1fcbe41775e3c3380ae084","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.11.tgz","fileCount":52,"integrity":"sha512-XDlrrQE0fapfTpqCBK9WB+U4W+/0lsrRIXI2nZ74W/lWMF+X4T5t2dfj8Ms250Th4qjnNi6WuSX5OZJqyLoZ3g==","signatures":[{"sig":"MEUCIQCVPZz8CQLRPO9EEFl5qJLX/gZT0GG6LuW50mCIcLZy+gIgfQ/JsMGzeiHABX7NZiBQUabAm/IeFYGaQEw+ZFXf/h4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCFFQwxFLrq+rvwrSBFpoI+dtAmue///6sKEQ5/UdL5dAIgHcy6hDWzBRPLVMV2jjbOzttzfvlDb0ntrnoSGwnMHQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263722},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"a8dafd8d6a146763898e027b1473862fc37380b0","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.0.2","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.25.0","devDependencies":{"ws":"8.21.3","tsx":"4.23.13","undici":"8.10.1","esbuild":"0.28.2","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.4.1"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.11_1788727812276_0.3133149205739181","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@openclaw/proxyline","version":"0.3.12","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.12","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"d8475b817d54196539bf1a1b44a77b2aa63db922","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.12.tgz","fileCount":56,"integrity":"sha512-KPUvtLgORF0NWxiuUPwHBuxYhUsFgxnOm8+XkDR0on236lnfMF44A5BnOvBkeDV8wrBaGHs/rQ8kt1tB4WNhmw==","signatures":[{"sig":"MEUCIQC05o36xsK//O4AFJCiMFSosYGbLOq0kMs5ALpCkboVXAIgTgFFQCJin3/VtD+YhumoUT2pJtP+5/uZ3KGY3VGLd0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCw+543glIyXVSnPJyteBuZhJSdvC94gBqMueCy0gp90QIgX+Fw8b6HLiEpEQGcBBZ1ceJPWLaqdhizTMQcMIj5XRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":271004},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"46a8aa2e3c4b8fbed5fc3ccc16a4631cb7ca3d24","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.0.2","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.25.0","devDependencies":{"ws":"8.21.3","tsx":"4.23.13","undici":"8.10.2","esbuild":"0.28.2","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.4.1"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.12_1788862068861_0.33520451591131173","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@openclaw/proxyline","version":"0.3.13","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.13","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"85161a76a89ba11cefea05c3a2e171f361d833bc","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.13.tgz","fileCount":56,"integrity":"sha512-PiwM9IKehlTVl+8F1Fd2kQ1lgcXvBwD8Q7wZaPmNHnTOnY3178sKkIa7a+hkG84po8HKeVHuKyjgZMcTlhJpoA==","signatures":[{"sig":"MEYCIQCIz5akLetq0MhN1jkg5IHFmZ7T7Xhqkl5r/L2lNV8NmQIhALHAD59VyKQDD3THQEiLWDG27J/3x8XsQE2VawxHxnGs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBsn5rBN5AQmxQGahuKC1AhRzv4kMUiNslecjr1XmnGhAiEA7RYxzfjRrYz7HYkaGn6tsCqRpBbdY1wrtypnElOrXzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":272961},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"341f54fccd77b8a13783f93aa35d38e4ac15f3b9","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.1.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.1","devDependencies":{"ws":"8.21.3","tsx":"4.23.15","undici":"8.10.2","esbuild":"0.28.2","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.6.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.13_1790144461717_0.6226760484782987","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@openclaw/proxyline","version":"0.4.0","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.4.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"bf3dab79894c16f1b7871ba6b4bc6d6c78b0b55c","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.4.0.tgz","fileCount":56,"integrity":"sha512-Yd32LmKmu1kHrc7Wt8OHK0z+Tjc52fOfWYHl2znIGqskPrC/YaIKUgrhG4x7/oAemGMwBWHf3Eb3iaMKpZ/otg==","signatures":[{"sig":"MEQCIF3qaOO4B2r8mbcOTYcFdNFVdpfmVcEtzAplkhOlodgUAiA56Vvnb8Xjg9TXWvIGYlgVGdi0tAhK94Hb/t7uNmY6vA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBzd7j5A/Mg5stkZQjUD1E45AvX32LWD7FnEfhU9R63aAiAqNp/1qa8oXpeSijwE5elikctP5xdwYJAc3ScHApVlmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":273188},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"bd1dc26bb1e63c9a676e82525e7125d1702ecf6f","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.1.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.1","devDependencies":{"ws":"8.21.3","tsx":"4.23.15","undici":"8.10.2","esbuild":"0.28.2","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.6.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.4.0_1790842757759_0.7512624579734173","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"@openclaw/proxyline","version":"0.3.14","author":{"name":"Jesse Merhi"},"license":"MIT","_id":"@openclaw/proxyline@0.3.14","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"homepage":"https://proxyline.dev","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"41c7f95b047e4d1091f231d3bf27da72afee9fe8","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.3.14.tgz","fileCount":56,"integrity":"sha512-rr7G+/QFXFyy1xHXWs8C/JctWqr06tcQdh00TpcOLOcuazrVEnAAUWVRD21lHKZDDXoUCGJaIVUvzkg130edww==","signatures":[{"sig":"MEUCIDn6w/PwC4g3rZGD1z4Vxf80Vcswt/lvlLF1ABG71l/xAiEA4Vo0HGCc8iVv8Nr8B6UmbpKiw+JomcuuGuS0Q7s0aEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA7lKbHpOyUpGQrPQ1r0E80k0PYKNoQ29kgJ6pEMBo0lAiBEARFDfy0i0aLcesO5H4OqrHWBfovm4ryXWQw00U5ilg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.3.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":273228},"type":"module","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"5918a97ca708a4f801572197a3dda945798e466a","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.1.0","description":"Process-global proxy routing for Node.js.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.1","readmeFilename":"README.md","devDependencies":{"ws":"8.21.3","tsx":"4.23.15","undici":"8.10.2","esbuild":"0.28.2","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.6.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"tmp":"tmp/proxyline_0.3.14_1790863766367_0.8796551646293875","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@openclaw/proxyline@0.4.1","bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"dist":{"shasum":"f72726d10b0574744b3187ea6f83a3e3089a9d6a","tarball":"https://registry.npmjs.org/@openclaw/proxyline/-/proxyline-0.4.1.tgz","fileCount":56,"integrity":"sha512-sD4iLgOdRu6H1jMtRpFAb+fzJrrrM5WO/ojX+vNtR+si9WLuxWKFNjluBTTK6ea75x4BAAoswCF5YGUZKqW3vQ==","signatures":[{"sig":"MEUCIQD1C7pOPHtS00H/vhkwjbgJzmObhZRc+a9qlaXXzRsBjwIgVi3ahGNf3xWnMwuUtbhPKD/d7f/QiCC87E8UQ4cJuBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC6JXZ58XiV6DecIwUFVidsacbFYM9LRvT4/S2dXevzYQIgcVTSce7ecytOYiPa2WElk+TvkfQsUoK7EoupwfDIPvE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openclaw%2fproxyline@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":274644},"name":"@openclaw/proxyline","type":"module","author":{"name":"Jesse Merhi"},"engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dispatcher-brand":{"types":"./dist/dispatcher-brand.d.ts","default":"./dist/dispatcher-brand.js"}},"gitHead":"e5e9a7f3fb8059a38e60c59f6f8757f79878aded","license":"MIT","scripts":{"test":"pnpm build && tsx --test test/index.test.ts test/e2e.test.ts test/socket-path.test.ts test/package.test.ts test/scripts.test.ts && tsx --test test/package-artifact.test.ts","build":"tsc -p tsconfig.build.json","check":"pnpm build && tsc --noEmit && pnpm coverage:run && tsx --test test/package-artifact.test.ts","prepack":"node scripts/prepack-build.mjs","prepare":"node scripts/prepack-build.mjs","coverage":"pnpm build && pnpm coverage:run","typecheck":"pnpm build && tsc --noEmit","docs:build":"node scripts/build-docs-site.mjs","crabbox:run":"crabbox run","coverage:run":"node scripts/run-coverage.mjs","crabbox:stop":"crabbox stop","test:changed":"pnpm run test","check:changed":"pnpm run check","crabbox:warmup":"crabbox warmup","crabbox:hydrate":"crabbox actions hydrate","package:dry-run":"pnpm pack --dry-run","publish:dry-run":"pnpm publish --dry-run --access public"},"version":"0.4.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"66fe02ed-92c9-4db5-bef8-2a0b81a5a8b7"}},"homepage":"https://proxyline.dev","repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"_npmVersion":"12.1.0","description":"Process-global proxy routing for Node.js.","directories":{},"maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"_nodeVersion":"24.22.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.27.1","devDependencies":{"ws":"8.21.3","tsx":"4.23.15","undici":"8.10.2","esbuild":"0.28.2","@types/ws":"8.18.1","typescript":"^7.0.2","@types/node":"26.6.2"},"peerDependencies":{"undici":">=8.5.0 <9"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/proxyline_0.4.1_1792783105348_0.6244612441870501"}}},"time":{"created":"2026-05-11T08:19:54.278Z","modified":"2026-10-23T19:18:25.939Z","0.1.0":"2026-05-11T08:19:54.562Z","0.2.0":"2026-05-14T16:59:00.102Z","0.3.0":"2026-05-15T21:21:53.171Z","0.3.1":"2026-05-16T21:42:21.822Z","0.3.2":"2026-05-17T04:12:47.915Z","0.3.3":"2026-05-18T05:56:57.702Z","0.3.4":"2026-07-21T03:14:40.411Z","0.3.5":"2026-08-02T01:27:07.601Z","0.3.6":"2026-08-03T04:25:22.735Z","0.3.7":"2026-08-05T16:35:37.379Z","0.3.8":"2026-08-31T07:41:15.169Z","0.3.9":"2026-09-05T18:31:36.977Z","0.3.10":"2026-09-06T19:19:00.942Z","0.3.11":"2026-09-06T20:50:12.378Z","0.3.12":"2026-09-08T10:07:48.987Z","0.3.13":"2026-09-23T06:21:01.798Z","0.4.0":"2026-10-01T08:19:17.847Z","0.3.14":"2026-10-01T14:09:26.469Z","0.4.1":"2026-10-23T19:18:25.492Z"},"bugs":{"url":"https://github.com/openclaw/proxyline/issues"},"author":{"name":"Jesse Merhi"},"license":"MIT","homepage":"https://proxyline.dev","repository":{"url":"git+https://github.com/openclaw/proxyline.git","type":"git"},"description":"Process-global proxy routing for Node.js.","maintainers":[{"name":"steipete","email":"steipete@gmail.com"},{"name":"vincentkoc","email":"vincentkoc@ieee.org"}],"readme":"# Proxyline 🌐 — Keep every Node request in line.\n\n[![CI](https://img.shields.io/github/actions/workflow/status/openclaw/proxyline/ci.yml?branch=main&style=flat-square&label=ci)](https://github.com/openclaw/proxyline/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/%40openclaw%2Fproxyline?style=flat-square)](https://www.npmjs.com/package/@openclaw/proxyline)\n[![Node.js](https://img.shields.io/node/v/%40openclaw%2Fproxyline?style=flat-square)](https://nodejs.org/)\n[![License](https://img.shields.io/github/license/openclaw/proxyline?style=flat-square)](./LICENSE)\n\n![Proxyline banner](docs/assets/readme-banner.jpg)\n\nProxyline installs one process-wide proxy policy across Node's built-in HTTP(S) clients, global fetch and Undici, compatible WebSocket clients, and explicit CONNECT tunnels. It is for Node applications that need one runtime to enforce proxy routing, explain its decisions, and restore the original networking globals.\n\nDocumentation is available at [proxyline.dev](https://proxyline.dev).\n\n## Install\n\n```sh\npnpm add @openclaw/proxyline undici@^8.5.0\n```\n\nOr with npm:\n\n```sh\nnpm install @openclaw/proxyline undici@^8.5.0\n```\n\nProxyline requires Node.js 22.19.0 or newer and a host `undici` version in the `>=8.5.0 <9` range. The package is ESM-only and includes TypeScript declarations.\n\nProxyline imports the installed Undici peer entrypoint explicitly, including when loaded under Bun, so its fetch classes and dispatcher cleanup use the same implementation. The static import also lets Node-targeted bundlers include that peer in standalone output.\n\n## Quick start\n\nSave this as `proxy.mjs`:\n\n```js\nimport { installGlobalProxy } from \"@openclaw/proxyline\";\n\nconst proxy = installGlobalProxy({\n  mode: \"managed\",\n  proxyUrl: \"http://127.0.0.1:3128\",\n});\nconsole.log(proxy.explain(\"https://api.example.com/\").reason);\nproxy.stop();\n```\n\n```sh\nnode proxy.mjs\n# managed-proxy-active\n```\n\nThis asks Proxyline for a routing decision without connecting to the placeholder proxy. Install Proxyline before loading application or plugin code that may capture networking functions.\n\n## Choose a mode\n\nProxyline has two explicit routing modes:\n\n| Mode | Configuration | Direct traffic |\n| --- | --- | --- |\n| `managed` | A required `proxyUrl` in code | Only through `bypassPolicy`, `registerBypass()`, or `withBypass()` |\n| `ambient` | `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, and `NO_PROXY` | Whenever the environment has no matching proxy |\n\nManaged mode fails during setup when its proxy configuration is missing or unsupported. Ambient mode reads the environment once at installation and stays inactive when no supported HTTP or HTTPS proxy is configured. See [Modes](./docs/modes.md) and [Environment Variables](./docs/environment-variables.md) for the complete rules.\n\n## Covered traffic\n\n| Surface | How Proxyline applies the policy |\n| --- | --- |\n| `node:http` and `node:https` | Patches request methods and replaces global and caller-supplied agents |\n| Global fetch and Undici | Installs a global dispatcher and a compatible fetch stack |\n| WebSocket clients | Supplies `proxy.createWebSocketAgent()` for clients that accept a Node agent |\n| Explicit tunnels | Supplies `openProxyConnectTunnel()` for callers that need the connected socket |\n\n`proxy.createNodeAgent()` and `proxy.createUndiciDispatcher()` expose the same policy to libraries that accept an agent or dispatcher directly. The [surface guide](./docs/surfaces.md) describes ownership, TLS preservation, and cleanup for each API.\n\n## Bypasses and proxy trust\n\nManaged mode supports deliberate direct-routing exceptions. A `bypassPolicy` handles installation-time policy, `registerBypass()` registers an exact process-wide exception, and `withBypass()` limits an exception to one async context. Each decision remains visible through `explain()`.\n\nFor an HTTPS proxy with a private CA, use `proxyTls.ca` or `proxyTls.caFile`. That trust applies only to the proxy connection; destination TLS validation remains separate. See [Proxy TLS](./docs/proxy-tls.md).\n\nStandalone Node helper agents support prepared DNS lookups and proxy client certificates through `createAmbientNodeProxyAgent({ resolveProxyConnectOptions })`. Raw CONNECT callers pass the same controls through `proxyConnect`. The selected proxy URL retains ownership of the connection host and port. See [the connection controls](./docs/api-reference.md#proxyconnectoptions).\n\n## Observability and lifecycle\n\n`proxy.explain(url)` reports `proxied` or `direct`, the reason, the surface, and a credential-redacted proxy URL when one applies. The optional `onEvent` callback receives installation, shutdown, and decision events.\n\nOnly one Proxyline runtime is active in a process. A second installation fails by default; `ifActive` can reuse a compatible runtime or replace it intentionally. `proxy.stop()` restores the captured Node HTTP(S) methods, global agents, Undici dispatcher, and fetch globals. See [Observability](./docs/observability.md) and the [API Reference](./docs/api-reference.md).\n\n## Security boundary\n\nProxyline is a Node-process runtime, not an operating-system sandbox. Raw `net` or `tls` sockets, native or private transport stacks, networking functions captured before installation, and DNS traffic are outside its boundary. Combine it with operating-system egress controls when code in the process is not trusted.\n\nRead the [security model](./docs/security.md) before treating managed mode as an enforcement boundary.\n\n## Documentation\n\n- [Getting Started](./docs/getting-started.md)\n- [Modes](./docs/modes.md)\n- [Surfaces](./docs/surfaces.md)\n- [API Reference](./docs/api-reference.md)\n- [Environment Variables](./docs/environment-variables.md)\n- [Proxy TLS](./docs/proxy-tls.md)\n- [Observability](./docs/observability.md)\n- [Security](./docs/security.md)\n- [Troubleshooting](./docs/troubleshooting.md)\n- [Testing](./docs/testing.md)\n\n## Development\n\n```sh\npnpm install --frozen-lockfile\npnpm check\npnpm test\npnpm docs:build\n```\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}