{"_id":"@animated-waffle/avatar","_rev":"13-84e662c933dc69aa5295485abe5fa9c2","name":"@animated-waffle/avatar","dist-tags":{"latest":"0.2.7"},"versions":{"0.1.0":{"name":"@animated-waffle/avatar","version":"0.1.0","license":"MIT","_id":"@animated-waffle/avatar@0.1.0","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"74be029dd7113a7628a7a14d814d1234a6e33eae","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.1.0.tgz","fileCount":7,"integrity":"sha512-5kKEkY3SKRUxVvy37bDbnKRo7DyfORTjNG5sxO0uaXKAwLimW+Qz+ZTs3AcLCDbUozgP6NPYJhprzhEkZQxLbw==","signatures":[{"sig":"MEUCIQClGkDK/NrZq5K2scRzsywYG/+VbfAxwRwQMLNUvCbdcQIgYrIjSPMyw9aGuLu1aEJtXBPx5MHMg4Gze0jS0ORrWQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173514},"type":"module","_from":"file:animated-waffle-avatar-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/7e4cb4f58aaeddd30267216fb422ba71/animated-waffle-avatar-0.1.0.tgz","_integrity":"sha512-5kKEkY3SKRUxVvy37bDbnKRo7DyfORTjNG5sxO0uaXKAwLimW+Qz+ZTs3AcLCDbUozgP6NPYJhprzhEkZQxLbw==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.1.0_1786058238448_0.5308628549965311","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@animated-waffle/avatar","version":"0.1.1","license":"MIT","_id":"@animated-waffle/avatar@0.1.1","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"c17764504f66cfb061231ec4163c0a82b5fcccae","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.1.1.tgz","fileCount":7,"integrity":"sha512-vadWi8w6OwZbiwBJAaQvJ6kEsjSWTQetki5Tw++3bOPZXakDb8r+/W3gTF+yUo/kv9ANj8waOHuehfaIglGhHg==","signatures":[{"sig":"MEQCID+UN3MmraCgZQf6kZiqeoojrwFC/BAY8foARDQ/nlMRAiBBJuCHs6DKtUqOLFEw27RtadZP55Rs5FJLirJjZTMCjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175617},"type":"module","_from":"file:animated-waffle-avatar-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/ec2090a2a095d344a57615344d4fe08e/animated-waffle-avatar-0.1.1.tgz","_integrity":"sha512-vadWi8w6OwZbiwBJAaQvJ6kEsjSWTQetki5Tw++3bOPZXakDb8r+/W3gTF+yUo/kv9ANj8waOHuehfaIglGhHg==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.1.1_1786154653745_0.07541955688522028","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@animated-waffle/avatar","version":"0.1.2","license":"MIT","_id":"@animated-waffle/avatar@0.1.2","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"8173c894dc40463ad710cdd82ddf8857b1ec0cb7","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.1.2.tgz","fileCount":7,"integrity":"sha512-D8fGg065DZK1tI1I9YWZZNbcdY+Y6WCN98IDDbOQHcaLAyf463TZNlsk1CK+XlJBkQZHSPN1yziH2YNoA1LMHw==","signatures":[{"sig":"MEUCIAxgnEyxp1pl1VhQ3ObZqr+fDst+2UBePKixLMv4eQG9AiEAkx5cm31wyS3j4xbje+D18InyWqd91HmDN7ED4zJXR6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176161},"type":"module","_from":"file:animated-waffle-avatar-0.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/51607816dd6389ac5519d26d01724bf7/animated-waffle-avatar-0.1.2.tgz","_integrity":"sha512-D8fGg065DZK1tI1I9YWZZNbcdY+Y6WCN98IDDbOQHcaLAyf463TZNlsk1CK+XlJBkQZHSPN1yziH2YNoA1LMHw==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.1.2_1786235010167_0.6555168800380105","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@animated-waffle/avatar","version":"0.1.3","license":"MIT","_id":"@animated-waffle/avatar@0.1.3","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"cca1a984643af801621b3c510af3d4c30ac28c67","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.1.3.tgz","fileCount":7,"integrity":"sha512-6zwBokCk9boOWZ3J0JqPQdF5ztZujBrfqYxecmcfWRuZ8pqGJ7+v5JSTQEULsE3+xp9xImVLbWpM/Z6FpOCdJw==","signatures":[{"sig":"MEUCIFieZJm49suFBwsyUdlTApmQCal5RVrbuM2vo3ot5XinAiEAmCb5LgecQhZ++Hg5o2tfXKZsqJb/GkLf3Z7Fn2unI8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174058},"type":"module","_from":"file:animated-waffle-avatar-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/a6e1081fbaa9ece0d12e95c0f86ae1bc/animated-waffle-avatar-0.1.3.tgz","_integrity":"sha512-6zwBokCk9boOWZ3J0JqPQdF5ztZujBrfqYxecmcfWRuZ8pqGJ7+v5JSTQEULsE3+xp9xImVLbWpM/Z6FpOCdJw==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.1.3_1786258407843_0.6301205664793494","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@animated-waffle/avatar","version":"0.1.4","license":"MIT","_id":"@animated-waffle/avatar@0.1.4","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"f383f2abb3dfd625b663611367e0f590b8f79fb6","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.1.4.tgz","fileCount":7,"integrity":"sha512-52iM1FS3bBMcugh/6aym8ad4BAHcfCrsVisvBwAXnuextqnapFmLpj5W9NBZy+0Vx//Ys3SKpT9BXT5RwW4bqg==","signatures":[{"sig":"MEUCIQCb9C10dPK+EWpT6oSJqFWchdkFfbWhMi8lri/gUOK6xwIgVKjWfiXoyWmE7h0YgwenCSUtUqUgXf2ZY7JLK4UYTRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176161},"type":"module","_from":"file:animated-waffle-avatar-0.1.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/ea9604299849357de3b8da39076bb2a0/animated-waffle-avatar-0.1.4.tgz","_integrity":"sha512-52iM1FS3bBMcugh/6aym8ad4BAHcfCrsVisvBwAXnuextqnapFmLpj5W9NBZy+0Vx//Ys3SKpT9BXT5RwW4bqg==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.1.4_1786267235438_0.4077175944049529","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@animated-waffle/avatar","version":"0.2.0","license":"MIT","_id":"@animated-waffle/avatar@0.2.0","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"4acc5b2fd174d3d1302d7df3b7299fdd0971d52f","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.0.tgz","fileCount":7,"integrity":"sha512-tiSqxWvmsKbdHI9Icxx8eEB8r6m9KPiOZI9QadKT4seJX2UNfknB9b3ZKsxxqCovgvXQFdTZdZEXY0eM/FzLOA==","signatures":[{"sig":"MEUCIQD/8p95tmuj0vtxu6KKrv3ii+QLZOlK9gcRv5fsJyay3AIgBC1XixeOBMkbkKJotmqGT1eG4F2x9IWFUTxK5W0eAa0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176685},"type":"module","_from":"file:animated-waffle-avatar-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/48196a56164f8c6e6f24766196ddc6cb/animated-waffle-avatar-0.2.0.tgz","_integrity":"sha512-tiSqxWvmsKbdHI9Icxx8eEB8r6m9KPiOZI9QadKT4seJX2UNfknB9b3ZKsxxqCovgvXQFdTZdZEXY0eM/FzLOA==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.4.2","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.4.1","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.0_1786279414529_0.4931601853054035","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@animated-waffle/avatar","version":"0.2.1","license":"MIT","_id":"@animated-waffle/avatar@0.2.1","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"f3d2bb10e34557a6adc2bceaeaf8a520af3e0a58","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.1.tgz","fileCount":7,"integrity":"sha512-5ANPk/nkojDf9+AL21LomV3uDm8Yf0XFZeNJw7IgNRyExH3KEGaqJC6UbxnwkwFwkb/TqF6ufJYOhYLSGUbOng==","signatures":[{"sig":"MEUCIQDECiMY8y0G0htXt+TtMPeA3uu4Avxdj6K4+kIehCxI5gIgSCUrMLuqrFKnVku2ktuJy1KL6P/V0YUDTcGz6Zdt/co=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176161},"type":"module","_from":"file:animated-waffle-avatar-0.2.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/371280fe672d07330f40175e2e6b0735/animated-waffle-avatar-0.2.1.tgz","_integrity":"sha512-5ANPk/nkojDf9+AL21LomV3uDm8Yf0XFZeNJw7IgNRyExH3KEGaqJC6UbxnwkwFwkb/TqF6ufJYOhYLSGUbOng==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.1_1786285151601_0.7370302296380706","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@animated-waffle/avatar","version":"0.2.2","license":"MIT","_id":"@animated-waffle/avatar@0.2.2","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"0c920cadf17c70a348a1917c3b9b27514e6c6ec8","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.2.tgz","fileCount":7,"integrity":"sha512-Zq8QBTcopKSHsjkrwVw0vurLtcBgB3aZ+2eZl70kt6saXoegInQakL3CwdqfJP0dMipViYay1PBuqTe6Vma0Mw==","signatures":[{"sig":"MEYCIQD4ny3AQ/KIoxY4B1pgrmPaAgybd7e/6Jz8cDn+Muv48QIhAOwE30RwvSIyCB5JM3ofImRNT5BAxqN/Y+ATy5w+1PC6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174814},"type":"module","_from":"file:animated-waffle-avatar-0.2.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/af68dc15fb66559b006c3c1011446fef/animated-waffle-avatar-0.2.2.tgz","_integrity":"sha512-Zq8QBTcopKSHsjkrwVw0vurLtcBgB3aZ+2eZl70kt6saXoegInQakL3CwdqfJP0dMipViYay1PBuqTe6Vma0Mw==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.2_1786290725122_0.6386359692221522","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@animated-waffle/avatar","version":"0.2.3","license":"MIT","_id":"@animated-waffle/avatar@0.2.3","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"582ee0e272beebd50d85ca656c07e8fc2bd7a813","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.3.tgz","fileCount":7,"integrity":"sha512-i+/vCmK0WLV7s9xvjdQJn1stn4fgjDxVub5b7gIVzHrALWw+oEq7ZCkvbE5u+PNqTZAWyVd6htNpr479T9YYDw==","signatures":[{"sig":"MEUCIQDyRkQd+oorfxazAPPHJA9xZrNGbtZtBoq3HOfX0xGKhgIgC4aptKPahcdVsJGXy3lbIa+Jy8xDUOqEJSlydrK6/rw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176475},"type":"module","_from":"file:animated-waffle-avatar-0.2.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"},"_resolved":"/private/var/folders/zz/p47ls9113_18sv2gw6g113mc0000gn/T/a33ae97ed8ddc1648086661fe19b2a9b/animated-waffle-avatar-0.2.3.tgz","_integrity":"sha512-i+/vCmK0WLV7s9xvjdQJn1stn4fgjDxVub5b7gIVzHrALWw+oEq7ZCkvbE5u+PNqTZAWyVd6htNpr479T9YYDw==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.6.2","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.3_1786462573067_0.6468200026738071","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@animated-waffle/avatar","version":"0.2.4","license":"MIT","_id":"@animated-waffle/avatar@0.2.4","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"f59fb8ad0f4626de4680dd1ddc4352ed35594a97","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.4.tgz","fileCount":7,"integrity":"sha512-H8673P+Dx7eCPOQ/dfCE0SzLZu/RLIqcKki0KjPjOMXDDEO5/m55bR5Wl7SgF772gsmuTCBOH7wd9ZCu0DxfGw==","signatures":[{"sig":"MEQCIAJb1p3r2YDLrUEruopOPN+0psqCcdh6T0nef5hCdgjrAiA+48ml0gK2Ky3s4ptwwmKQT6Y20lMHbsdcizlOvNvn2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179692},"type":"module","_from":"file:animated-waffle-avatar-0.2.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/0d6d20a1c5f7fefca896a2ad9a5189ff/animated-waffle-avatar-0.2.4.tgz","_integrity":"sha512-H8673P+Dx7eCPOQ/dfCE0SzLZu/RLIqcKki0KjPjOMXDDEO5/m55bR5Wl7SgF772gsmuTCBOH7wd9ZCu0DxfGw==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.4_1786507885550_0.5494025303160903","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@animated-waffle/avatar","version":"0.2.5","license":"MIT","_id":"@animated-waffle/avatar@0.2.5","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"98985af5e9189e034539fd6d0c6c8de53674099e","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.5.tgz","fileCount":10,"integrity":"sha512-U7PDsgam3grH9kapilBKodF2KqAfmZzNV9Xtp9x8Iq84hJFPlDUA6wt4iDQ/M9xc/XWI+qEUre9vO9rzGJBWQg==","signatures":[{"sig":"MEYCIQCnsbGjRHz7lf5evpLzM9n78lEelxixyvFpVhIa8zOrxAIhANTmd9hVDDhg8fR/tqafA55MA/UWZknVFN6mlLX/l1u6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182445},"type":"module","_from":"file:animated-waffle-avatar-0.2.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./performance-tags":{"types":"./dist/performance-tags.d.ts","import":"./dist/performance-tags.js","default":"./dist/performance-tags.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarafans1","email":"wen@narya.ai"},"_resolved":"/private/var/folders/51/f13md4316_3b03h3dfjtndrr0000gn/T/9f706393f296bfa2b33ab7bef69a4550/animated-waffle-avatar-0.2.5.tgz","_integrity":"sha512-U7PDsgam3grH9kapilBKodF2KqAfmZzNV9Xtp9x8Iq84hJFPlDUA6wt4iDQ/M9xc/XWI+qEUre9vO9rzGJBWQg==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.12.1","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.5_1787316749842_0.8060665363430239","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@animated-waffle/avatar","version":"0.2.6","license":"MIT","_id":"@animated-waffle/avatar@0.2.6","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"homepage":"https://animated-waffle.narya.ai/docs/sdk","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"72c28e9d9b5e237e01ff2c05509b136da08e70ed","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.6.tgz","fileCount":10,"integrity":"sha512-Mol8/XzPXNqI98iUnorRXMyULhZLyeMe+ZInWWz8Y/DIXug51OMVSvQ6xoNwoARlmABcWwnQs9HRC65NRNo77g==","signatures":[{"sig":"MEQCIB6x6+Je+2DHBsVcwkibRa9MakeXp03mfbtHBYdEg2KqAiBuBLE6nB/8VJ5zo1q8xRqGy94ycChEPglKJpVRpA69eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184231},"type":"module","_from":"file:animated-waffle-avatar-0.2.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./performance-tags":{"types":"./dist/performance-tags.d.ts","import":"./dist/performance-tags.js","default":"./dist/performance-tags.js"}},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"},"_resolved":"/private/tmp/animated-waffle-main-package-artifacts.dSykHE/animated-waffle-avatar-0.2.6.tgz","_integrity":"sha512-Mol8/XzPXNqI98iUnorRXMyULhZLyeMe+ZInWWz8Y/DIXug51OMVSvQ6xoNwoARlmABcWwnQs9HRC65NRNo77g==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.8.0","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"tmp":"tmp/avatar_0.2.6_1787403090979_0.5432107835022189","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"_id":"@animated-waffle/avatar@0.2.7","bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"dist":{"shasum":"138a24a5a732b2bd12ece49a9d9559b5f73d2ca5","tarball":"https://registry.npmjs.org/@animated-waffle/avatar/-/avatar-0.2.7.tgz","fileCount":10,"integrity":"sha512-CdofAfJCL0HJxZlx4l+Pe3meTBV5wGYB8pC5CRIIXbDjwbJtLHApkRoe7Qsg/TENDK0s1X9gzcOdkfxdLhxzgA==","signatures":[{"sig":"MEUCIGQ20NbyjmIPe4wUueRd/TPMHb+OczI+q6InS9/cLpYXAiEA2/tJ8UtCf/onq/Kd8u2bsu4q9P/8ZAl6SgXX618GYmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB9vi7+JebKfBdflzeZ0C7Y04FHg1x2/gR3JlLNpTkkLAiEA6HV4JbihsCmuL3+IXVFXjgUBn30mYtyguP3h2KrSqio="}],"unpackedSize":186131},"name":"@animated-waffle/avatar","type":"module","_from":"file:/tmp/aniwaffle-sdk-patch-pack/animated-waffle-avatar-0.2.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./performance-tags":{"types":"./dist/performance-tags.d.ts","import":"./dist/performance-tags.js","default":"./dist/performance-tags.js"}},"license":"MIT","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc -p tsconfig.json --noEmit"},"version":"0.2.7","_npmUser":{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"},"homepage":"https://animated-waffle.narya.ai/docs/sdk","_resolved":"/tmp/aniwaffle-sdk-patch-pack/animated-waffle-avatar-0.2.7.tgz","_integrity":"sha512-CdofAfJCL0HJxZlx4l+Pe3meTBV5wGYB8pC5CRIIXbDjwbJtLHApkRoe7Qsg/TENDK0s1X9gzcOdkfxdLhxzgA==","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"_npmVersion":"11.8.0","description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","directories":{},"maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"@met4citizen/headaudio":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","three":"0.185.1","vitest":"^3.2.4","typescript":"^5.7.2","@types/three":"0.185.1","@pixiv/three-vrm":"3.5.5"},"peerDependencies":{"three":">=0.185.0","@pixiv/three-vrm":"^3.5.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/avatar_0.2.7_1790748919139_0.12256683071695762"}}},"time":{"created":"2026-08-06T23:17:18.204Z","modified":"2026-09-30T06:15:19.384Z","0.1.0":"2026-08-06T23:17:18.600Z","0.1.1":"2026-08-08T02:04:13.915Z","0.1.2":"2026-08-09T00:23:30.332Z","0.1.3":"2026-08-09T06:53:28.010Z","0.1.4":"2026-08-09T09:20:35.604Z","0.2.0":"2026-08-09T12:43:34.657Z","0.2.1":"2026-08-09T14:19:11.738Z","0.2.2":"2026-08-09T15:52:05.270Z","0.2.3":"2026-08-11T15:36:13.240Z","0.2.4":"2026-08-12T04:11:25.694Z","0.2.5":"2026-08-21T12:52:29.991Z","0.2.6":"2026-08-22T12:51:31.127Z","0.2.7":"2026-09-30T06:15:19.231Z"},"bugs":{"url":"https://github.com/NaryaAI/animated-waffle/issues"},"license":"MIT","homepage":"https://animated-waffle.narya.ai/docs/sdk","repository":{"url":"git+https://github.com/NaryaAI/animated-waffle.git","type":"git","directory":"packages/avatar"},"description":"VRM avatar renderer and renderer-neutral performance coordination for Narya Animated Waffle talking Agents.","maintainers":[{"name":"tarafans1","email":"wen@narya.ai"},{"name":"spacemeowx2","email":"spacemeowx2@gmail.com"}],"readme":"# `@animated-waffle/avatar`\n\nVRM avatar renderer plus renderer-neutral performance coordination for Narya\nAnimated Waffle talking Agents.\n\nThis is the advanced, low-level package. If you only want to embed a published Agent with\nits avatar, use [`@animated-waffle/react`](../waffle-react) — it wraps this\npackage in a single `useWaffle` hook. Reach for `@animated-waffle/avatar`\ndirectly only when the application intentionally owns its renderer or transport\nlifecycle, picks its own model, or authors expression contracts.\n\n```bash\nnpm install @animated-waffle/avatar three @pixiv/three-vrm\n```\n\n`three` and `@pixiv/three-vrm` are peer dependencies so the application owns one\nthree.js instance.\n\n## Two layers, one package\n\n**Performance coordination** is renderer-neutral and pulls in no three.js. It\nowns signal timing and face ownership, not rendering:\n\n- live microphone, tab, WebRTC, or file audio drives the avatar without ASR;\n- semantic emotion and vocal-action cues use the reported speaking lifecycle\n  and a browser monotonic timer; they are approximate, not media-clock synced;\n- out-of-order and stale streams are rejected;\n- the local HeadAudio viseme classifier is the mouth fallback;\n- the face coordinator assigns one owner to articulation, mouth affect, brows,\n  lids, gaze, blink, cheeks/nose and authored effects.\n\n```ts\nimport { createAvatarPerformanceCoordinator } from \"@animated-waffle/avatar\";\n\nconst coordinator = createAvatarPerformanceCoordinator({\n  timing: \"live-input\",\n  // Override these URLs if the host serves HeadAudio assets elsewhere.\n  // audioFallbackFactory: createBrowserHeadAudioFallback({ modelUrl, workletUrl }),\n});\ncoordinator.setStage(stage);\ncoordinator.setAudioTrack(sourceTrack); // immediate local mouth + VAD\n```\n\nManaged-runtime emotion and vocal-action cues arrive through `handleEvent`.\n`handleAgentStartedSpeaking` / `handleAgentStoppedSpeaking` anchor the cue\ntimeline approximately for managed Agent playback. The local HeadAudio mouth\nstill analyzes the actual remote audio track.\n\n**The VRM renderer** implements the `AvatarStageController` boundary the\ncoordinator consumes. three.js enters the module graph only through the dynamic\nimport inside `createStageController`, so a coordination-only consumer never\npays for the renderer chunk:\n\n```ts\nimport { createStageController, MODELS, resolvePresentationFraming }\n  from \"@animated-waffle/avatar\";\n\nconst stage = await createStageController(container);\nstage.setFraming(resolvePresentationFraming(MODELS.reina));\nawait stage.loadModel(MODELS.reina);\ncoordinator.setStage(stage);\n```\n\n`StageController.destroy()` means permanent host/window teardown. Never call it\nfor voice disconnect, reconnect, or session replacement. Likewise,\n`AvatarPerformanceCoordinator`, direct audio-track wiring, and `setStage` are\nadvanced lifecycle APIs; the declarative React API owns those bindings for the\nnormal managed-Agent path.\n\nThe package also exports the authored expression contracts each built-in\ncharacter resolves against, the 55-tag performance vocabulary, and transcript\ntag segmentation.\n\n## Avatar sources\n\nSource inspection validates the upload shell (name, size, MIME, URL) and\nnormalizes metadata. It does not parse VRM binary contents — the application\ninjects an `AvatarLoader` backed by its renderer to do that. After loading, pass\nthe runtime expression manager to `inspectVrmRigCapabilities` to verify actual\nrig expression support.\n\n## HeadAudio assets\n\nThe local viseme fallback loads its worklet and model at runtime from\n`DEFAULT_HEAD_AUDIO_WORKLET_URL` and `DEFAULT_HEAD_AUDIO_MODEL_URL`\n(`/vendor/headaudio/…` by default). Serve those files from your app, or pass\nyour own URLs to `createBrowserHeadAudioFallback`.\n","readmeFilename":"README.md"}