{"_id":"@anycast/agent","_rev":"18-994fcb2558b799a261779d20cd7052cb","name":"@anycast/agent","dist-tags":{"latest":"0.1.20"},"versions":{"0.1.0":{"name":"@anycast/agent","version":"0.1.0","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.0","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"90162af1c1fedf99746cf17d85dd31bc95e6fa37","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.0.tgz","fileCount":8,"integrity":"sha512-KX1YpMW3f9O3CoYnBTaTvLnJRpB3bADeJqiUUKe6BMt60mJrubKIBSzWk0MDn2ZgNLDlL8r8RmJd+EqaI8G1LA==","signatures":[{"sig":"MEYCIQCGpxVV6tHindWOy4Nm4vsXIBLzazVIgK45jLA7I6N6VAIhALx9caH5pI37xtloaDxy37K8+lHWxPm32ZDOS1nrBDsb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81987},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0da1cfc69a80194e20fb14d4bb98ff84b1af1023","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.0_1774027089180_0.9186960209251924","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@anycast/agent","version":"0.1.4","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.4","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"27df44a48af317cfdfd5bd69d9ab9ed146872c2f","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.4.tgz","fileCount":8,"integrity":"sha512-kdlGEWdB9IZlvkCpt/X91P+6Tv6fWCdVpwYxSFEpRCEZ66mJkD4aYj6qLbLYFZR+CT2BzySxn0GbH94eV7pLJQ==","signatures":[{"sig":"MEUCIQC7CAigR5zZxbNt3QmiUCk51bOZ068FWqyrA1TsFFSeBQIgfJCiW/cr65IAqLoLCGRQ4ubko/6+nv6PIYzKEsp/ic4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134505},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.4_1774559439555_0.24271923953621033","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@anycast/agent","version":"0.1.5","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.5","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"21dd2cd78b9683d9d8cfb890cb34b1f5e2d472ee","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.5.tgz","fileCount":8,"integrity":"sha512-cK9eoSpZUwGp6L00uA6gZlZnGNKNBxKQsW021EGF17EfkE3Z+wVsarrRgHLDC/vyVNxTyO8SQteDSOCZNjqlMQ==","signatures":[{"sig":"MEYCIQCAhC0ysJHbpr291EU/gyeDqEqUi5sluMn9QRV60JSUIgIhAJRm8q7trT/VDBD5FTSUW13xTYueI/ByEhzOPMrYGoU4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134385},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.5_1774560350342_0.7952660083286303","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@anycast/agent","version":"0.1.6","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.6","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"9893071afcc9eeee4e6f7658d336d123db74d3e6","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.6.tgz","fileCount":8,"integrity":"sha512-TTwN46q2hmvFiHsxfFucovrbaydim/1IoVnYDlkv07B8dwDCDpww4ikIZswkZ4zEKcjKlrSA4l7m69I6X8IRnQ==","signatures":[{"sig":"MEQCIFbGdtQl3F5Adu2Tf08GnD9bGpd5QvUr9BYJ1CwxQUncAiAUhv/7/hriOWTaHcWRwTSwGAzm1YVhxe249HQqMf1IWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136009},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.6_1774633430948_0.4866792151819006","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@anycast/agent","version":"0.1.7","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.7","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"671a87a92062a04726c6d518fd36d334dea00f34","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.7.tgz","fileCount":8,"integrity":"sha512-sXXe/AHTD/xJPEU/VCGtwKEMJzu5UsKEE2AZyd1IhqooIgy4u5qCNayJqSfs+ZYfxSfnnkJU7pZAIch3kvZ/dQ==","signatures":[{"sig":"MEUCIQDb53uy8TI8ADqMpPSpT6/biCemDHEFN/2b43+O5SEOowIgPYfRjpOcoG39bWLG+qP45sdxAGS5tTQ/xDNFHqg7oko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153239},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.7_1774652637619_0.6157083658021758","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@anycast/agent","version":"0.1.8","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.8","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"b1223ad117e3a8bf24ee996c244343620459728c","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.8.tgz","fileCount":8,"integrity":"sha512-XYlaiweE7wviDHVFzWfNLhT2gLDfXvyM8KMvvmR5BkL5OOZW8PO/2LHLBiTq44X9cb1cNWxRd2DwIgizgMmBLw==","signatures":[{"sig":"MEUCIQDBz5VSMrAfEBStmya3vaGEylI+sOWIpVP4T4BRz+QBZgIgVU3K4qWLKneSnFeWv3EioK/eEbiJa4lons9ocvhtf2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168615},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.8_1774655760019_0.9236902499231963","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@anycast/agent","version":"0.1.9","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.9","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"981a45df431614eec47afbca7522b308977880f6","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.9.tgz","fileCount":8,"integrity":"sha512-ynexH79aTP615+tNhShaCQDzkjnzDN07XeI3xR+a0u4O8HcbZipBdOtw70mEtycK6lQQfvNpheoHWL6re0c5wg==","signatures":[{"sig":"MEYCIQCCBO/9ZjuHo2JVEJKt8sYJtUyN+0QCd0UtViyYbcUX7QIhAIH1fV0pKJy8bds5BwnrNxMGvmluAT2ocNRmIwQ000T6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182545},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.9_1774792432564_0.8236309268505182","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@anycast/agent","version":"0.1.10","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.10","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"2c4d4b644f977b3ecb5e495298625d533751a853","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.10.tgz","fileCount":8,"integrity":"sha512-itSVEyd/lXwby/8YV/n0kPBlIoGK/pq2DK194yc5hwy0/wwxLB6PINg60je/dGflV6B0tebh1rOKq0b6W6Db/w==","signatures":[{"sig":"MEUCIQDesD2SJeQMjVekRLPODUNPtHo4M9LwiZpZqb4Uug9lfwIgKQjxAv+S9ZcoQHxKUhm5RRCpTnZVUI+9nKrGB7IFO80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198870},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.10_1774830863648_0.6930777633088121","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@anycast/agent","version":"0.1.11","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.11","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"1cfbf6c460a7cef4d8d15e65b750a664edaece74","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.11.tgz","fileCount":8,"integrity":"sha512-zYFulE1kcnL5cQGX9mHmTruxmV+5tWZnfeTc0M5RQqu/aZctCS23xfPklpdiEZykQD4zjN01EW7XLdfVWEChpg==","signatures":[{"sig":"MEYCIQCrqee0RQ/1EogTtK5yfKKUuN6e7vU1T0foygjLFFxVcQIhAM/C++GPXhiJryu8a/D7c2mNKPwdapjdnNy8pH8Od3go","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199994},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.11_1774831373927_0.3315541568132614","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@anycast/agent","version":"0.1.12","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.12","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"b8c01ade75b7ecf3fbf6e30d45304f2faccedc85","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.12.tgz","fileCount":8,"integrity":"sha512-3Bhxi0ZBduixaXPcxnz9xin92wr5vxIwgmE1zWH3NzFViwNidGV3vln9d2t/Ssp57olbc4izk4rg0F5ya5GvJw==","signatures":[{"sig":"MEQCIAKUopdbGAHL8bsjNWNJPafFLOPxLl+aSE3D0Zq7PXuTAiADrYsK6kGtR3v+5UVP0s2WnDx6ox5VLR9a00kGZ/5M7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233232},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.12_1774903449921_0.6661438821396795","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@anycast/agent","version":"0.1.13","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.13","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"596fe8c40baee8db93135bfaf346257618b9981c","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.13.tgz","fileCount":8,"integrity":"sha512-pb2EaSYXs/505+LA9ttMsrw54UFVyPvN/Fm6RxRp1ym0qMCOLwlbftjG24h/kyreh9XUcZYZebPuewkHdw5UQw==","signatures":[{"sig":"MEYCIQCzm9a0g9LcDidMYOvbtEABohMP9bHaQGQXAGTQCXDwYAIhAOl67oA7j8uAejM+EQ5YeFO+VzPPipZmJNZC90Kp+uxD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293647},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.13_1774904038029_0.21860895224830412","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@anycast/agent","version":"0.1.14","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.14","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"43abb3d9204bd641e4525da5deb850e2503b6301","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.14.tgz","fileCount":8,"integrity":"sha512-D0QwsTy2ucftZu3M4rt2nkhXm9gJ9ezHiNYL9cs9ZvvbQcHw1PEr/LzB24NOILKpxGriEEF+v9O0jLfEyJcS4A==","signatures":[{"sig":"MEQCIBsI1m+h9PqO5z61BaAuXyy1Sw/ZMY0RV7fAL3Us3UnqAiARp5VBywqwXPawFV5bqGLIlEyjRzPhnbD93jvVFW0bjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293787},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.14_1774904528243_0.25623594428249064","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@anycast/agent","version":"0.1.15","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.15","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"edd43dd6fa84e2353c59fb397346562d451d62a7","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.15.tgz","fileCount":8,"integrity":"sha512-4GUtRoDXAF5avXvIVj1f0NnjgPiWd7+N5U/ueBEgpqzYvckhVpdf3nM3vBCSFGCCtsWD+oIz2m9DZCreY8vV5A==","signatures":[{"sig":"MEQCIBkEKKZhrLKo5akm1C945ebNPq/XSWL7ovxplR4ue8iBAiB+TPx6D3KfobYwJggebt/4vmIkj6yQE/YQlYyWmuSwpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299807},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.15_1774908482636_0.547684764947822","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@anycast/agent","version":"0.1.16","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.16","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"fd92cba87b7755440aab2cb83d8006ae49cd2145","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.16.tgz","fileCount":8,"integrity":"sha512-tbiwz+TrWgTgZqblJkhk7IBB4R082ThY9fS0GWb3rFQB8/m2/ZTiQMzjp7p8wW3Hb8ZdjMVvHQsSmlyRSf4EAA==","signatures":[{"sig":"MEUCIQCDqHroaP1jn/Z9DPK/7dBi+yVfN+jUdbXZmM9lCMPcuQIgPTkh7sfWZC/ocRVNcj9Rm1Lfy0mtcFWZicgL9FY/4oc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300597},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.16_1774912578905_0.6800315280335876","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@anycast/agent","version":"0.1.17","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.17","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"9bed050e495be4f10edbe7bf3c36a1a178028b99","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.17.tgz","fileCount":8,"integrity":"sha512-tYK0hI2N9XSzZsmuu3IxRO6HY2t0wUIY1jccOc5vDeyH6WoK0GsxEKE4cFitUNW7pQbN+/dxVDkKha4aqMdWMA==","signatures":[{"sig":"MEUCIDhUgIeIGJPcu8hagdstXyigqYGX5qA//3+odX6CaA40AiEAn2VKOrIM5Gt3xCkoHpPsk9hCiHpzLUHhpR6xrF+nmkU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317863},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.17_1774913677552_0.9466323251428965","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@anycast/agent","version":"0.1.18","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.18","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"2b99f882d077df13ec9689b2c9dfe53af827349b","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.18.tgz","fileCount":8,"integrity":"sha512-KtZiBb5XazChlvC1M9HtSISCy23kC+ct/XBo1a8oN6YiICXfgnKRJxanHCKa1qEpXmzHDEBq7cSLzS0zlPgNLw==","signatures":[{"sig":"MEQCIFoC3klChdC8BxQfIQqCEyJDIoplu13nSsNqt5yiRhCqAiA2Z7JXQXQtvwtWdD1Vf6QWVkzjqKHAE5Nki9FUZuC2Tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318239},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.18_1774914890234_0.942402754357637","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@anycast/agent","version":"0.1.19","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.19","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"dist":{"shasum":"a05d0c41755f2dc1bb9dcfa96be4ae1810e3b4e8","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.19.tgz","fileCount":8,"integrity":"sha512-jeXxd+9MFvHMtiH0FoXvYPkpbQEVhwQ/m2dyQ/TtLv3vOW6DNJCeWSLLmPxWlbv8B4f3t5aPYG8+6x8u+EZNLg==","signatures":[{"sig":"MEYCIQDEgF59+DY1AuOMS3QeSz+a2u0eJXQiPOw1wZXJxZZK7wIhANTN8Q1bTSX3O6b485xCI9azRia0O+zLk+y5Gy3weu45","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326355},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Anycast Agents P2P connectivity","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.16.0","tweetnacl":"^1.0.3","eventemitter3":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","@types/ws":"^8.5.10","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.1.19_1774983075626_0.6255187448339596","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@anycast/agent","version":"0.1.20","description":"TypeScript SDK for Anycast Agents P2P connectivity","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit","clean":"rm -rf dist"},"dependencies":{"eventemitter3":"^5.0.1","tweetnacl":"^1.0.3","ws":"^8.16.0"},"devDependencies":{"@types/node":"^20.11.0","@types/ws":"^8.5.10","tsup":"^8.0.1","typescript":"^5.3.3","vitest":"^4.0.18"},"keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"license":"MIT","_id":"@anycast/agent@0.1.20","gitHead":"a3388accab5621636c569ea141f4c0667da87eb8","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-8O9oLO6+qB5AVnZkjtuvarR+mn0+olGwdbPTC5zcEY4K/edUntU+fF4Vz0Qv5O74GvqZUDk7Frvn3gMWsdQA2g==","shasum":"3e1bad6e2e56c84abab3d16ba2818367226ee465","tarball":"https://registry.npmjs.org/@anycast/agent/-/agent-0.1.20.tgz","fileCount":29,"unpackedSize":306644,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDCawlJdWSabviFtCZOu8F7GY73zvk0P1POqxTUzQAz6gIhAIuMVoeE9DxKbTz9KvzPUIolQCSAjn2eV2pzwCdJeBKP"}]},"_npmUser":{"name":"markmahle","email":"mm@anycast.com"},"directories":{},"maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent_0.1.20_1775244066564_0.7103756735412745"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T17:18:09.097Z","modified":"2026-04-03T19:21:07.246Z","0.1.0":"2026-03-20T17:18:09.308Z","0.1.4":"2026-03-26T21:10:39.704Z","0.1.5":"2026-03-26T21:25:50.489Z","0.1.6":"2026-03-27T17:43:51.097Z","0.1.7":"2026-03-27T23:03:57.784Z","0.1.8":"2026-03-27T23:56:00.172Z","0.1.9":"2026-03-29T13:53:52.732Z","0.1.10":"2026-03-30T00:34:23.812Z","0.1.11":"2026-03-30T00:42:54.126Z","0.1.12":"2026-03-30T20:44:10.062Z","0.1.13":"2026-03-30T20:53:58.229Z","0.1.14":"2026-03-30T21:02:08.483Z","0.1.15":"2026-03-30T22:08:02.783Z","0.1.16":"2026-03-30T23:16:19.079Z","0.1.17":"2026-03-30T23:34:37.732Z","0.1.18":"2026-03-30T23:54:50.430Z","0.1.19":"2026-03-31T18:51:15.761Z","0.1.20":"2026-04-03T19:21:06.771Z"},"license":"MIT","keywords":["anycast","p2p","agents","webrtc","relay","connectivity"],"description":"TypeScript SDK for Anycast Agents P2P connectivity","maintainers":[{"name":"markmahle","email":"mm@anycast.com"}],"readme":"# @anycast/agent\n\nTypeScript SDK for [Anycast Agents](https://agents.anycast.com) P2P connectivity.\n\nConnect agents to the Anycast network for peer-to-peer communication with relay fallback, powered by the global Anycast edge infrastructure.\n\n## Installation\n\n```bash\nnpm install @anycast/agent\n# or\npnpm add @anycast/agent\n```\n\n## Quick Start\n\n```typescript\nimport { AnycastAgent } from '@anycast/agent';\n\nconst agent = new AnycastAgent({\n  rendezvousUrl: 'wss://agents.anycast.com/rendezvous',\n  token: 'agt_your_token_here',\n});\n\nagent.on('connect', ({ agentId }) => {\n  console.log(`Connected as ${agentId}`);\n});\n\nagent.on('peer', (peerId, status) => {\n  console.log(`Peer ${peerId} is ${status}`);\n});\n\nagent.on('error', (err) => {\n  console.error(`Error: ${err.message} (${err.code})`);\n});\n\nawait agent.connect();\n\n// Request a connection to another agent\nconst sessionId = agent.requestConnection('target-agent-id');\n\n// Handle incoming WebRTC signals\nagent.on('signal', (sessionId, fromAgentId, signal) => {\n  // Forward to your WebRTC implementation\n});\n\n// Send WebRTC signals\nagent.sendSignal(sessionId, 'target-agent-id', {\n  type: 'offer',\n  data: JSON.stringify(sdpOffer),\n});\n\n// Disconnect when done\nawait agent.disconnect();\n```\n\n## API Reference\n\n### `new AnycastAgent(options)`\n\nCreate a new agent instance.\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `rendezvousUrl` | `string` | required | WebSocket URL of the rendezvous server |\n| `token` | `string` | required | Agent auth token from the Anycast portal |\n| `machineId` | `string` | auto-generated | Unique machine identifier |\n| `publicKey` | `string` | auto-generated | Public key for E2E encryption |\n| `version` | `string` | — | Agent version string |\n| `reconnect` | `boolean` | `true` | Auto-reconnect on disconnect |\n| `reconnectInterval` | `number` | `3000` | Base reconnect interval (ms) |\n| `timeout` | `number` | `30000` | Connection timeout (ms) |\n| `heartbeatInterval` | `number` | `25000` | Heartbeat interval (ms) |\n| `discoveryMode` | `string` | `'rendezvous'` | Discovery mode: `rendezvous`, `auto`, or `dht` |\n\n### Properties\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `agentId` | `string \\| null` | Assigned agent ID (set after connect) |\n| `tenantId` | `string \\| null` | Tenant ID (set after connect) |\n| `connected` | `boolean` | Whether the agent is connected |\n| `connectionState` | `ConnectionState` | Current connection state |\n\n### Methods\n\n#### `connect(): Promise<void>`\nConnect to the rendezvous server. Resolves when registered.\n\n#### `disconnect(): Promise<void>`\nDisconnect from the server.\n\n#### `requestConnection(targetAgentId: string): string`\nRequest a P2P connection to another agent. Returns a session ID.\n\n#### `sendSignal(sessionId, targetAgentId, signal)`\nSend a WebRTC signal (offer/answer/ICE candidate) via the rendezvous server.\n\n#### `disconnectSession(sessionId: string)`\nClose a specific session.\n\n### Events\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `connect` | `{ agentId, tenantId, name }` | Connected and registered |\n| `disconnect` | `reason: string` | Disconnected |\n| `reconnecting` | `attempt: number` | Attempting reconnection |\n| `peer` | `agentId, status` | Peer came online/offline |\n| `connect_incoming` | `sessionId, fromAgentId, fromAgentName` | Incoming connection request |\n| `connect_accepted` | `sessionId, agentId, publicKey` | Connection accepted by peer |\n| `connect_rejected` | `sessionId, reason` | Connection rejected |\n| `signal` | `sessionId, fromAgentId, signal` | WebRTC signal from peer |\n| `relay_assigned` | `sessionId, host, port, token` | Relay server assigned |\n| `error` | `AnycastError` | Error occurred |\n| `stateChange` | `ConnectionState` | Connection state changed |\n| `discovery` | `{ mode, fallback }` | Discovery mode resolved (emitted before connect) |\n\n### ConnectionState\n\n```typescript\nenum ConnectionState {\n  DISCONNECTED = 'DISCONNECTED',\n  CONNECTING = 'CONNECTING',\n  CONNECTED = 'CONNECTED',\n  RECONNECTING = 'RECONNECTING',\n}\n```\n\n### AnycastError\n\n```typescript\nclass AnycastError extends Error {\n  code: string;    // Error code (e.g., 'AUTH_FAILED', 'TIMEOUT')\n  fatal: boolean;  // If true, reconnection won't help\n}\n```\n\n## Usage Tracking & Auto-Instrumentation\n\nTrack LLM token usage through the Anycast portal for cost visibility and analytics.\n\n### Manual tracking\n\n```typescript\nawait agent.trackUsage({\n  model: 'claude-sonnet-4-6',\n  promptTokens: 1200,\n  completionTokens: 340,\n  triggeredBy: 'user-123',\n  context: 'slack_thread',\n});\n```\n\n### Anthropic SDK (automatic)\n\n```typescript\nimport Anthropic from '@anthropic-ai/sdk';\n\nconst anthropic = agent.wrapAnthropic(new Anthropic(), {\n  triggeredBy: 'user-123',\n  context: 'slack_thread',\n});\n// All calls now auto-report usage — no code changes needed\nconst msg = await anthropic.messages.create({\n  model: 'claude-sonnet-4-6',\n  max_tokens: 1024,\n  messages: [{ role: 'user', content: 'Hello' }],\n});\n```\n\n### OpenAI SDK (automatic)\n\n```typescript\nimport OpenAI from 'openai';\n\nconst openai = agent.wrapOpenAI(new OpenAI(), { context: 'api' });\nconst chat = await openai.chat.completions.create({\n  model: 'gpt-4o',\n  messages: [{ role: 'user', content: 'Hello' }],\n});\n```\n\n### Generic wrapper\n\n```typescript\nconst result = await agent.tracked(\n  () => myLlmCall(prompt),\n  {\n    model: 'custom-model',\n    extractUsage: (r) => ({\n      promptTokens: r.usage.input,\n      completionTokens: r.usage.output,\n    }),\n  }\n);\n```\n\nAll tracking is opt-in, non-blocking, and never affects the return value or throws.\n\n## Discovery Modes\n\nThe SDK supports three discovery modes, controlled via the `discoveryMode` option:\n\n| Mode | Description |\n|------|-------------|\n| `rendezvous` | **(default)** Connects through the managed Anycast rendezvous server. Most reliable, works everywhere, no extra dependencies. |\n| `auto` | Tries DHT (Holepunch) first for direct peer-to-peer discovery. Falls back to rendezvous if `hyperswarm` is not installed or DHT fails. |\n| `dht` | DHT only via Holepunch. Requires `hyperswarm` (`npm install hyperswarm`). Throws if the dependency is missing. Experimental. |\n\n```typescript\nconst agent = new AnycastAgent({\n  rendezvousUrl: 'wss://agents.anycast.com/rendezvous',\n  token: 'agt_xxx',\n  discoveryMode: 'auto', // try DHT, fall back to rendezvous\n});\n\nagent.on('discovery', ({ mode, fallback }) => {\n  console.log(`Using ${mode} discovery${fallback ? ' (fallback)' : ''}`);\n});\n\nawait agent.connect();\n```\n\nFor the Go binary (`any`), use `--discovery-mode`:\n\n```bash\nany up --token agt_xxx --expose localhost:8080 --discovery-mode auto\n# or via environment variable:\nANY_DISCOVERY_MODE=dht any up --token agt_xxx --expose localhost:8080\n```\n\n## Auto-Reconnection\n\nBy default, the agent automatically reconnects with exponential backoff (3s, 6s, 12s, ..., max 30s). Disable with `reconnect: false`.\n\n## Receiving Messages from the Platform\n\nFlows and integrations can send messages directly to your agent and await a reply. Handle incoming messages with the `message` event:\n\n```typescript\nagent.on('message', async ({ text, context, reply }) => {\n  // Process the message — you have 30 seconds to reply\n  const response = await handleQuery(text);\n  reply(response);\n});\n```\n\nThe `reply()` function must be called within the timeout window (default 30 seconds). After that, the platform marks the delivery as timed out and the response is discarded.\n\nYou can also reply manually using the messageId:\n\n```typescript\nagent.on('message', ({ messageId, text }) => {\n  processAsync(text).then((result) => {\n    agent.replyToMessage(messageId, result);\n  });\n});\n```\n\nThe `context` field contains metadata from the triggering flow (e.g. Slack channel, thread timestamp, flow ID).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}