{"_id":"voicerun-react","_rev":"10-8b6c6c25abfccd00e8cb5feae25ca7ab","name":"voicerun-react","dist-tags":{"latest":"1.0.2"},"versions":{"0.1.0":{"name":"voicerun-react","version":"0.1.0","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","_id":"voicerun-react@0.1.0","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"}],"homepage":"https://github.com/VoiceRun/voicerun-react#readme","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"dist":{"shasum":"2d6837fd49ce9495845fbb5d8a03b1e320339b2c","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-0.1.0.tgz","fileCount":10,"integrity":"sha512-cpSZePJ7k2a76sunKJ2prf0w421XRna1RJc3bR2TP2oJl3Yy9kWo4wJdljWDSzWslwr6jZyxSBkYcCIED3AirQ==","signatures":[{"sig":"MEYCIQC9WWL8RzCM5IMq7wYeiX5TrstF7FBsG9kfOI8wZvARFgIhALGC2xTd7HvBvymtKudzJkcKQaGhb8h+ND0U5l7NwRlP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263152},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"ec7820e53dbb3ecfe847e71d502a36674125c7ae","scripts":{"dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc && vite build","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish","build:examples":"vite build --config vite.examples.config.ts"},"_npmUser":{"name":"dan-voicerun","email":"dan@voicerun.com"},"repository":{"url":"git+https://github.com/VoiceRun/voicerun-react.git","type":"git"},"_npmVersion":"11.5.1","description":"React client for the VoiceRun Agents API","directories":{},"_nodeVersion":"24.7.0","dependencies":{"glob":"^11.0.1","uuid":"^9.0.0","alawmulaw":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","vite":"^6.0.0","react":"^19.0.0","eslint":"^8.46.0","ts-jest":"^29.1.1","react-dom":"^19.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/uuid":"^9.0.2","@types/react":"^19.0.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","eslint-plugin-react":"^7.33.1","@vitejs/plugin-react-swc":"^4.0.0","@typescript-eslint/parser":"^6.2.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/voicerun-react_0.1.0_1773854729466_0.17540877003613464","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"voicerun-react","version":"0.2.0","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","_id":"voicerun-react@0.2.0","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"}],"homepage":"https://github.com/VoiceRun/voicerun-react#readme","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"dist":{"shasum":"bb4fd994fb029d616ed4b6d001722bd7a0db1a13","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-0.2.0.tgz","fileCount":19,"integrity":"sha512-UmYGpvN4T6KG4yEmsf8XhCXNHhp55lfhMEjmtnig7KdONHh6ig69rfNEIXAp8eq88Xg6cREC33MaH7tOQtRX7Q==","signatures":[{"sig":"MEQCIBLIzfvQpuKCmgZHvBAbjDdbBgcJFqCbrMIUD3Ry251qAiBgfqqoZZq37ELzOxNYTLjgzUldeCHAnzyrhyBTRuSRyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480711},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"0723a884f7bdf0472b022dcc6796d453736f249f","scripts":{"dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc && vite build","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish","build:examples":"vite build --config vite.examples.config.ts"},"_npmUser":{"name":"dan-voicerun","email":"dan@voicerun.com"},"repository":{"url":"git+https://github.com/VoiceRun/voicerun-react.git","type":"git"},"_npmVersion":"11.5.1","description":"React client for the VoiceRun Agents API","directories":{},"_nodeVersion":"24.7.0","dependencies":{"glob":"^11.0.1","uuid":"^9.0.0","alawmulaw":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","jest":"^29.6.2","vite":"^6.0.0","react":"^19.0.0","eslint":"^8.46.0","motion":"^12.38.0","ts-jest":"^29.1.1","react-dom":"^19.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/uuid":"^9.0.2","@types/react":"^19.0.0","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","eslint-plugin-react":"^7.33.1","@vitejs/plugin-react-swc":"^4.0.0","class-variance-authority":"^0.7.1","@typescript-eslint/parser":"^6.2.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"peerDependencies":{"clsx":"^2.0.0","react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","motion":"^12.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","lucide-react":">=0.400.0","tailwind-merge":"^3.0.0","class-variance-authority":"^0.7.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"motion":{"optional":true},"lucide-react":{"optional":true},"tailwind-merge":{"optional":true},"class-variance-authority":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/voicerun-react_0.2.0_1773934714898_0.44644483827508896","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"voicerun-react","version":"0.2.1","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","_id":"voicerun-react@0.2.1","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun-derek","email":"derek@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"},{"name":"voicerun-chloe","email":"chloe@voicerun.com"}],"homepage":"https://github.com/VoiceRun/voicerun-react#readme","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"dist":{"shasum":"23c27123348a25fcfe5a499ddc675f9afc8a4fd4","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-0.2.1.tgz","fileCount":19,"integrity":"sha512-makIX9daXXSVHZ/BhZrE7hTgbz+KNLr9s5yb/q4wf0KzcXn9iC2UaWCJHjbS58CNHvxm+UVNzjjADL6TH+Vkmw==","signatures":[{"sig":"MEYCIQDOROoS0lg/dNK3DzbLwbrrsaAK+MwryzqVdLqhi6Y4KwIhAOyEuztJKtI4oup2rsZMsmvNoNJKu3tlopWrarA/Z7Rm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":420945},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"c9ec2fb0eaa29eb2032dfe5483b73da5f4988ae2","scripts":{"dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc && vite build","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish","build:examples":"vite build --config vite.examples.config.ts"},"_npmUser":{"name":"voicerun-chloe","email":"chloe@voicerun.com"},"repository":{"url":"git+https://github.com/VoiceRun/voicerun-react.git","type":"git"},"_npmVersion":"11.5.1","description":"React client for the VoiceRun Agents API","directories":{},"_nodeVersion":"24.7.0","dependencies":{"glob":"^11.0.1","uuid":"^9.0.0","alawmulaw":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","jest":"^29.6.2","vite":"^6.0.0","react":"^19.0.0","eslint":"^8.46.0","motion":"^12.38.0","ts-jest":"^29.1.1","react-dom":"^19.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/uuid":"^9.0.2","@types/react":"^19.0.0","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","eslint-plugin-react":"^7.33.1","@vitejs/plugin-react-swc":"^4.0.0","class-variance-authority":"^0.7.1","@typescript-eslint/parser":"^6.2.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"peerDependencies":{"clsx":"^2.0.0","react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","motion":"^12.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","lucide-react":">=0.400.0","tailwind-merge":"^3.0.0","class-variance-authority":"^0.7.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"motion":{"optional":true},"lucide-react":{"optional":true},"tailwind-merge":{"optional":true},"class-variance-authority":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/voicerun-react_0.2.1_1778768659642_0.7400074814998929","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"voicerun-react","version":"0.2.2","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","_id":"voicerun-react@0.2.2","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun-derek","email":"derek@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"},{"name":"voicerun-chloe","email":"chloe@voicerun.com"}],"homepage":"https://github.com/VoiceRun/voicerun-react#readme","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"dist":{"shasum":"47a0345b579c0c529a2e706582ef5646b4aa0e84","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-0.2.2.tgz","fileCount":19,"integrity":"sha512-Gh0/uHuR8ImCo4tH8CnU3CB+3r3S15Xg0B49Tmnb5kpWj5DPkq8UNwecghMfFfOJcOlaMxdJXjt6/82Pj5GOuQ==","signatures":[{"sig":"MEUCIAVANnxHzpdhMIf5J1SoIHE4EfQv4VlIR5rNYWXgqhpBAiEA6QZ5ror4x3R1AtkQGVsi8HjFCDObzDEqFQlYlIect5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441308},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"ca105e180126876a87e16bb5efc20ee1c40c5042","scripts":{"dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc && vite build","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish","build:examples":"vite build --config vite.examples.config.ts"},"_npmUser":{"name":"voicerun-derek","email":"derek@voicerun.com"},"repository":{"url":"git+https://github.com/VoiceRun/voicerun-react.git","type":"git"},"_npmVersion":"10.9.4","description":"React client for the VoiceRun Agents API","directories":{},"_nodeVersion":"22.22.1","dependencies":{"glob":"^11.0.1","uuid":"^9.0.0","alawmulaw":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","jest":"^29.6.2","vite":"^6.0.0","react":"^19.0.0","eslint":"^8.46.0","motion":"^12.38.0","ts-jest":"^29.1.1","react-dom":"^19.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/uuid":"^9.0.2","@types/react":"^19.0.0","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","eslint-plugin-react":"^7.33.1","@vitejs/plugin-react-swc":"^4.0.0","class-variance-authority":"^0.7.1","@typescript-eslint/parser":"^6.2.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"peerDependencies":{"clsx":"^2.0.0","react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","motion":"^12.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","lucide-react":">=0.400.0","tailwind-merge":"^3.0.0","class-variance-authority":"^0.7.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"motion":{"optional":true},"lucide-react":{"optional":true},"tailwind-merge":{"optional":true},"class-variance-authority":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/voicerun-react_0.2.2_1784142376554_0.6230088574527732","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"voicerun-react","version":"0.2.3","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","_id":"voicerun-react@0.2.3","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun-derek","email":"derek@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"},{"name":"voicerun-chloe","email":"chloe@voicerun.com"}],"homepage":"https://github.com/VoiceRun/voicerun-react#readme","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"dist":{"shasum":"78c37090767cbf7ca76100ec3bc2a5bd9327b5ef","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-0.2.3.tgz","fileCount":19,"integrity":"sha512-Lj8YP6XKTJsz22gnyxKNLsUdEEaxbUwSsPfIzg6N0G1iIirN/WdKADdoZUlGbNqCy6POKWMkw48zKs8n/CSI7Q==","signatures":[{"sig":"MEUCICBAM0HifDDxFVAnOLKkUBLqF4DIQHrUxYYGyebgeYRnAiEAjLRVTLZ5Za8vqRlvsFxl8iyAgv8vqHu81KHuB0nSsSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":455636},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"dbe7ae2dc06336560a023eac52b30d1b352ea780","scripts":{"dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc && vite build","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish","build:examples":"vite build --config vite.examples.config.ts"},"_npmUser":{"name":"voicerun-derek","email":"derek@voicerun.com"},"repository":{"url":"git+https://github.com/VoiceRun/voicerun-react.git","type":"git"},"_npmVersion":"10.9.4","description":"React client for the VoiceRun Agents API","directories":{},"_nodeVersion":"22.22.1","dependencies":{"glob":"^11.0.1","uuid":"^9.0.0","alawmulaw":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","jest":"^29.6.2","vite":"^6.0.0","react":"^19.0.0","eslint":"^8.46.0","motion":"^12.38.0","ts-jest":"^29.1.1","react-dom":"^19.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/uuid":"^9.0.2","@types/react":"^19.0.0","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","eslint-plugin-react":"^7.33.1","@vitejs/plugin-react-swc":"^4.0.0","class-variance-authority":"^0.7.1","@typescript-eslint/parser":"^6.2.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"peerDependencies":{"clsx":"^2.0.0","react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","motion":"^12.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","lucide-react":">=0.400.0","tailwind-merge":"^3.0.0","class-variance-authority":"^0.7.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"motion":{"optional":true},"lucide-react":{"optional":true},"tailwind-merge":{"optional":true},"class-variance-authority":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/voicerun-react_0.2.3_1784562417778_0.4480111049007276","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"voicerun-react","version":"1.0.1","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","_id":"voicerun-react@1.0.1","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun-derek","email":"derek@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"},{"name":"voicerun-chloe","email":"chloe@voicerun.com"}],"homepage":"https://github.com/VoiceRun/voicerun-react#readme","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"dist":{"shasum":"51a5c32687e51959386f71329312ef1f43c2d7a2","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-1.0.1.tgz","fileCount":19,"integrity":"sha512-Z2IVtnIRQBWcmFMb5xxHK87quUGnK52M/tUDxnxEabmAKYNRF5ujyqo9aglb6hVnx8N0IcwEn8QepTNEGY2Jsg==","signatures":[{"sig":"MEYCIQDsBZYPhXHNqmWBcQkITG2uLMGttxMfe5V+UbVfUuvrZwIhAMqJxNs4w+exMmRES2NG8jcS+ENegn/MRvbWYPRgsdYm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":432598},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"e1db96f820105bf1dc53059b41f3a31dd500c9ae","scripts":{"dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsc && vite build","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish","build:examples":"vite build --config vite.examples.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9d068ae-9b3b-4f36-9a7e-429512cab8a3"}},"repository":{"url":"git+https://github.com/VoiceRun/voicerun-react.git","type":"git"},"_npmVersion":"12.0.2","description":"React client for the VoiceRun Agents API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"glob":"^11.0.1","uuid":"^9.0.0","alawmulaw":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","jest":"^29.6.2","vite":"^6.0.0","react":"^19.0.0","eslint":"^8.46.0","motion":"^12.38.0","ts-jest":"^29.1.1","react-dom":"^19.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/uuid":"^9.0.2","@types/react":"^19.0.0","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","eslint-plugin-react":"^7.33.1","@vitejs/plugin-react-swc":"^4.0.0","class-variance-authority":"^0.7.1","@typescript-eslint/parser":"^6.2.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"peerDependencies":{"clsx":"^2.0.0","react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","motion":"^12.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","lucide-react":">=0.400.0","tailwind-merge":"^3.0.0","class-variance-authority":"^0.7.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"motion":{"optional":true},"lucide-react":{"optional":true},"tailwind-merge":{"optional":true},"class-variance-authority":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/voicerun-react_1.0.1_1786380374206_0.794419476145007","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"voicerun-react","version":"1.0.2","description":"React client for the VoiceRun Agents API","type":"module","main":"./dist/index.umd.js","module":"./dist/index.es.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"scripts":{"build":"tsc && vite build","dev":"vite build --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","prepare":"npm run build","examples":"vite --config vite.examples.config.ts","build:examples":"vite build --config vite.examples.config.ts","typecheck":"tsc --noEmit","publish:clean":"rm -rf node_modules package-lock.json && npm install && npm publish"},"keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","peerDependencies":{"class-variance-authority":"^0.7.0","clsx":"^2.0.0","lucide-react":">=0.400.0","motion":"^12.0.0","react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","tailwind-merge":"^3.0.0"},"peerDependenciesMeta":{"class-variance-authority":{"optional":true},"clsx":{"optional":true},"tailwind-merge":{"optional":true},"motion":{"optional":true},"lucide-react":{"optional":true}},"dependencies":{"alawmulaw":"^6.0.0","glob":"^11.0.1","uuid":"^11.1.1"},"devDependencies":{"@types/jest":"^29.5.3","@types/node":"^20.4.5","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@typescript-eslint/eslint-plugin":"^7.18.0","@typescript-eslint/parser":"^7.18.0","@vitejs/plugin-react-swc":"^4.0.0","class-variance-authority":"^0.7.1","clsx":"^2.1.1","eslint":"^8.46.0","eslint-plugin-react":"^7.33.1","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.6.2","lucide-react":"^0.577.0","motion":"^12.38.0","react":"^19.0.0","react-dom":"^19.0.0","tailwind-merge":"^3.5.0","ts-jest":"^29.1.1","typescript":"^5.1.6","vite":"^6.0.0","vite-plugin-dts":"^4.0.0"},"repository":{"type":"git","url":"git+https://github.com/VoiceRun/voicerun-react.git"},"engines":{"node":">=14"},"gitHead":"ebc625b83ddaf2b224abafd70006ea2e9bd80314","_id":"voicerun-react@1.0.2","bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"homepage":"https://github.com/VoiceRun/voicerun-react#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-stoeWl0Tg2pTMZsdtHxy34xxNrw4AEt9e2LsmSRJMWjftjgxQGKRB8fHaoHhqaGKq5ob9cLkil823ihj4Xp/MQ==","shasum":"8276e717642cb6b715a8a549c44bf2203a5d3104","tarball":"https://registry.npmjs.org/voicerun-react/-/voicerun-react-1.0.2.tgz","fileCount":19,"unpackedSize":431934,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAIRvtC6o2rYjG1ISurWfhyeut9E3I07NYw71dZIY08kAiEA57DXQntF5ZIyx6Vryw2lWyfVeJ65fe2uh0FVDn8FPT8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9d068ae-9b3b-4f36-9a7e-429512cab8a3"}},"directories":{},"maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun-derek","email":"derek@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"},{"name":"voicerun-chloe","email":"chloe@voicerun.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/voicerun-react_1.0.2_1788225034110_0.9189963223408226"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T17:25:29.465Z","modified":"2026-09-01T01:10:34.473Z","0.1.0":"2026-03-18T17:25:29.611Z","0.2.0":"2026-03-19T15:38:35.109Z","0.2.1":"2026-05-14T14:24:19.801Z","0.2.2":"2026-07-15T19:06:16.704Z","0.2.3":"2026-07-20T15:46:57.987Z","1.0.1":"2026-08-10T16:46:14.349Z","1.0.2":"2026-09-01T01:10:34.324Z"},"bugs":{"url":"https://github.com/VoiceRun/voicerun-react/issues"},"author":{"name":"VoiceRun","email":"dan@voicerun.com"},"license":"MIT","homepage":"https://github.com/VoiceRun/voicerun-react#readme","keywords":["voicerun","audio","speech","websocket","react","voice","conversation"],"repository":{"type":"git","url":"git+https://github.com/VoiceRun/voicerun-react.git"},"description":"React client for the VoiceRun Agents API","maintainers":[{"name":"dan-voicerun","email":"dan@voicerun.com"},{"name":"voicerun-derek","email":"derek@voicerun.com"},{"name":"voicerun_roy","email":"roy@voicerun.com"},{"name":"voicerun-chloe","email":"chloe@voicerun.com"}],"readme":"# VoiceRun React Integration\n\nA React library for integrating VoiceRun Agent functionality into your applications. Includes a WebSocket-based client for real-time audio communication and pre-built UI components for agent call interfaces.\n\n## Features\n\n- Real-time microphone input capture\n- High-quality audio playback\n- Audio level monitoring and speech detection\n- WebSocket-based communication\n- React Context integration\n- Pre-built UI components (visualizers, controls, state indicators)\n\n## Installation\n\n```bash\nnpm install voicerun-react\n# or\nyarn add voicerun-react\n```\n\nTo use the UI components (`AgentPanel`, `AuraVisualizer`, `BarVisualizer`, etc.), also install the optional peer dependencies:\n\n```bash\nnpm install class-variance-authority clsx tailwind-merge motion lucide-react\n```\n\n## Quick Start\n\n```jsx\nimport { VoiceRunProvider, useVoiceRun } from 'voicerun-react';\n\n// Configure the provider — connect through a web entrypoint\nconst config = {\n  entrypointId: 'your-entrypoint-id',\n  inputData: { accountId: 'acct-42' }, // optional, exposed to the agent as input data\n  logLevel: 'ERROR'\n};\n\n// Wrap your app with the provider\nfunction App() {\n  return (\n    <VoiceRunProvider config={config} autoConnect={true}>\n      <YourComponent />\n    </VoiceRunProvider>\n  );\n}\n\n// Use the hook in your components\nfunction YourComponent() {\n  const {\n    connect,\n    disconnect,\n    startListening,\n    stopListening,\n    sendTextEvent,\n    isConnected,\n    isListening,\n    isPlaying,\n    audioStats,\n    error\n  } = useVoiceRun();\n\n  // Your component logic here\n}\n```\n\n## API Reference\n\n### VoiceRunProvider\n\nThe main provider component that sets up the WebSocket client and context.\n\n#### Props\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| config | WebSocketClientConfig | Yes | Configuration for the WebSocket client |\n| autoConnect | boolean | No | Whether to connect automatically on mount |\n| children | ReactNode | Yes | Child components |\n\n#### WebSocketClientConfig\n\n| Property | Type | Required | Default | Description |\n|----------|------|----------|---------|-------------|\n| entrypointId | string | Yes | - | Web entrypoint to connect through |\n| inputData | Record<string, unknown> | No | - | Structured input data for the agent session |\n| logLevel | 'DEBUG' \\| 'INFO' \\| 'WARN' \\| 'ERROR' | No | 'ERROR' | Logging level |\n\nEntrypoints are created in the VoiceRun API (`/v1/entrypoints`) and route each session to\none of the entrypoint's weighted releases. This SDK supports `web` entrypoints: the page's\norigin must be listed in the entrypoint's `allowedOrigins`.\n\n### useVoiceRun Hook\n\nThe hook provides access to all VoiceRun functionality.\n\n#### Returns\n\n| Property | Type | Description |\n|----------|------|-------------|\n| connect | () => Promise<void> | Connect to the WebSocket server |\n| disconnect | () => void | Disconnect from the WebSocket server |\n| startListening | () => Promise<void> | Start capturing audio from microphone |\n| stopListening | () => void | Stop capturing audio from microphone |\n| sendTextEvent | (text: string) => void | Send a text message to the server |\n| isConnected | boolean | Connection status |\n| isListening | boolean | Microphone capture status |\n| isPlaying | boolean | Audio playback status |\n| audioStats | AudioStats \\| null | Current audio statistics |\n| debugMessages | DebugMessage[] | Debug events received from the backend |\n| error | string \\| null | Error message if any |\n\n#### AudioStats Interface\n\n```typescript\ninterface AudioStats {\n  level: number;        // Audio level (0-1)\n  isSpeaking: boolean;  // Speech detection status\n  isPlayback?: boolean; // Whether stats are for playback\n}\n```\n\n#### DebugMessage Interface\n\n```typescript\ninterface DebugMessage {\n  type: string;                    // Debug event type\n  turn: number;                    // Conversation turn index\n  name: string;                    // Event name\n  data: Record<string, unknown>;   // Event payload\n}\n```\n\n## UI Components\n\nPre-built components for building agent call interfaces. Requires [Tailwind CSS](https://tailwindcss.com/) and the optional peer dependencies listed above.\n\n### AgentPanel\n\nFull call UI with aura visualizer, state indicator, and controls. Drop this inside a `VoiceRunProvider` for a complete agent call experience.\n\n```jsx\nimport { VoiceRunProvider, AgentPanel } from 'voicerun-react';\n\nfunction CallPage() {\n  return (\n    <VoiceRunProvider config={config}>\n      <AgentPanel color=\"#1FD5F9\" onDisconnect={() => console.log('done')} />\n    </VoiceRunProvider>\n  );\n}\n```\n\n### AuraVisualizer\n\nWebGL shader-based aura that responds to agent state and audio levels. Uses an arrow-shaped SDF with animated domain warping.\n\n```jsx\nimport { AuraVisualizer, deriveAgentState } from 'voicerun-react';\n\n<AuraVisualizer\n  state={deriveAgentState({ isConnected, isListening, isPlaying })}\n  audioLevel={audioStats?.level ?? 0}\n  size=\"lg\"           // \"sm\" | \"md\" | \"lg\" | \"xl\"\n  shapeScale={2.0}    // multiplier for inner shape size\n  color=\"#1FD5F9\"\n  themeMode=\"dark\"    // \"dark\" | \"light\"\n/>\n```\n\n### BarVisualizer\n\nAnimated bar visualizer driven by agent state and audio levels. Bars form an arrow/play-button silhouette.\n\n```jsx\nimport { BarVisualizer, deriveAgentState } from 'voicerun-react';\n\n<BarVisualizer\n  state={deriveAgentState({ isConnected, isListening, isPlaying })}\n  audioLevel={audioStats?.level ?? 0}\n  size=\"md\"           // \"sm\" | \"md\" | \"lg\" | \"xl\"\n  color=\"#22c55e\"\n/>\n```\n\n### AgentControlBar\n\nMic toggle, disconnect button, inline visualizer, and status text.\n\n```jsx\nimport { AgentControlBar } from 'voicerun-react';\n\n<AgentControlBar\n  variant=\"pill\"      // \"default\" | \"outline\" | \"pill\"\n  onDisconnect={() => router.push('/')}\n/>\n```\n\n### AgentStateIndicator\n\nColored animated pill showing the current agent state.\n\n```jsx\nimport { AgentStateIndicator, deriveAgentState } from 'voicerun-react';\n\n<AgentStateIndicator\n  state={deriveAgentState({ isConnected, isListening, isPlaying })}\n/>\n```\n\n### Utilities\n\n```typescript\nimport { deriveAgentState, cn } from 'voicerun-react';\nimport type { AgentState } from 'voicerun-react';\n\n// Derive state from hook values\nconst state: AgentState = deriveAgentState({ isConnected, isListening, isPlaying });\n// Returns: \"disconnected\" | \"connecting\" | \"listening\" | \"thinking\" | \"speaking\"\n\n// Tailwind class merging utility\nconst classes = cn(\"base-class\", condition && \"conditional-class\");\n```\n\n## Technical Details\n\n### Audio Processing\n\n- Input audio is captured at the system's native sample rate\n- Automatically downsampled to 16kHz for transmission\n- Converted to μ-law encoding for efficient transfer\n- Real-time audio level monitoring and speech detection\n- Supports both microphone input and audio playback\n\n### WebSocket Communication\n\n- Bi-directional audio streaming\n- Automatic reconnection handling\n- Session management with unique call and stream IDs\n- Support for text events\n- Error handling and status monitoring\n\n## Example Usage\n\n```jsx\nfunction VoiceChat() {\n  const {\n    connect,\n    startListening,\n    stopListening,\n    isConnected,\n    isListening,\n    audioStats\n  } = useVoiceRun();\n\n  useEffect(() => {\n    // Connect on component mount\n    connect();\n    return () => disconnect();\n  }, []);\n\n  return (\n    <div>\n      <button\n        onClick={() => isListening ? stopListening() : startListening()}\n      >\n        {isListening ? 'Stop' : 'Start'} Listening\n      </button>\n\n      {audioStats && (\n        <div>\n          Audio Level: {audioStats.level}\n          Speaking: {audioStats.isSpeaking ? 'Yes' : 'No'}\n        </div>\n      )}\n    </div>\n  );\n}\n```\n\n## Publishing\n\nTo publish a clean build to npm:\n\n```bash\nnpm run publish:clean\n```\n\nThis removes `node_modules` and `package-lock.json`, does a fresh `npm install`, builds the package, and publishes with public access. This ensures the published package is built from a clean dependency tree.\n\n## Best Practices\n\n1. Always wrap your application or the relevant component tree with `VoiceRunProvider`\n2. Handle connection errors appropriately\n3. Clean up resources by calling `disconnect` when done\n4. Monitor `audioStats` for audio level visualization\n5. Use `isConnected` status to show connection state\n6. Handle microphone permissions appropriately\n\n## Browser Support\n\n- Chrome 74+\n- Firefox 75+\n- Safari 14.1+\n- Edge 79+\n\nRequires browser support for:\n- WebSocket API\n- Web Audio API\n- MediaDevices API\n- AudioWorklet (with fallback to ScriptProcessorNode)\n- WebGL (for AuraVisualizer)\n\n## License\n\nMIT License\n","readmeFilename":"README.md"}