{"_id":"@eleven-am/vox-rtc-server","_rev":"18-ee0a691b661b03ec315f7fdad0106484","name":"@eleven-am/vox-rtc-server","dist-tags":{"latest":"0.2.8"},"versions":{"0.1.0":{"name":"@eleven-am/vox-rtc-server","version":"0.1.0","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.0","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"73c2ed35ea0788fd0a50f004005a047df94c5d66","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.0.tgz","fileCount":10,"integrity":"sha512-SVx2klOh93Bq2CPLpsjilBfG/+qZD9Ajb02VkJe+isnDA3f/YXZPbnToIC1/eyQNIaS/5sqASvZKeGXf6tMrAg==","signatures":[{"sig":"MEYCIQCh03wy06/xsUWrWc8Ul/DytyKSjhjLvuroYdr6btrfHAIhAM2WDysP+XTEmPA+PMX/z7qLXzfECUEMyinuf7eDz7AT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16848},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9666daaf3ac7fad2edfaa01f345e74ebc9ae99cf","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.35"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.0_1778620929730_0.644709451524599","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eleven-am/vox-rtc-server","version":"0.1.1","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.1","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"f9155a92a6716dd3d03b105dd752d907f4d2b85f","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.1.tgz","fileCount":10,"integrity":"sha512-gmofTwie4wX+UY+Am1ENkvKEz/lMemZS7j20seIGlnGybkH328rK6nO1CTBFTCqRmEKozYnfgtEZSayeuLEDkQ==","signatures":[{"sig":"MEQCICTh1v5HPjlcy2Zds0Y3uhG1mgod9zAvYO1SUfwJTuF5AiB7+Q2gzLVE711O+7tb0GLmIbnxcTI0uTGi1bFF9KgVYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17528},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9666daaf3ac7fad2edfaa01f345e74ebc9ae99cf","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.35"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.1_1778621592609_0.7733930597754435","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@eleven-am/vox-rtc-server","version":"0.1.2","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.2","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"908acd5c961260080586489cdb30695116326dc6","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.2.tgz","fileCount":10,"integrity":"sha512-xLIWBDiTROiFW6pAwDe2SkVvaR+mjrU5hW9SNn7Ws52lBYVhtmmjiz8Kv5vdx5dgskKTz8wVzIHwCwfJttvt8Q==","signatures":[{"sig":"MEUCIQDJQL/aK4DjfQWRiqxmsNH0iQBhA//Y7UtR3zLkQ76mtgIgcM3E8BQEQ9C5mAFsl9eHrm2ORfLOCeV6hUuQEdFIufs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17608},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"f307d663a28815ff56f5590b9b655dbcc21f0bc2","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.35"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.2_1778656127268_0.6033706500703351","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@eleven-am/vox-rtc-server","version":"0.1.3","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.3","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"5308096e89b9a7f1a96453de060f4f31c7ac2b57","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.3.tgz","fileCount":10,"integrity":"sha512-FAvh1DvmI7AvdU1wpUM5cxIXBiTCFSCrWDaF85xGKHDT/8zW58tdMsQoYffnHBHBys78QK4Xrk/50oNLOgvUHA==","signatures":[{"sig":"MEUCIQCxuCl83LTO38Sm6cjMVaswhPS4R92rQxLG06O/eX8FkgIgTkhFaYcLXuuhUWeGdtUd70d3tJzmJpreHwDeFbeGlho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18038},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8fe2017a0b461d1edb068b1b3cefd27fa4cf218a","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.35"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.3_1778747867297_0.5965237326668107","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@eleven-am/vox-rtc-server","version":"0.1.4","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.4","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"1e0b5694e05b7af742d08ea71407c30097a3ed56","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.4.tgz","fileCount":10,"integrity":"sha512-kNFJZzkdbJRgDmhRzUH1kXRWzPjy1CPjjMR6wGpIU7y2CdY0jAHMMvHZKpL7E32ZyckVLNqtzmRC+uqqnb4rnA==","signatures":[{"sig":"MEQCIHuch4JXqajkAGvF3ZuL3IfXZDbSEQschZqUjSKDkx2gAiAvwis2XAEQ0qy+7gfDWHb7arcsaHonSi4Jbq6g8mGQ4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27577},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e2e827f90335b0a7179b6a72fe22155a04486af8","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.35"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.4_1778780589668_0.06118914028694311","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@eleven-am/vox-rtc-server","version":"0.1.5","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.5","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"b1283bd5a41fcdc356194e4b1a65c114068ecebc","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.5.tgz","fileCount":10,"integrity":"sha512-jABE9x9saK9UTgnVn3q+xhGJBKBeODjA08Ny2nil1SOG6/kExy9i4iNNiPEABZY6WawvxuZEhOFR8HZLfovCPg==","signatures":[{"sig":"MEUCIFi34r4C2wVperDLBjbpshYP8TYGETND5T9sWTjP9F2YAiEA2xkLBPFXpPbMKbgPzeag8z0FBbup9Ese/Qtj3gpBWv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27577},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b922aa3cb52499abd50da8eaea06b21840a64510","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.36"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.5_1779398204633_0.4426423583501975","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@eleven-am/vox-rtc-server","version":"0.1.6","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.6","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"93eaa1af877ad92fd898f1a723b3594c796bcb73","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.6.tgz","fileCount":10,"integrity":"sha512-KrRfLKSQ1jOdr+gx6VYFSizz+OZoDHqieZGpBtlRN5+4ziflPyVSJ+xgAI4baE/Wu4KjK9mw27IpCcRB1xBlDg==","signatures":[{"sig":"MEQCIGKve28+sRmuv/agyBcQI7PygzJ87PdpIUzuuCnRq3olAiBg9UqFUHZ4vxKvLlgH7Vi+Glabmqdf+IPJtQIxg5LGZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30734},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"9644bc10d32ac49ce09206a683926d695deb9432","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"^0.0.38"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.6_1783075591185_0.2972072634251197","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@eleven-am/vox-rtc-server","version":"0.1.7","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.7","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"d35fa5b7ed6d47660b309daf2a879e68df2fdec0","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.7.tgz","fileCount":10,"integrity":"sha512-VIRZaHU+wMT5hKSwQ+ZcRe+TDNpuGNqp73cf+wC/fUXubrirhCNBp3VPjwSq6lqcLZCghuokJzLp1xxdQrQBnQ==","signatures":[{"sig":"MEUCIQCtY3mTHlYO8JHlLpbDV2EjLfZTpeMTELb6qYNYB/ADOAIgcGtWs37BwRz8Qo8FTAqeb18n8mJ07qbel8lt7vRE5sQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31698},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"922e8be8fdc4c88e10c1b2f180e4b511eca41fbd","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.7_1783637002688_0.8972182901901276","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@eleven-am/vox-rtc-server","version":"0.1.8","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.1.8","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"ff2de0270d6c88fcb7acfef2742ff1eb34f1bae0","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.1.8.tgz","fileCount":10,"integrity":"sha512-v68ZInHcRG4M5bW1cSSkl+QUqBczV178Ao+8X6u6LaRwigeQYuAfVZSbN90eP39vXPeb4um9OoZmZoAMTGVuHg==","signatures":[{"sig":"MEQCIAIiV5GGKK0frrUnKqaEuVNi9DA39AR02rWPHGUwxmFsAiABLYSxxFVQeX95T4+OolUZOQ/ybqrDGaftt49oPLEFVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32627},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"189579c0d40c89623204ab3816fcab560333caaa","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.1.8_1784148892057_0.6505504908982114","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@eleven-am/vox-rtc-server","version":"0.2.0","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.0","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"297f457fae3a54c649b1a1be1c78a100e243eeef","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.0.tgz","fileCount":12,"integrity":"sha512-DAsNidMMJ7MCchGx7H6XTxcVBm4J+uUmzjSBeG1IozGlah+b7vp0t1W99OYea5woZuLyONZMUQjrBE9lQ8L38A==","signatures":[{"sig":"MEYCIQCqJWRm1QlFMdtHL96ehXe3Rdiuv6TxUI9NnqA2cms9PAIhAJz4S1HB0n/liSNS7WdZawBrZVxdUxfBNk9HoMKORP3R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54345},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"a393bb0d904250fb57f50bfdf11d2a50badf448f","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.0_1784235699334_0.5631717134936765","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@eleven-am/vox-rtc-server","version":"0.2.1","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.1","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"6608a5d3f46550f50a62468d6522fe4948e68ec4","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.1.tgz","fileCount":12,"integrity":"sha512-S1PslZGVJ1yVhvpoLK9mWqqBjvswVfMRYtETC28YXYrc9nSNHKvh6RAmU9gqMdbvvLOGKsTmO9cfjyFUcw9aFw==","signatures":[{"sig":"MEYCIQD4h7lzGLEAHMwFn1o4qiQHb9i9cdo7T6Ir0Ji9dBU1pAIhAN32HRG8tYE14f8TtK9CkRLC0b8z0wBsdLazaaeIP0Ni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60627},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"c7a552d335e65ffc56f44156ec5f2bada329ebd1","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.1_1784365754504_0.6460018868587676","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@eleven-am/vox-rtc-server","version":"0.2.2","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.2","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"06918b6f9a6cd18c7938a798209ebb919dd0845a","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.2.tgz","fileCount":12,"integrity":"sha512-OhbEEBAl14g8CXSKJq15cH7IxmQeT6hPckaIXkrNnZ5YLXM1F4BXVecveX/KjFLc8Hr3DNg+Dq7Zcgp3/KGr9g==","signatures":[{"sig":"MEYCIQCsmH0VqOrwivtiMBOrkC3iVJ+3GES+vuDks59Iv7xQKAIhALzwJCzSi7LHHjol98qY9n5xoh3pQDxN5godoo1moTbY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62679},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"e4b9e6739d4d770dc519ae81fd308ea44b1f6aed","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.2_1784581655322_0.25796424778294624","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@eleven-am/vox-rtc-server","version":"0.2.3","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.3","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"d98c71baebcfefd8f38edf2aa4a1f4a45f24f9e2","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.3.tgz","fileCount":12,"integrity":"sha512-2VFiDPkR/tgIivL0SUXSQwrKC2RoMLgXyVCrkhrLURQ6D11TmT5rQJNca0rfTszXrKmMNfUu4QRVRe1PjvklTA==","signatures":[{"sig":"MEQCIHCKxo1Ojt4eYoX260p5kjT/b6VzGevD532q7EeHwmOdAiBPs/rmc0MYvRF6ySxz7LSvbstc6qxhUcMkx57PAmrPng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63249},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"b90321b24fe0f3f9b256a05180ebdf7a899c3692","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.3_1784727068291_0.40139901831097236","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@eleven-am/vox-rtc-server","version":"0.2.4","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.4","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"21c342918038bf2d085eb48569975f6c07f98aa0","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.4.tgz","fileCount":12,"integrity":"sha512-BbnvTEo0i6ZvyZNdJEd+5ESEegMsuU0G4Cv9uyKtEKo+PdIhPoNCY0gM04T93QJdhSYJ2ad7f2OiTxsiQVrcTA==","signatures":[{"sig":"MEUCIQCfT1WISvDDT52aGvMyUq4B0buxejetbWQCOGCuKNjTIAIgL0M7wZzeaeTChROJR8ivB8ZN0/z+hgcoobocyEsJZx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69466},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5779147fa328c58a0cace0ecd1269bf19ca5857b","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.4_1784818687417_0.7668319923070914","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@eleven-am/vox-rtc-server","version":"0.2.5","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.5","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"8f0bc0ca4c15b151c426b9666b7bcf09c767eb70","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.5.tgz","fileCount":12,"integrity":"sha512-G0ryx35idy4flfjENSnv6pHR7MI3SDg/oN7wtBEnL7hNk469m+fYKWUq0qp89oSiAi6yGIFVXGjr1KHtIlq36w==","signatures":[{"sig":"MEUCIQDNFNGkOpMMmGr+PNy5Ry0Ks/5IGeuh64Teq6wrnjovnAIgGyCavU4EsSZj/VRFlAmRNGxbUDhquUg+7StbCqX9gos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71759},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"e39c45973801325579e77dc51f088f57a8fbc896","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.1","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.5_1784833107030_0.21982406656394593","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@eleven-am/vox-rtc-server","version":"0.2.6","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.6","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"39b240ce4e87b05b7bbc951eb2e4e594fadf3eb0","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.6.tgz","fileCount":12,"integrity":"sha512-ScG7/ly8Wed1GjfUxTt0Q3/dQYavSapnZGNGAbOh8DzHrFkGPlUXu3slu5nvB/8hHi8bw0JJCOGpBth4b6Ltug==","signatures":[{"sig":"MEUCIF5981kQ5dL4FUPEHt3FvrPuDG70jqyT0GCElniAM44WAiEA5JpHxp9B79fDT/mgV6hdZ5kN9KswN+I63UXcQSrzM08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73882},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"a042e59ee81ab8fa18ff20563dda03e4d08af24a","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.6_1785614562758_0.04459516806912145","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@eleven-am/vox-rtc-server","version":"0.2.7","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-server@0.2.7","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"5e7d240e84695cd9c46c11d7e2b3c74820149f21","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.7.tgz","fileCount":12,"integrity":"sha512-TEr4lqItEMnehFRlOE9d1SrsioahTj1sqNfhRv3ldS2Gt84YT6/knFSujh61XOtfVhqoM5hXmN1l0B3P6s5ieA==","signatures":[{"sig":"MEUCIQDfBAAE9jcAo8O6SNr3inatHMdmCvSzajZImrW63RXwzwIgfy5V1Afq7/zVvuvZ07BhIN9ATRgPjOWZ7o9+UTn1yxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76291},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"f1091c8af47ad72d265f33137f5a5a966abee4c0","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-server"},"_npmVersion":"12.0.2","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.1","@eleven-am/pondsocket-client":"0.0.39"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-server_0.2.7_1786613524710_0.9607523273291572","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@eleven-am/vox-rtc-server","version":"0.2.8","description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/eleven-am/vox-sdks.git","directory":"typescript/vox-rtc-server"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","test":"tsx --test test/*.test.ts"},"dependencies":{"@eleven-am/pondsocket-client":"0.0.39","ws":"^8.21.1"},"devDependencies":{"@types/node":"^24.10.1","@types/ws":"^8.18.1","tsx":"^4.20.6","typescript":"^5.9.3"},"engines":{"node":">=20"},"gitHead":"0f44c65e52cc6792f1e6218cac2b8be8672f34dd","_id":"@eleven-am/vox-rtc-server@0.2.8","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"homepage":"https://github.com/eleven-am/vox-sdks#readme","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-TpvI5odf4IdPNHzoZUXPG37iQSausYgckFvDggbaDGI37DQ2rBVq9gkSTYgG50xxh11rOMOqUYaNyffzCzl7LA==","shasum":"e417316df82b0425f550d48b0462fcea26772dd3","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-server/-/vox-rtc-server-0.2.8.tgz","fileCount":12,"unpackedSize":78204,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-server@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/N+NbRh7UvLVCzAJB2dQef0n++umArAY49pBcGWvHNQIhAMaW07ysA7vntz3AajpZejqtX0lr2VYpWEXLmAiVnZhC"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bfa7a3e7-3342-4be7-b15b-e44ef1f100f5"}},"directories":{},"maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vox-rtc-server_0.2.8_1786911537350_0.621441107440601"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T21:22:09.539Z","modified":"2026-08-16T20:18:57.792Z","0.1.0":"2026-05-12T21:22:09.874Z","0.1.1":"2026-05-12T21:33:12.767Z","0.1.2":"2026-05-13T07:08:47.392Z","0.1.3":"2026-05-14T08:37:47.431Z","0.1.4":"2026-05-14T17:43:09.815Z","0.1.5":"2026-05-21T21:16:44.774Z","0.1.6":"2026-07-03T10:46:31.330Z","0.1.7":"2026-07-09T22:43:22.824Z","0.1.8":"2026-07-15T20:54:52.195Z","0.2.0":"2026-07-16T21:01:39.499Z","0.2.1":"2026-07-18T09:09:14.629Z","0.2.2":"2026-07-20T21:07:35.468Z","0.2.3":"2026-07-22T13:31:08.472Z","0.2.4":"2026-07-23T14:58:07.567Z","0.2.5":"2026-07-23T18:58:27.176Z","0.2.6":"2026-08-01T20:02:42.906Z","0.2.7":"2026-08-13T09:32:04.902Z","0.2.8":"2026-08-16T20:18:57.487Z"},"bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"license":"GPL-3.0","homepage":"https://github.com/eleven-am/vox-sdks#readme","repository":{"type":"git","url":"git+https://github.com/eleven-am/vox-sdks.git","directory":"typescript/vox-rtc-server"},"description":"Server-side TypeScript SDK for Vox-hosted WebRTC control sessions","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"readme":"# `@eleven-am/vox-rtc-server`\n\nTrusted TypeScript SDK for Vox-hosted WebRTC conversations. It creates sessions\nover HTTP and controls them over PondSocket, including through the browser\ngateway.\n\nIt is not the SDK for ordinary transcription or synthesis requests.\n\n## Install\n\n```bash\nnpm install @eleven-am/vox-rtc-server\n```\n\nPass `apiKey` explicitly or set `VOX_API_KEY`.\n\n## Browser application gateway\n\nMount one WebSocket gateway on the application's HTTP server:\n\n```ts\nimport { createServer } from \"node:http\";\nimport express from \"express\";\nimport { createVoxRtcGateway } from \"@eleven-am/vox-rtc-server\";\n\nconst app = express();\nconst server = createServer(app);\n\nconst gateway = createVoxRtcGateway({\n  voxHttpBase: \"http://vox-service.vox.svc.cluster.local:11435\",\n  apiKey: process.env.VOX_API_KEY,\n  path: \"/api/vox/rtc\",\n  onSessionCreated: async ({ request, session }) => {\n    await registerCall(request, session.sessionId);\n    session.configure({\n      sttModel: \"parakeet-stt:tdt-0.6b-v3\",\n      ttsModel: \"kokoro-tts:v1.0\",\n      voice: \"af_heart\",\n      turnProfile: \"browser_default\",\n      speechContext: true,\n    });\n    session.onTranscript((event) => {\n      console.log(event.transcript, event.speechContext);\n    });\n  },\n  onSessionClosed: async ({ request, session, reason }) => {\n    await releaseCall(request, session.sessionId, reason);\n  },\n});\n\nconst detachGateway = gateway.attach(server);\n```\n\nThe browser needs only:\n\n```ts\nnew VoxRtcBrowserClient({ signalingEndpoint: \"/api/vox/rtc\" });\n```\n\nThe gateway owns its Vox client, controlled sessions, PondSocket connection,\nand signaling lifecycle. `onSessionCreated` receives the original incoming\nrequest and the complete trusted control session. Applications may inspect the\nrequest or ignore it. If the hook throws, the gateway rolls the session back.\nClosure hooks and session cleanup run exactly once.\n\nOn application shutdown:\n\n```ts\ndetachGateway();\nawait gateway.close();\n```\n\nThe browser sees only public ICE/session metadata. The gateway retains the Vox\nhostname, API key, and internal socket endpoint. Audio remains direct\nbrowser-to-Vox WebRTC media.\n\nThe gateway preserves the browser client's RTC negotiation `generation` on\nthe offer, every trickled candidate, and the null end-of-candidates marker.\nGeneration-aware negotiations reject missing or malformed candidate\ngenerations before they reach Vox; generation-less legacy negotiation remains\nsupported.\n\n## PondSocket control session\n\nApplications that do not need the gateway can use the same server session\ndirectly:\n\n```ts\nimport { VoxRtcServerClient } from \"@eleven-am/vox-rtc-server\";\n\nconst vox = new VoxRtcServerClient({\n  httpBase: \"http://vox-service.vox.svc.cluster.local:11435\",\n  apiKey: process.env.VOX_API_KEY,\n});\nconst { bootstrap, session } = await vox.createControlledSession();\n\nsession.onTranscript((event) => console.log(\"user said\", event.transcript));\nsession.onBrowserEvent((event) => console.log(event.event, event.payload));\nsession.sendTextResponse(\"Hello from the backend.\", {\n  allowInterruptions: true,\n});\nsession.sendClientEvent({\n  event: \"render.url\",\n  payload: { url: \"https://example.com\" },\n});\n```\n\nApplications doing their own signaling can pass the same generation through\nthe direct control API:\n\n```ts\nsession.sendOffer(offer, { generation: 1 });\nsession.sendIceCandidate(candidate, { generation: 1 });\nsession.sendIceCandidate(null, { generation: 1 });\n```\n\n`sendClientEvent` is server-to-browser. Browser-originated data-channel events\narrive through `onBrowserEvent`.\n\nSet `speechContext: true` in the session configuration to analyze each final\nuser turn for prosody and audio events. The optional result is exposed as\n`event.speechContext` on `onTranscript`; partial transcript events do not carry\nspeech context.\n\n`speechContext` is the `VoxRtcSpeechContext` discriminated union. Schema v2\nseparates speaker analysis from environmental audio:\n\n```ts\nsession.onTranscript(({ speechContext }) => {\n  if (!speechContext) return;\n\n  for (const span of speechContext.emotions ?? []) {\n    console.log(\"emotion\", span.label, span.startMs, span.endMs);\n  }\n  for (const span of speechContext.vocal ?? []) {\n    console.log(\"vocal event\", span.label, span.startMs, span.endMs);\n  }\n  for (const sound of speechContext.sounds ?? []) {\n    console.log(\"environment\", sound.label, sound.score);\n  }\n\n  if (speechContext.status !== \"complete\") {\n    console.log(\"unavailable tracks\", speechContext.unavailable);\n  }\n});\n```\n\n`emotions` and `vocal` contain timestamped speaker spans. `sounds` contains\ntimestamped environmental events with a `score` from 0 to 1. A `partial`\nresult names the unavailable `\"speaker\"` or `\"sounds\"` track; a `failed`\nresult names both. Unsupported or malformed speech-context data is omitted\nwithout dropping the transcript event.\n\n## Generation correlation\n\n`startResponse`, `appendResponseText`, `commitResponse`, `cancelResponse`,\n`replaceResponseText`, and `sendTextResponse` accept an optional `generationId`\n(sent on the wire as `generation_id`). Response lifecycle events\n(`onResponseCreated`, `onResponseCommitted`, `onResponseDone`,\n`onResponseCancelled`, `onResponseSpokenText`, `onResponseAudioClear`, `onInterruptionDetected`,\n`onInterruptionFalsePositive`) expose `generationId` when the server knows it.\n\nAfter cancellation, `onResponseSpokenText` delivers the conservative generated\ntext prefix Vox verified at RTC playout. Persist `spokenText`, not the full\ngenerated response, as assistant history for that interrupted turn.\n\nInstead of fire-and-forget, gate delta pumping on the start acknowledgement:\n\n```ts\nconst result = await session.startResponseAndWait({\n  timeoutMs: 5_000,\n  output: {\n    model: \"qwen3-tts:0.6b-clone\",\n    voice: \"samantha\",\n    language: \"fr\",\n    speed: 0.9,\n    params: { temperature: 0.7 },\n  },\n});\nif (result.accepted) {\n  console.log(\"effective output\", result.output);\n  session.appendResponseText(\"Hello.\", { generationId: result.generationId });\n  session.commitResponse({ generationId: result.generationId });\n} else {\n  console.warn(\"start rejected\", result.error.code, result.error.message);\n}\n```\n\n`startResponseAndWait` sends `response.start` with a `generationId` (generated\nwhen not supplied) and resolves on the correlated `response.created`, on the\ncorrelated typed `error`, or with `{ accepted: false }` and the\n`start_ack_timeout` code when no ack arrives within `timeoutMs` (default\n10 000 ms). `output` is optional. Vox resolves omitted output fields from the\nsession configuration and returns the immutable effective selection in\n`result.output` and `onResponseCreated`.\n\n## Error handling\n\n`onError` events carry `message`, a stable `code`, `recoverable`, and an\noptional `generationId` scoping the failure to one response generation. The\nknown codes are exported as `VOX_ERROR_CODES` (with the `VoxErrorCode` type and\nthe `isVoxErrorCode` guard): `response_rejected_turn_state`,\n`response_rejected_user_speech`, `response_stale_generation`,\n`response_already_active`, `response_failed`, `command_invalid`, and\n`session_failed`.\n\nOnly `recoverable === false` (or the transport itself closing) should be\ntreated as call-ending. Recoverable errors are per-command failures: handle\nthem, abort the affected generation when `generationId` matches, and keep the\nsession running. Older Vox servers omit `code` and `recoverable`; the SDK\ndefaults `recoverable` to `true` in that case, so a missing field never ends\nthe call.\n\n```ts\nsession.onError((event) => {\n  if (!event.recoverable) {\n    endCall(event.message);\n    return;\n  }\n  if (event.generationId) {\n    abortGeneration(event.generationId);\n  }\n});\n```\n\n`onSignalingError` is a separate, terminal event. Vox emits `rtc.signaling_error`\n(`{ message, generation }`) only when a WebRTC signaling failure ends the session,\nand closes the session immediately after. The event carries no `code` and no\n`recoverable` field — treat every `onSignalingError` as call-ending.\n\n## Browser connection keepalive\n\nThe gateway pings each browser WebSocket every 30 seconds and terminates a\nconnection that misses a ping/pong round trip. Without it an idle control\nsocket sends nothing between turns, and proxies, tunnels, and CDNs reap idle\nWebSockets — the browser then observes an abnormal `1006` close while the\nWebRTC media path is still healthy. The ping also gives the gateway dead-peer\ndetection, so a wedged browser releases its Vox session instead of holding it\nopen.\n\nOverride the cadence with `keepAliveIntervalMs` when an intermediary reaps\nfaster than 30 seconds:\n\n```ts\nconst gateway = createVoxRtcGateway({\n  voxHttpBase: process.env.VOX_HTTP_BASE!,\n  keepAliveIntervalMs: 15_000,\n});\n```\n\n## Reconnection\n\nThe underlying PondSocket client reconnects the socket with exponential backoff\nand re-joins the control channel automatically after a transient drop: a joined\nchannel moves to a stalled state while the socket is down and re-sends its join\nrequest once the socket reconnects. The SDK relies on that behavior rather than\ntearing the session down. Observe the transitions with `onConnectionChange`:\n\n```ts\nconst off = vox.onConnectionChange((state) => {\n  console.log(\"Vox control connection\", state);\n});\n```\n\nUse `supersedeResponseAndWait(oldGenerationId, options)` when the assistant\nmust atomically stop and replace its own active response. Continue sending\ndeltas with the generation returned by the acknowledgement.\n","readmeFilename":"README.md"}