{"_id":"@thalovant/sdk","_rev":"73-3966354ff1d3e9174e286c1770bd1d45","name":"@thalovant/sdk","dist-tags":{"latest":"0.9.0"},"versions":{"0.2.0":{"name":"@thalovant/sdk","version":"0.2.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"be46a17d11f060fbccbe72a30b4f0b27edac5460","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.0.tgz","fileCount":33,"integrity":"sha512-VZEfP4St/BrLThW/rxSvU44XN1UQc6Wvu1PsWyJCzuDxx5oERIvKWYW3WnK9kizhYhzty9TuEMKY+gluP0qMBw==","signatures":[{"sig":"MEQCIDKK9AiJWZmMRsj2Woj+LioVN72ParqQ25/Oys6m5axMAiA+rnDg/yn9iIc6PDSamt59vR24CNshjZItULbr7SI1lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81735},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"299e26ab34e931782b264243a3187008fffe5ef1","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub HTTPS clients and agents","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1780688024376_0.23634114777948456","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@thalovant/sdk","version":"0.2.1","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"f8f5d01b723c959c4f97c4080f5b14b00609de5c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.1.tgz","fileCount":36,"integrity":"sha512-Up+Ob7YDHlomVRU+NUcvqTvlNphdVUaDjvzN/h9r18mmaEjVcYgS610islTIe1a2ZkPysY8pTYsYlfk9yKXLJg==","signatures":[{"sig":"MEUCIH0eJRH2w4YpSSmOdPSxVFUcGbq+aDWcG1rQ6JY0ZfPsAiEA7c/wphl4MN3+FuRwcM3w4cNK6hQuFHg9mwdQVN+tzFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100513},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"cf5e07cacbd836e61642a96c14235b1f6f841ac9","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1780876427883_0.46088760120174266","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@thalovant/sdk","version":"0.2.2","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.2","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"de6a16db5338ab5c250d0c0d363d3315efaf2a6c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.2.tgz","fileCount":39,"integrity":"sha512-HNTi0H6Eou3vKySLr1Kf30T2WHhYnsM6gNImR9l9R4Jp7MjWW27HvOC2eGrOO2JU9jxGhE0/Ae+zP+dAIUO7MQ==","signatures":[{"sig":"MEUCIQD0qnalxQiyXMKUjsxwnn/dd0wdBjdWSE1G2+z31zjIfwIgU+FxctTBcGIVAIM8Q1IgFlZF9VZklQhviOHLTqxzA0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118825},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"af608994915542d3c27aa4f623735032d395a361","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.2_1780881121803_0.8654245332739159","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@thalovant/sdk","version":"0.2.3","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.3","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"428a196502a5fe01f58c25689674cec80bb4bc98","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.3.tgz","fileCount":39,"integrity":"sha512-WbmEY4mygdLxSzavYA8LaSiTIN5Lgaf7IHYzYlkFr9yO8dVTadiaEprxvx/LvckIXiEo4sWjzPoDHkK/ScV9Ig==","signatures":[{"sig":"MEYCIQDxgwJXQy4hHmUBIEVCFyoPQCqzlLxS/lE23FOi8ItpggIhAMgTPGgsNysGhKC6Euysgu7sLM/DF8sUMI8+g3af+jAM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125644},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"aef2fe71a7b614f6e2000afbd2db7801da8ae2b8","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.3_1780935643725_0.26522378385024137","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@thalovant/sdk","version":"0.2.4","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.4","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"0023055bbb336b5c767bbff709b40a80dc9a4816","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.4.tgz","fileCount":39,"integrity":"sha512-e2PirGFsqMdDYpPmZyiJW7dE6nLyIFwXQ1g29IH1UIOLxx2HPaoElkOHQw3QPDs0WJ3d9H3tYCTaEO0FGMWLzA==","signatures":[{"sig":"MEYCIQDLFmqDPoX7PzuYW/qF2RRQmdETe4zDQcLIdynASrQffwIhAN4svdZ2fiOHmxC2vlyHThwpFz78IUuEcGLkrGkxqzs2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152666},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"8c6fca32fceec03f9ee5e686876878b0b548c04a","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.4_1780938641047_0.9680101265692966","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@thalovant/sdk","version":"0.2.5","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.5","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"bceb0baa301c0bc7ab35c06f835bae82fa86880f","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.5.tgz","fileCount":42,"integrity":"sha512-WERrvyZTrHBwBea0poh9KYgfrnvYG/ELbu+F5YRFAkiGh9SheRigS6+38iZlEcbdkXhQwHnpf2dtV7zAEUK76w==","signatures":[{"sig":"MEYCIQDCS2dkPaGByAfVj1DSyysjJWqPJGYX1+SvITcSx+9inwIhALjRISP6gjosW1aBNDCskOaunQm9DXvsnNn+So/yXbyt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167030},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"cc763b3b30433a87f573a5a014948f418ab0c059","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.5_1780955348473_0.925677999515842","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@thalovant/sdk","version":"0.2.6","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.6","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"5a30b79625453bc2f88cdd27523a01eb3c3ad499","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.6.tgz","fileCount":42,"integrity":"sha512-nlN8zcC3wvkNurZi9nSRcyYT9wOZZaMa5LoJBfW4IiYX/DFRQofJ0jP6xNmB7Dkb81u/aSNYy9LNrvkNiMuzNA==","signatures":[{"sig":"MEUCIEwzhp3VeefNqchrBKD872ImJ678hmstc8FSrrk3AEEoAiEAxatno4wyO00Px2byJ7hiWpan2L7w21JqPtb6tEbBfAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168370},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"710f8e3483ad65fa34deeb807f31701a16ff54ae","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.6_1780969151929_0.22286093879863556","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@thalovant/sdk","version":"0.2.7","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.7","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"71db4ced0372672c58078d7a03fd653178e4a779","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.7.tgz","fileCount":42,"integrity":"sha512-TPw4+kltO1ZP7K39Xqm4EC86C6s/CCMfORkEmkkMUJycygvCsFTw+ce1WWw8lq0JLJ//GMiGu8o6zbK07flUvw==","signatures":[{"sig":"MEYCIQDMHNGC+mj6krHWNoje0yLT0dpOf8easR3/fekok/PzggIhAMy2MY3BXWOlCHDs4Aw7U/oNX2AKHmJipHoogCQR7ppt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171351},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"0aa240194621649509bf978a099c0066a1d96e9d","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.7_1780977248517_0.768927898977757","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@thalovant/sdk","version":"0.2.8","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.8","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"0cfa7c540bfcc30828a75f788f3d5ae2df50a2ef","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.8.tgz","fileCount":42,"integrity":"sha512-LQszEDWI8DxzCyjac5jWUo1zG7l/Vyr5CoZeMiXO/EQpB8mC8R+m9yYQmU88gRKWbDdghvIdcEhWymAvzpeXyA==","signatures":[{"sig":"MEYCIQDOt02evyXjDQI2/BGMKL1YU0sHh4yurLXi5z6qdl/ELAIhAO99ZNIZRNMwzVS5hQK9bTWsbrwshvhJ8uahk9o4E9Tj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172315},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"06f3dcfda861beb6c91efbb301c43e07f29e6346","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.8_1781010503327_0.4084806783471331","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@thalovant/sdk","version":"0.2.9","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.9","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"df48204122f4ed47640041e28348fb8d7e3f64aa","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.9.tgz","fileCount":42,"integrity":"sha512-gM9lCLvGBaDFmruz9ffrFQpscsouEL/hOuOB7CdZYtCu1Wgz9e9lVm8huBEEeBaXK3zrNRoKekHiB2fucrMchg==","signatures":[{"sig":"MEQCIE53oGiMy6+GC4nqMCuLsHGQDORXEprFSI/AzfK9hG8vAiALReJCEHL3TpRKDlE2OF41/l/n0bJKyI6TV09g9tz2Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172315},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"d8377ae3f64165ca9c1203d1d5e15ef8fa1b8665","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.9_1781010982431_0.2389617948472189","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@thalovant/sdk","version":"0.2.10","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.10","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"47afbff70b9373fda03eb8a0377e2c4c5351c2cd","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.10.tgz","fileCount":42,"integrity":"sha512-HsruNnhmC7hCF1sGvpoz0o8m5juL9eMq4PT1papFG2USUHFzjKgLm6jigZkpbfY1NYaV8atDVkpfmidFro153Q==","signatures":[{"sig":"MEQCIHeOwnNnk2LyhDVah9n9usZFhqzdaORjnGbRG4pHckC/AiBg1KHeZHgThDJGNp/GV2kuUeUCmbOs+9yvgETp0H6LVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173108},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"0aef34279df1784404f134afdafff9de96d94ae3","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.10_1781059559549_0.8050081618909739","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@thalovant/sdk","version":"0.2.11","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.11","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"2bf6033e1a3ebc507eafc0ba906f49f5cebd9475","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.11.tgz","fileCount":42,"integrity":"sha512-KgnHUbr5f2Geb4vHiccXGiVmz2of6aqwfGxT2vO27TQcoyHLeOm9VoL7PnZPVGWF0lwROxx81ZOcVllP0DSnVQ==","signatures":[{"sig":"MEUCIQCs/RYNOeZIeHlzKtzmpgKRSGO6UdOtGbloFzgYkyNVvAIgOXF7u/KcExNPlop8WyC9SLmqc9DNcdqtFaUrBmN3EWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181140},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"828c3504a0fc56b8c2b34edcd58d6a64c04d699e","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.11_1781063301028_0.20620100116198992","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@thalovant/sdk","version":"0.2.12","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.12","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"9be2a6577f56f280845a794a7c4ab15ce3f24d7f","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.12.tgz","fileCount":42,"integrity":"sha512-XCXzDf1/ZEfb6xdvXP5WeA19BCqyVSGHMPRq3Bs8w31fMhmisyfo3FzHdzNbnpY2l7NHFUk/9y8EoLjuvJHEnw==","signatures":[{"sig":"MEQCIEY+oLakakg+vgrbhjfvhLmQq6gVysc0F1lXw7KnV6mzAiBCjShs0mfc2WurolY7rQkY2T7K4U7tQY+t3SLpfnJS1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181907},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"cd703bc372636b0b830d8069a4f0eaa481220245","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.12_1781722764439_0.6042711114468702","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@thalovant/sdk","version":"0.2.13","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.13","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"0e441730320974335e3c32e92dc05a2e975ffe91","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.13.tgz","fileCount":42,"integrity":"sha512-fgQN45CBQJALdANKpTDbwVqcVLYqiO7EKoQMH1Umdlf2SaMFCLkfsLEL9XBaWpSWmem6y9mkZfJChp9D+6e6Ww==","signatures":[{"sig":"MEUCIQC5HK9oADK+Zg7zYqwz8cRvnL8YOvgHOAk1m+SRsMNFrgIgdpWoP6T0CulLL3KkknoKDL4govFbjXE4ioYAOe1ilac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192606},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"7febe5491d351e77c1f54354a80c153177d490cb","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.13_1783017216814_0.8687408017796721","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@thalovant/sdk","version":"0.2.14","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.14","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"57ff089cc0caf89ecb2aa99e34543249b5d2b473","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.14.tgz","fileCount":42,"integrity":"sha512-1BMRFqr2wEExLjo9+WFcewNY1z/mA1+u6GWBchH41VUhLCk4AfCw+OkzTWMP5K/2WihjHZgmVXmD3goTCdgKlQ==","signatures":[{"sig":"MEUCIDpcWu0T41mTTq1qDL6kvoIfDlYDOLrJbpRkloXbMUsDAiEA3toXZN2VHXBHH6oVDKRuCb0EqibpWIbGyhsypeuu81U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202141},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"138eb6a026a19eb89989a53569ab51415ed77b34","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.14_1783372322700_0.6500314333147046","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@thalovant/sdk","version":"0.2.15","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.15","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"4c7e38077fe7b36000ac793fcfe434c8f2a7653c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.15.tgz","fileCount":42,"integrity":"sha512-HvB6SmHPM+wIjKX1GeZBsfy1aoUFjLVkf/WuRqUn+elR2Gxg+CTqtjbNuPwqHKwPZ4UEUQyQVPIUW/zg5nJvdA==","signatures":[{"sig":"MEUCIBmbhgSiZ7a4K7SBSrN9l5WXlkEDeZOM6q3gOgZT5bU5AiEAtIzstz1wyDnQEoTWHKW1yo4XKyjM8Q1iMyB62L9oBvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206231},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"87e5ba2ccd348000512ff42478b1c7183a2f4c9a","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.15_1783376510080_0.9084278870207119","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@thalovant/sdk","version":"0.2.16","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.16","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"5bf0a9f5078acb707f7a475dc62af1a5a385543b","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.16.tgz","fileCount":42,"integrity":"sha512-7chhzyYwaJPU0wl0sfsm2aqGYU/rliv9BP5IXZCIEs3Vc6EkEzZ/Z3u4NMTJUkNuXVRVJqlQG4jQ1Kea4y5MZw==","signatures":[{"sig":"MEUCIQC9i3JXm1ZlUnFJcW2LfdI5slgMcZnseJ2/71TNupocSAIgOfNfcRTOAqjCnZGfh5P1MB6/kBHblMMv7K2D8BNcNWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228226},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"9a262fa9eb1f3e2860e890401cb47fb152455a68","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.16_1783524476067_0.6129707883079236","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@thalovant/sdk","version":"0.2.17","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.17","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"80a34bbeb9509af7de4e8e9df5c848d1dfc98992","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.17.tgz","fileCount":42,"integrity":"sha512-qQCttkwpKz1Qc7nBDcwP9GSv9CM3ixMNNjbiE6P3/vR4S189JoB0310ZS7tGGHaWXFsE5kVAoC5YF8YmpiZy1w==","signatures":[{"sig":"MEQCIC+uJpoDHFkrKOqIkSOXE/m1MyD032nHfuOodRrsEgqAAiBgMtP/1pyOnfzu/hC3LS4x3ezq8IH8LB26lLf25PYbqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230092},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"c639f0f4696533670372798697cab7fac74a005c","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.17_1783704745876_0.9584535440007578","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@thalovant/sdk","version":"0.2.18","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.18","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"5cdbbc90513598996ecb74b25e403327bd184ffc","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.18.tgz","fileCount":42,"integrity":"sha512-CQIds+EcKYDachNXWw66/knVGbf8f5W1TLzftoiP9f6ozkV/ynW5OggSUZXN9Dup9d3WYWMz4sJC6GDcMsj6Mg==","signatures":[{"sig":"MEUCIDvkAkZNweAdDHD95/Bj7QDB9TaSqoXynBpkd4hmAjEwAiEAhrtfurJrdMgtTXQPJLo/5WrN/5Vpwl/bkK3xXrgs2K0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231095},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"6c87ac485ae2a6a158c6be2be22e51a98e3c75f5","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.18_1783829457949_0.0909365566251994","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"@thalovant/sdk","version":"0.2.21","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.21","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"ae8ba1427d1f4cbd5044988b6b79e230d882ae64","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.21.tgz","fileCount":42,"integrity":"sha512-Ff06RRUg5FaUZ3vloi2TcjJlGsOpM5d+N2Slt5leoW6bXwiE406mIDwZwvVWFpHDuaWG4kka1/RVgBMqCyhiuw==","signatures":[{"sig":"MEUCIGbOOKNuNeErjp16LMCi86lEp5tdffZMsjzmg54gqW5CAiEAyGORVstAPcqSfFAve3LmHVgCzvrMzUgH8+PImrsoKOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231095},"main":"./dist/src/index.js","type":"module","_from":"file:thalovant-sdk-0.2.21.tgz","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/tmp/thalovant-sdk-audit.6A3VoW/thalovant-node-sdk/thalovant-sdk-0.2.21.tgz","_integrity":"sha512-Ff06RRUg5FaUZ3vloi2TcjJlGsOpM5d+N2Slt5leoW6bXwiE406mIDwZwvVWFpHDuaWG4kka1/RVgBMqCyhiuw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.21_1785760582393_0.6130017658063416","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"@thalovant/sdk","version":"0.2.22","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.22","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"bda699c11d02e97b3c51e62f8ac4c649a2cb16f9","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.22.tgz","fileCount":42,"integrity":"sha512-6f1UgOU4hq9+3zmj8GqsbCONVkP6fj/phzojBwnWX0t+EgWF2rMT8spDXgaimz1HTUcIjFugP7TwyR8SvUGeeA==","signatures":[{"sig":"MEYCIQCbIVKu6eUcASrAoZ8yQCdYKrY8HnXDXKDpMzjlbBVIFQIhAJwPepAS3uoQo/LWrkVFJrkMGf+XTTf++fdUpM5BrZYB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231095},"main":"./dist/src/index.js","type":"module","_from":"file:thalovant-sdk-0.2.22.tgz","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/tmp/thalovant-node-release.H295p1/thalovant-sdk-0.2.22.tgz","_integrity":"sha512-6f1UgOU4hq9+3zmj8GqsbCONVkP6fj/phzojBwnWX0t+EgWF2rMT8spDXgaimz1HTUcIjFugP7TwyR8SvUGeeA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.22_1786492441659_0.6578368448663598","host":"s3://npm-registry-packages-npm-production"}},"0.2.23":{"name":"@thalovant/sdk","version":"0.2.23","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.23","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"f62106680055e9df66050406952de9d1b253a289","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.23.tgz","fileCount":42,"integrity":"sha512-GfKEPOjTHa/Z3tIG3UOnxX+oWoDjYTIeqJdYTpUUH4TmVGqPuVuyFKIBzykeaXhl59owJaQtqP4Gj/MXMQxrqg==","signatures":[{"sig":"MEUCIACm3ZwChOB5WeG6TgWrKifd41AfhPKH1apODbEmKKu+AiEAthzhn7vbYiJAbAM17q8xYDPM2F/Wkv6fWxuhZ7offN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231969},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.23.tgz","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.23.tgz","_integrity":"sha512-GfKEPOjTHa/Z3tIG3UOnxX+oWoDjYTIeqJdYTpUUH4TmVGqPuVuyFKIBzykeaXhl59owJaQtqP4Gj/MXMQxrqg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.23_1786638840599_0.11583073230081475","host":"s3://npm-registry-packages-npm-production"}},"0.2.24":{"name":"@thalovant/sdk","version":"0.2.24","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.24","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"b93605df9d72442233f7e5c3a411271eef1d6745","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.24.tgz","fileCount":63,"integrity":"sha512-5+yY0+H46ZnTamiejaI1L7OcdfFaDbszWkji7MqUC1nfI/YyL+kE3ffWbLowXa+d/gkLMioPnTss0fuBSGjF0g==","signatures":[{"sig":"MEQCIATdIFJIumA/tm8RI9NJtdxw2Hga32g5ETuuUwFHX4PiAiBzI1/F4nrYWquVPNiqkk3rlkh98HsAZWjiIUZhI2omyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270577},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.24.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.24.tgz","_integrity":"sha512-5+yY0+H46ZnTamiejaI1L7OcdfFaDbszWkji7MqUC1nfI/YyL+kE3ffWbLowXa+d/gkLMioPnTss0fuBSGjF0g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.24_1786641784781_0.860519274146049","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"@thalovant/sdk","version":"0.2.25","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.25","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"6cc4b753b8cb31b2cda7740bc227b090e8fe5f81","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.25.tgz","fileCount":63,"integrity":"sha512-8EwbGCVYT5b1CIjDoi2t4jjXuVgJwfr8rpPb3yvOLIM970utd4Q6Yrm6pYjoYUVx3Izar91xN4Tz44eiAwiu0A==","signatures":[{"sig":"MEYCIQDFlp7wdC9bkC7ZpZ/ymsoxkduG92xH9UtAHLSG9cqfYgIhAO/mzRIel1noMhg6ogkR5iNbj8OBqxTzJkSvkQ140QpU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287811},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.25.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.25.tgz","_integrity":"sha512-8EwbGCVYT5b1CIjDoi2t4jjXuVgJwfr8rpPb3yvOLIM970utd4Q6Yrm6pYjoYUVx3Izar91xN4Tz44eiAwiu0A==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.25_1786664410326_0.5213851833325862","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"name":"@thalovant/sdk","version":"0.2.26","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.26","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"690db66c7d56aa2efa7ab66d5abb7ba3e8a47e05","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.26.tgz","fileCount":63,"integrity":"sha512-vsD0lwBzrHG2y1o/uRJwFizyy2ZPZOWdDDID0KOmBSWKSrt576ddWNzHmnEVZpC/oB1gvpZgcngpz7P3nZFTfg==","signatures":[{"sig":"MEUCIHjQpshvSMzEuAhSt9jc5dvMRwMBgTo5ORTIUhp03uolAiEAi836EDnC/78PYn39sUIyyNPe4REJ+ukAWwjLVFGmDsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":288703},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.26.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.26.tgz","_integrity":"sha512-vsD0lwBzrHG2y1o/uRJwFizyy2ZPZOWdDDID0KOmBSWKSrt576ddWNzHmnEVZpC/oB1gvpZgcngpz7P3nZFTfg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.26_1786730265710_0.3696652192546104","host":"s3://npm-registry-packages-npm-production"}},"0.2.27":{"name":"@thalovant/sdk","version":"0.2.27","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.27","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"23d8fefe162d943ca982b920e4956505311ca498","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.27.tgz","fileCount":66,"integrity":"sha512-RLl1uOaafAhtNkeDzu30DjCtAnOQLYpqr7Uq+2qz4mcT4iVhJPvpIAQlFyRqJtr4vye6rfrxdP1XqUcjdUZCWA==","signatures":[{"sig":"MEUCIQCSvzhMGWdY1oru7+MY/fbcVtfwl76FYuISJ0cL2VDbvwIgQ5iJOgFIGjfwQ4dVLEL+N5YOSljD3f6FER3/GFFmtM0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":291525},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.27.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.27.tgz","_integrity":"sha512-RLl1uOaafAhtNkeDzu30DjCtAnOQLYpqr7Uq+2qz4mcT4iVhJPvpIAQlFyRqJtr4vye6rfrxdP1XqUcjdUZCWA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.27_1786731254692_0.48235398607253743","host":"s3://npm-registry-packages-npm-production"}},"0.2.28":{"name":"@thalovant/sdk","version":"0.2.28","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.28","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"770b7a997ffbac862e2f3ca4f9885300e63f54b1","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.28.tgz","fileCount":66,"integrity":"sha512-h2qqZI/ivAbamVy3om1lIfcLihg+emOIDphXimNcA3HhGwAHIYo1hV8OTS9J4zQfBqgzYCjFv9mzpHrUySxRUg==","signatures":[{"sig":"MEQCIDemBKmOCstHJR3F1c1LAsnv+kYdFp9qS6OZhZDXE6yOAiBX1eM0Ii5Bit3TIlJDWvswbzQW7AkmWpm3KsdhUGA2CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331963},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.28.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.28.tgz","_integrity":"sha512-h2qqZI/ivAbamVy3om1lIfcLihg+emOIDphXimNcA3HhGwAHIYo1hV8OTS9J4zQfBqgzYCjFv9mzpHrUySxRUg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.28_1786761569002_0.8226557082312995","host":"s3://npm-registry-packages-npm-production"}},"0.2.29":{"name":"@thalovant/sdk","version":"0.2.29","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.29","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"90ac33f13e4db9a9f87408f1868bc5518c7a6e40","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.29.tgz","fileCount":69,"integrity":"sha512-AbQotFV76DtftjSBQqMj/Vqcnk6vscLnZIObzZvX1vKYp5icOdGoIUFTlhP1ZySCm0IIPjZQcTsw2aV9k3ldHQ==","signatures":[{"sig":"MEUCIQCmQkEjMPeeB1BQbaLmA0t5nbIGc1ymCbruV0FplrtHOgIgcTvn+fIqaNHrdmlyaNJCOwFi4o59trdCxvBmR9wjMwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":350564},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.29.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.29.tgz","_integrity":"sha512-AbQotFV76DtftjSBQqMj/Vqcnk6vscLnZIObzZvX1vKYp5icOdGoIUFTlhP1ZySCm0IIPjZQcTsw2aV9k3ldHQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.29_1786798455608_0.22760768753583527","host":"s3://npm-registry-packages-npm-production"}},"0.2.30":{"name":"@thalovant/sdk","version":"0.2.30","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.30","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"f02beedaf6d5baf3eaddd61f1fea1769655d46ad","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.30.tgz","fileCount":69,"integrity":"sha512-TnIflrBDMA2Jks3Ujc42rVFvzXYwpE237n1MHtM87/+aUVTKqQRxwgclsqdgOe7toxIPQiWzZUr8Yc86FxinJg==","signatures":[{"sig":"MEUCIQDOOFDhkiXHKylDDG/WdsOpDYiETQniU26Dm1hTPLrJJQIgVXHqCFpG1RW/D0tdzXTme4GdXBUuSFNey34wxsZ0Rd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":344814},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.30.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.30.tgz","_integrity":"sha512-TnIflrBDMA2Jks3Ujc42rVFvzXYwpE237n1MHtM87/+aUVTKqQRxwgclsqdgOe7toxIPQiWzZUr8Yc86FxinJg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.30_1786833865204_0.7471966631510962","host":"s3://npm-registry-packages-npm-production"}},"0.2.31":{"name":"@thalovant/sdk","version":"0.2.31","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.31","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"cf45a702573793d96cb9663c4e9a472751884850","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.31.tgz","fileCount":69,"integrity":"sha512-OfZ9cDmNxh+DFZ+h1jVxFW6Ho0x3iVAwnwYFndpGfWH1iIwsJcPdPDsrBZoBqzX1espMO9aP2/seT8yeeqtRzw==","signatures":[{"sig":"MEYCIQCkXBqT6oC3kmpu4mqP/ZW+LJHLUeDRCLlqcbupTJmeiwIhALG0GyX4Hk7xpI81YFron1ojbZoXr7tDjLOVB7UHRrkb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347307},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.31.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.31.tgz","_integrity":"sha512-OfZ9cDmNxh+DFZ+h1jVxFW6Ho0x3iVAwnwYFndpGfWH1iIwsJcPdPDsrBZoBqzX1espMO9aP2/seT8yeeqtRzw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.31_1786835799044_0.24315022329445002","host":"s3://npm-registry-packages-npm-production"}},"0.2.32":{"name":"@thalovant/sdk","version":"0.2.32","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.32","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"6996c374c404efa207ba0913a599456d2ec338bd","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.32.tgz","fileCount":69,"integrity":"sha512-xFv0Yc/1gfkFod/3AwMeAfhd7Oep7V8u5nyCfyL+5b1jNDsSi4rjgT/LhUXupD3+dwMfYfsix2fK0jtWWuvpPQ==","signatures":[{"sig":"MEUCIQCf6yHO+Z08JS+ijZtRCZuhp6OGgFEXaB7MqKOKD89VVAIgJODvWVPBUT5+/EVKSQhrQajwX4iXtvmInmOFGYuw/PI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347307},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.32.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.32.tgz","_integrity":"sha512-xFv0Yc/1gfkFod/3AwMeAfhd7Oep7V8u5nyCfyL+5b1jNDsSi4rjgT/LhUXupD3+dwMfYfsix2fK0jtWWuvpPQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.32_1787725718263_0.8918815598614238","host":"s3://npm-registry-packages-npm-production"}},"0.2.33":{"name":"@thalovant/sdk","version":"0.2.33","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.33","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"7b0b06babc523059d21860f713a7cf55b3ad063f","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.33.tgz","fileCount":69,"integrity":"sha512-84mQAhsalcMxiK68uLVMRZVuOM17nwDGaF1chaoQVOKNjXMJQgjRi/1pM9K1Fgu97JBbUMZk9q6BhDE29dashg==","signatures":[{"sig":"MEUCICVwPi0nrEolNvHiiz+kW74mKCTedPyDLb52+VehAagsAiEAh49aiahypekOweuL24zI4cIMPIeEuqN/X73IIwc3lRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347829},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.33.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.33.tgz","_integrity":"sha512-84mQAhsalcMxiK68uLVMRZVuOM17nwDGaF1chaoQVOKNjXMJQgjRi/1pM9K1Fgu97JBbUMZk9q6BhDE29dashg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.33_1788257863170_0.7025074739105686","host":"s3://npm-registry-packages-npm-production"}},"0.2.34":{"name":"@thalovant/sdk","version":"0.2.34","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.34","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"484c18ba8242ca6d9bca5c8810c22c3efed1165f","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.34.tgz","fileCount":69,"integrity":"sha512-qxiVmJIsIFtwH+/ccsylv3YhJ8AagMaUTlUSRFDDJF96RAu9kk9g7H21/Q/2bR2MNNRRo7kY5zUdbmQcNy2jOQ==","signatures":[{"sig":"MEUCIFf+yEdK6yvT5qsKckz0Wu76UW0k6gGCaqb7XcgsjQAFAiEA2nq4Xe29I/tJr5WLHP9uBHv91xfVpuFMPJAX6TxFNMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":348317},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.34.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.34.tgz","_integrity":"sha512-qxiVmJIsIFtwH+/ccsylv3YhJ8AagMaUTlUSRFDDJF96RAu9kk9g7H21/Q/2bR2MNNRRo7kY5zUdbmQcNy2jOQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.34_1788267302674_0.17892374767314134","host":"s3://npm-registry-packages-npm-production"}},"0.2.35":{"name":"@thalovant/sdk","version":"0.2.35","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.35","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"329bfabaa461bfd1f929f16472aee47bca0068d7","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.35.tgz","fileCount":69,"integrity":"sha512-mShNcHBrW1FZHM4CeqrbkF3y/MWjP6tTv4D+iFLlpB3LhDJaGxylu5jfhfSULHmkpZvu8jYMvCFcX0ErdCOWxw==","signatures":[{"sig":"MEUCIEFD9ZkUnIzFnPv20Af99+da0RYB1XClIYo8pFsL9FmKAiEAuzRuzub+8+EEWHE8t0jbQPfYuqqwpnGSQJS2ql6slJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":349410},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.35.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"thalovant","email":"contact@thalovant.com"},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.35.tgz","_integrity":"sha512-mShNcHBrW1FZHM4CeqrbkF3y/MWjP6tTv4D+iFLlpB3LhDJaGxylu5jfhfSULHmkpZvu8jYMvCFcX0ErdCOWxw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.35_1788269588514_0.06358491568995284","host":"s3://npm-registry-packages-npm-production"}},"0.2.36":{"name":"@thalovant/sdk","version":"0.2.36","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.36","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"928591d5346907e91c4ccb1133ca0e9e23b94f8a","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.36.tgz","fileCount":69,"integrity":"sha512-S5HkyOSiVKKkzzbq4/jFhi9nZ3Okv/KmOMU7GQ8TkGucGOhy1uHnq7d0yl3DX1xJl7pvLSpgtnWlV53JWfImAA==","signatures":[{"sig":"MEYCIQDelQIHIDqF/p1wg97S0/5+Vhuin85YTb7kffTk1rTyEAIhAKPO5lVkeM7RnfMgezMvblqzW0EhtnewP5UpijMV+cV6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351547},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.36.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.36.tgz","_integrity":"sha512-S5HkyOSiVKKkzzbq4/jFhi9nZ3Okv/KmOMU7GQ8TkGucGOhy1uHnq7d0yl3DX1xJl7pvLSpgtnWlV53JWfImAA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.36_1788471226207_0.03981452805016539","host":"s3://npm-registry-packages-npm-production"}},"0.2.37":{"name":"@thalovant/sdk","version":"0.2.37","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.37","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"6dc9dec4cf0e778029f4bad38e5a369849901562","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.37.tgz","fileCount":69,"integrity":"sha512-zfXePs0rq5XpPJnfcfIudrXdTWWP3hvMHN0LbcF29lEsOb1ZnC5bYdYgaIZ0VYQ7yD1I97j9/rjwg2O8K+4eNw==","attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":350182},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.37.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.37.tgz","_integrity":"sha512-zfXePs0rq5XpPJnfcfIudrXdTWWP3hvMHN0LbcF29lEsOb1ZnC5bYdYgaIZ0VYQ7yD1I97j9/rjwg2O8K+4eNw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.37_1788471935156_0.6606536581530231","host":"s3://npm-registry-packages-npm-production"}},"0.2.38":{"name":"@thalovant/sdk","version":"0.2.38","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.38","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"7761f1be8df1391f20e630303db0214ec990f4ba","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.38.tgz","fileCount":72,"integrity":"sha512-0ZwiElBm/hXebrUGbL0oNYG7XFw/67xitH/m8H6DoKYGnWbdNNcDG7DLhEkRlYRmzbhyPaiNDOnNvDM2bxVH2Q==","signatures":[{"sig":"MEUCIQC3kmyY1Ba7F/rYKaodoNfniL1Q5hulMoIQULTNrg9IzgIgCL2OOjucTsCYkyjZSqdk9vY/Zwp3M9DGTMRY9TGl55s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":405943},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.38.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.38.tgz","_integrity":"sha512-0ZwiElBm/hXebrUGbL0oNYG7XFw/67xitH/m8H6DoKYGnWbdNNcDG7DLhEkRlYRmzbhyPaiNDOnNvDM2bxVH2Q==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.38_1788625907456_0.918826558509175","host":"s3://npm-registry-packages-npm-production"}},"0.2.39":{"name":"@thalovant/sdk","version":"0.2.39","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.2.39","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"5860b79f12114fd338bf71fd45f56d3eed2e443c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.2.39.tgz","fileCount":72,"integrity":"sha512-a/qtkGvVpuf6JRFS8YSOza99neXpeTgDNIglIfQNqewT+AGQd+9qsCLeV383OYfPF7GapPnD7D4GWLL/NlyY1g==","signatures":[{"sig":"MEUCIQDpQuU3dcbMaTFiGLjRfrTJDfVmB1SPawpT1P/+/AO9sQIgJqUgUdNs2USdK/1gFNE6nIf8PKrpM+SVvjhEiv3apRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.2.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":408648},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.39.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.2.39.tgz","_integrity":"sha512-a/qtkGvVpuf6JRFS8YSOza99neXpeTgDNIglIfQNqewT+AGQd+9qsCLeV383OYfPF7GapPnD7D4GWLL/NlyY1g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.39_1788627878123_0.9384331021072962","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@thalovant/sdk","version":"0.3.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"b6eff1040d3b7d932ce87bbd7faec9f7a8bc63fa","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.0.tgz","fileCount":75,"integrity":"sha512-SWQhrKJm4s+5V5BeLjP4bs1malXQyjn/MUYUfp0/z9QR2IxY9azYHDkVd/lkFt6BGtrMK/ywnx2zobmHLFNCmw==","signatures":[{"sig":"MEUCIH1BmpNeRY76ZRH2Nq+0UIh3tlsNiI344s4ACrqpbXW0AiEA/Z6r7A+zAjT9PCsaIwBQcHfF5vgnaoV52FazsTwJSRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":496044},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.0.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.0.tgz","_integrity":"sha512-SWQhrKJm4s+5V5BeLjP4bs1malXQyjn/MUYUfp0/z9QR2IxY9azYHDkVd/lkFt6BGtrMK/ywnx2zobmHLFNCmw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1788716346552_0.6415795468369294","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@thalovant/sdk","version":"0.3.1","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"975dc93903add0e8f105bd3a14d4a652354f2912","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.1.tgz","fileCount":75,"integrity":"sha512-Zjtv6pWtmq97E8Gv9g+LMxsGUqvc/Ppnjso+7L8U+XBQlvUVf5jWfS60sUsyuB5XXC++4zymh81XzRCwNOSalg==","signatures":[{"sig":"MEQCIErk6bXd7de4NSrTSeHZBjSTbGXjdLWhEAne41bEWbgxAiBVNsRgAZWLarFuDRapb0JjqV7ZFbQ3NVF9omdmEuSmOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":496044},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.1.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.1.tgz","_integrity":"sha512-Zjtv6pWtmq97E8Gv9g+LMxsGUqvc/Ppnjso+7L8U+XBQlvUVf5jWfS60sUsyuB5XXC++4zymh81XzRCwNOSalg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.1_1788786781612_0.6699991875076396","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@thalovant/sdk","version":"0.3.2","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.2","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"f9ab7f61e45223ef18dd2f0c1f3aa8bd84796438","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.2.tgz","fileCount":75,"integrity":"sha512-lWw0CVLThh7BivjMMsFRl8iqpNBcvk3wSX7FP8b5RzWCvxsV2l7cGR4Fod8i7xZNY7kcxG0Jn88VPZQYbKEjwg==","signatures":[{"sig":"MEYCIQC4SHnFaoEdKGmjhw2l5XA6qbbKh0pFTvj4lT9l+E4JaAIhAMTRdQAauuTRvo4YRcK34Nop0XDjgnbNao2SLq1J74XJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":506789},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.2.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.2.tgz","_integrity":"sha512-lWw0CVLThh7BivjMMsFRl8iqpNBcvk3wSX7FP8b5RzWCvxsV2l7cGR4Fod8i7xZNY7kcxG0Jn88VPZQYbKEjwg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.2_1788880238704_0.898430916857822","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@thalovant/sdk","version":"0.3.3","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.3","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"17b50f9ddcbe56ad317c9ba9fa331653929cee1c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.3.tgz","fileCount":75,"integrity":"sha512-SLfIcNo7q0asclpdjBPalJqLZtH1zdUYbPnSr2zWCoKvRBfDNur9Cbav0/wS8GXAq18D0b0BjsTPbPOH69aRIA==","signatures":[{"sig":"MEUCIAyR252JqiP0j4bZZ6dSwwD2SOGjt9bczyAzIv+TSR6YAiEA2UKmAfpniSNBl9NrqJywa88ckvKMDhM6+KD8hCiGiP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":507960},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.3.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.3.tgz","_integrity":"sha512-SLfIcNo7q0asclpdjBPalJqLZtH1zdUYbPnSr2zWCoKvRBfDNur9Cbav0/wS8GXAq18D0b0BjsTPbPOH69aRIA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.3_1788883015645_0.32188769149305285","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@thalovant/sdk","version":"0.3.4","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.4","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"7f7ae97a2b25bb4e39f95902f9811fa14666e0c9","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.4.tgz","fileCount":75,"integrity":"sha512-WY8Y6uwdWWtraBbgtACZNWF981mwaPGEtTcBA3XRoyyKqqekY1fFnkyI69fg+K+fnzanWdfAlCnzQfALghjlIg==","signatures":[{"sig":"MEUCIGKwuwWCDEoU4Qzjgdb9gwup2oluix1GH7DAx/KLM9QkAiEAyWdH3h+Y+HhRdfQuggXnn1Nc4WRxhBMzuQ90Arnr3ks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":529869},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.4.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.4.tgz","_integrity":"sha512-WY8Y6uwdWWtraBbgtACZNWF981mwaPGEtTcBA3XRoyyKqqekY1fFnkyI69fg+K+fnzanWdfAlCnzQfALghjlIg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.4_1788929674951_0.8739060961305769","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@thalovant/sdk","version":"0.3.5","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.5","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"240c1126e52c06afa792c28061461ad528fee5db","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.5.tgz","fileCount":75,"integrity":"sha512-S30SGpAJj6k+GqBswSLvRSGWP9rMPyJojE3nqqnZ0x6FtF6KPes7PWW5J9ZQdR7n4lIPxKBA+jr6RfXvNIqAIA==","signatures":[{"sig":"MEUCIAvu9gYNgiJL8vrRorH/EOo5uU0v74OPHA3UKju4OYOHAiEAipDjdES0Vj/v9jvFvVdsYZVLE0sP0mz+rasB0LoUp7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":536223},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.5.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.5.tgz","_integrity":"sha512-S30SGpAJj6k+GqBswSLvRSGWP9rMPyJojE3nqqnZ0x6FtF6KPes7PWW5J9ZQdR7n4lIPxKBA+jr6RfXvNIqAIA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.5_1788952310650_0.09275601706317804","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@thalovant/sdk","version":"0.3.6","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.6","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"97cdb0ae533db4a54f159c97010fa8269cad20df","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.6.tgz","fileCount":75,"integrity":"sha512-deiUxRMHZGca5v9m98AhcHqHtASIOGp+blfSA3FlXBqCVPjikVnUeIfn+G/akJyG5gOhuCcINExa3ZUOMxhCSg==","signatures":[{"sig":"MEUCIQDDNhzCdO6s6JUl6E+2uhawkNTb1nT4wF0lgp8qo1H+SAIgIO6WLYufoffFDuEvxl5OCKA0bdm6JGQO6YH/lFWl83E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":553041},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.6.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.6.tgz","_integrity":"sha512-deiUxRMHZGca5v9m98AhcHqHtASIOGp+blfSA3FlXBqCVPjikVnUeIfn+G/akJyG5gOhuCcINExa3ZUOMxhCSg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.6_1788960472137_0.40737543880181026","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@thalovant/sdk","version":"0.3.7","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.7","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"80fe5fcc14e573dd83346cc0613c708c03cb35a9","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.7.tgz","fileCount":75,"integrity":"sha512-DIGhD2yEAOgDmXrGEbcgPtGCPxEl0dspu7mrXfEjt/PG9k0bPCnMAh8pJhC04fq1E9rFE9zfnQ28tRieXBFU3Q==","signatures":[{"sig":"MEYCIQCb+AGLmIkqKLP/TENsYG3qOujOQecNR5XrfZJEg/QgdwIhAPDtfsjAVMEsRfxY0Upp7Izdf6NOrpmzfyEKOQ57PgMV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":562877},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.7.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.7.tgz","_integrity":"sha512-DIGhD2yEAOgDmXrGEbcgPtGCPxEl0dspu7mrXfEjt/PG9k0bPCnMAh8pJhC04fq1E9rFE9zfnQ28tRieXBFU3Q==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.7_1788964029767_0.6658734503944221","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@thalovant/sdk","version":"0.3.8","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.8","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"16dcd78e6e9ebfb185dc031572cf0325edbc82aa","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.8.tgz","fileCount":75,"integrity":"sha512-/5aBGmFHQa7ZNp/YJti7SVh/B8duGYc1kM0su0ysOQYlBuwIFKRQ3elzfBE1VRZemvGqgbKPfeaYIRcFKmGf3Q==","signatures":[{"sig":"MEQCIChFo8aFltQgQdAE8aURVeIW5I+K4NoqOTNQ6k9oqADbAiBhWALevuhRpPC6cRsj7kkBp6CR/0l9xwqEwo6fyu3vCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":571928},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.8.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.8.tgz","_integrity":"sha512-/5aBGmFHQa7ZNp/YJti7SVh/B8duGYc1kM0su0ysOQYlBuwIFKRQ3elzfBE1VRZemvGqgbKPfeaYIRcFKmGf3Q==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.8_1788965581400_0.8806273830852238","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@thalovant/sdk","version":"0.3.9","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.9","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"cd5b56fe72308d7176249a37c8bb115ce11be5cc","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.9.tgz","fileCount":75,"integrity":"sha512-dsZbwtePG4z25hywMgEJAXA+XhT0FTDUlQ6PxfgKGfWIx6azMO0YpIt86nE6MdNPYHEdzuqrh+BYRqIuHqzSjA==","signatures":[{"sig":"MEUCIBzE2S1WWgxM+vYs9x8QmnkdLwulhfQTxuIcBg/JPAOkAiEA9KND3yttiyt2n55NKxSijMl63zM0BlCfryy1m4KDCM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":572428},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.9.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.9.tgz","_integrity":"sha512-dsZbwtePG4z25hywMgEJAXA+XhT0FTDUlQ6PxfgKGfWIx6azMO0YpIt86nE6MdNPYHEdzuqrh+BYRqIuHqzSjA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.9_1788967515917_0.135394767499027","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@thalovant/sdk","version":"0.3.10","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.10","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"a1e8f6e6a59f2af21e2339910824b67728501f63","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.10.tgz","fileCount":75,"integrity":"sha512-dmlLa6EM4mQ/GXryaTJW/H8XQ6efcLeh4ezi3dmPczlefMLqSKLvJkXUGWlmLGJj21JbAo1glhx7oAJtaluMbA==","signatures":[{"sig":"MEUCIC0T0WdEyvM+YfAVmb+ox5NQhu6x7CT/SeQZ53LxukaoAiEAxd2+uNKZuvyVTRuOc1zAwr/e1K2bS1lguBi5QkjIVxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574582},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.10.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.10.tgz","_integrity":"sha512-dmlLa6EM4mQ/GXryaTJW/H8XQ6efcLeh4ezi3dmPczlefMLqSKLvJkXUGWlmLGJj21JbAo1glhx7oAJtaluMbA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.10_1788971975652_0.5797442555758912","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@thalovant/sdk","version":"0.3.11","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.11","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"d3fb19ee1996ad35f24e5c6040fab52277793827","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.11.tgz","fileCount":75,"integrity":"sha512-sFys629lm+V36AbzhNZf9NMvPoITUkz6/uEgzTUtwf5ROsp0lsUfpgpcvVjcz4JABjmUekVOFDwkhq+eH7PWwQ==","signatures":[{"sig":"MEYCIQC15ujRiGHBugAXF0HTzwpsqyQMiY8Y/IReUPUz4qhSuwIhAJMWAnzry3FIL0T9XlXUeDs5454vzWs9b2dv9OwXSv9u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":576067},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.11.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.11.tgz","_integrity":"sha512-sFys629lm+V36AbzhNZf9NMvPoITUkz6/uEgzTUtwf5ROsp0lsUfpgpcvVjcz4JABjmUekVOFDwkhq+eH7PWwQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.11_1788975221231_0.3176586233555696","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@thalovant/sdk","version":"0.3.12","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.12","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"12bc1a6daeb83aca98e7ce508d4d7ae139fbab5c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.12.tgz","fileCount":75,"integrity":"sha512-BPYAOOeWgznvZsBapFqZyhFgPnQHv78WneXAB2octayf+QPiW7MNhcxaK39u78cskyQGX/lr62DP1JmwsiRasw==","signatures":[{"sig":"MEUCICvh5GeqAp8N1+WOf/4PLS6R9xGlsEKgi66VPXXloB85AiEAtHR0k8Y4OXOP6P8ELNckupe7k1zgjXAqGkEY2qJJR2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":576631},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.12.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.12.tgz","_integrity":"sha512-BPYAOOeWgznvZsBapFqZyhFgPnQHv78WneXAB2octayf+QPiW7MNhcxaK39u78cskyQGX/lr62DP1JmwsiRasw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.12_1788976351656_0.5783307595004874","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@thalovant/sdk","version":"0.3.13","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.13","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"7948ebd120b4b4adb79b1407d36561f7c542e079","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.13.tgz","fileCount":75,"integrity":"sha512-c+z9pMFWTA9C8DFK7sQsn4ch8vjKR8nkFqzCw4P1BNiWqkLq8W1QYujwUuJ8S43NC32lo/GIFGFYiSZzJZEkeA==","signatures":[{"sig":"MEQCIB6hQOs/N7Xa2TRI3tZiDmujSioyVPOTbYNXDlBRKHpdAiBf/aw5g0bKEnhFoJHOyasP3PzqHV5S1fozsKcaLNW50g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":586355},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.13.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.13.tgz","_integrity":"sha512-c+z9pMFWTA9C8DFK7sQsn4ch8vjKR8nkFqzCw4P1BNiWqkLq8W1QYujwUuJ8S43NC32lo/GIFGFYiSZzJZEkeA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.13_1788999972217_0.02073652743176413","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"@thalovant/sdk","version":"0.3.14","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.14","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"081a4a11818357e8d86ae5ba28b92b540ae0f5b4","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.14.tgz","fileCount":75,"integrity":"sha512-66+YPgRam20HhW03rrdTO5EchpLHeebWClm7ZrR6Ngop+EHYQSwJCbwsyzSh1PsJ5EiNXxIvnkX7UHRE2Mm7hw==","signatures":[{"sig":"MEUCIHzPzUDqbTKUHQKh6JQ171xBgNXiTb5o2TOQCKNz/uJMAiEAh4gwwlOl9sImIjOZh2lnWcxeHx3ngpTHdtETWZKx72U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":586848},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.14.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.14.tgz","_integrity":"sha512-66+YPgRam20HhW03rrdTO5EchpLHeebWClm7ZrR6Ngop+EHYQSwJCbwsyzSh1PsJ5EiNXxIvnkX7UHRE2Mm7hw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.14_1789000818638_0.4831932584740166","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"@thalovant/sdk","version":"0.3.15","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.15","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"5a40e536d86f736fec58546eb9c10d55d4246f56","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.15.tgz","fileCount":75,"integrity":"sha512-RsAxtiX2qDCoOzdgo9LfvGcCFWll63xphCbTQfc3fWc1Zdclvyb9WUpXuq9+mqqddTbZUmd+NPUSnaCoZEMuAQ==","signatures":[{"sig":"MEUCIQDTas97XHhu5nSyALDDpxcJyORpbU5OeAxH9gC+FMGaVQIgE8Hu7R9h2FLO6jOG3rmJbUwBIvzNEQpks3GE6mtdTDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":613599},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.15.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.15.tgz","_integrity":"sha512-RsAxtiX2qDCoOzdgo9LfvGcCFWll63xphCbTQfc3fWc1Zdclvyb9WUpXuq9+mqqddTbZUmd+NPUSnaCoZEMuAQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.15_1789004016161_0.5110182843951416","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"@thalovant/sdk","version":"0.3.16","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.3.16","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"039d859c1de4c09c324002aaa1a920ecb263f2b2","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.3.16.tgz","fileCount":75,"integrity":"sha512-Yoq5A+FucIjuX8yeicOKdMTAWRgcEeLyxRo5K20VkkJn7wpO/u0G5ZUGgCD3PukD2Pihb0m6TPC5apxXxpo3VQ==","signatures":[{"sig":"MEQCIB5bYUBcXPs0GSy4Q1xTXcVMyxi7K1SDSo+Ib0S+FVUEAiBsSicN3cBq39qEzW2BKkb2mHQgBQNQQYHh8HQLVlVm9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.3.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":614966},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.16.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.3.16.tgz","_integrity":"sha512-Yoq5A+FucIjuX8yeicOKdMTAWRgcEeLyxRo5K20VkkJn7wpO/u0G5ZUGgCD3PukD2Pihb0m6TPC5apxXxpo3VQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.16_1789005020667_0.12713086049027633","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@thalovant/sdk","version":"0.4.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.4.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"94df140cff8f575c2b436a927c87583e1c3b0c32","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.4.0.tgz","fileCount":75,"integrity":"sha512-taFtwV5WLDZo0UoxFFCV6llC3Dhd20gN80jDeDOsI4uIUVX1VCLq2pCHxhBb+DPqelIVGtp4F0L1CskCkLne+g==","signatures":[{"sig":"MEUCICJ0WSlpMzpto3Jegu4vE43uJxwjxQb0qEXH3dmpRzjWAiEAnpRnc1lybQ0pysFD1Pc+iEJizY7GjKgvzg1ORK5XUVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":617222},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.4.0.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.4.0.tgz","_integrity":"sha512-taFtwV5WLDZo0UoxFFCV6llC3Dhd20gN80jDeDOsI4uIUVX1VCLq2pCHxhBb+DPqelIVGtp4F0L1CskCkLne+g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1789179910482_0.7031042941712586","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@thalovant/sdk","version":"0.5.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.5.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"15764ceba662ce140e606dfede7f2fc6b5bdd29c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.5.0.tgz","fileCount":75,"integrity":"sha512-CYVV97mbvX5gtXV/H7Nkrk0fUSy4wFH79zJgNTa7k8PL5bdicnvSVnJu1AYxm8dqRuS2eFcPGrFJxHNwzVKp8A==","signatures":[{"sig":"MEQCICnEymFLR6ptuUhczPDrMzgFS9lrpa1yN7L+WXfFV4k8AiBEmhIpwVXIDjDLrqilZtrrKDv0VQXz4vnm5FwQ4oal9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":642532},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.5.0.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.5.0.tgz","_integrity":"sha512-CYVV97mbvX5gtXV/H7Nkrk0fUSy4wFH79zJgNTa7k8PL5bdicnvSVnJu1AYxm8dqRuS2eFcPGrFJxHNwzVKp8A==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.0_1789228134993_0.2017420328967392","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@thalovant/sdk","version":"0.5.1","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.5.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"c07514dab19bbf4c502c7caf3fc4c3158ed131e2","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.5.1.tgz","fileCount":75,"integrity":"sha512-d39JN6avg5yKiQWwvxW2DJV1H/ZBLX6Rd0JKXNhmrC64wtqis6wge7a+slw1Q5cyANrO62kFpwrczdTxjQgZhg==","signatures":[{"sig":"MEQCIHk9ELbyfHVHEM2uNI2coiRnVMjo9aEUlhEbuFfenSO4AiBBno/J5F/9JlyGG94UyrMCnpkkJAFBzRXhIYai9W8mMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":643570},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.5.1.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.5.1.tgz","_integrity":"sha512-d39JN6avg5yKiQWwvxW2DJV1H/ZBLX6Rd0JKXNhmrC64wtqis6wge7a+slw1Q5cyANrO62kFpwrczdTxjQgZhg==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.1_1789229809565_0.014800021300628963","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@thalovant/sdk","version":"0.6.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.6.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"7c9e677b393ea905e7809f8e4cb20c36690a876c","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.6.0.tgz","fileCount":89,"integrity":"sha512-8K63saui/3VvmEQ1kIYk4csD2JjPMA+t4hnq6pBzfx3MFs862m7obKtOTLBz2tTQHt/IXYybaoJfZR4mfLKZpQ==","signatures":[{"sig":"MEUCIQC4cCG864kp3Uguj5FP7zOzYLaMzi19qAdLscqAlIsniwIgIBxTQRVPbDhUpN5qOMUFOI1hVTxykxxvHePxIaSSQt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":829966},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.6.0.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.6.0.tgz","_integrity":"sha512-8K63saui/3VvmEQ1kIYk4csD2JjPMA+t4hnq6pBzfx3MFs862m7obKtOTLBz2tTQHt/IXYybaoJfZR4mfLKZpQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.6.0_1789238458961_0.6702078958880604","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@thalovant/sdk","version":"0.6.1","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.6.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"ea0939a20587c7b982029beb430080f461a92942","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.6.1.tgz","fileCount":89,"integrity":"sha512-4tLJNe9klin/KVkhNmv65fuDgt4nlNYzGDU4TVtuC6gyN5yPaShck9YImIO3aGFx8OVD0jd5XRUQH4TYfeWJ0g==","signatures":[{"sig":"MEQCIFNda9SE4c9zqIUr11Vstco+H5LvYdD7LiMr0ER5yepOAiAJC5RI33oDQcTgHYxk+9j9vqUdfTkiitj1lP+v97Y7+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026398},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.6.1.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.6.1.tgz","_integrity":"sha512-4tLJNe9klin/KVkhNmv65fuDgt4nlNYzGDU4TVtuC6gyN5yPaShck9YImIO3aGFx8OVD0jd5XRUQH4TYfeWJ0g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.6.1_1789242710812_0.651117069988624","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@thalovant/sdk","version":"0.7.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.7.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"24f3534d1b11de8cf9abfa417951c3e331e00f01","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.7.0.tgz","fileCount":95,"integrity":"sha512-P6hnxTxt7FR/UtW0S22j8sJGGrI3knZp1Cjg60CoSvO4CmiT4tqZZLayykkUgp/R+eHcK2v68oDbd7pN4VjnOA==","signatures":[{"sig":"MEUCIEJ7fw7CYc+FgHVxY7tFUf77Gs5yFDfllA5VTVeKd1YwAiEAxcCClq2KNbuEfR3GsXpJ+GL8iOTf0QB1/KMZP3EI5s4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1078533},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.0.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.0.tgz","_integrity":"sha512-P6hnxTxt7FR/UtW0S22j8sJGGrI3knZp1Cjg60CoSvO4CmiT4tqZZLayykkUgp/R+eHcK2v68oDbd7pN4VjnOA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.0_1789312387982_0.2872202517516482","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@thalovant/sdk","version":"0.7.1","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.7.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"5d165d1f8b78cfd982b41b9504a8bd8379cc1b3a","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.7.1.tgz","fileCount":95,"integrity":"sha512-nThfCZYZBxm+R6CDg0ryQJenqjjTAcDb5qOvoB/8FCahgPq+wfK2hwMX1blZ9HSpM7dS27YgtQB8x20RmMMcCA==","signatures":[{"sig":"MEUCIQDjN/rWO96uwm//F0bC6xzglqKjZ4tQ2Qa0SVF4A5EuewIgYOjPQI2+3CnmkyGyD6UjckaMVh2JhWsletwf6XABNW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1082114},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.1.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.1.tgz","_integrity":"sha512-nThfCZYZBxm+R6CDg0ryQJenqjjTAcDb5qOvoB/8FCahgPq+wfK2hwMX1blZ9HSpM7dS27YgtQB8x20RmMMcCA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.1_1789318148976_0.6961087983222829","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@thalovant/sdk","version":"0.7.2","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.7.2","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"ed84607a868fc8660410b2899437f28142de96d6","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.7.2.tgz","fileCount":101,"integrity":"sha512-6zv0CITZYosm+hFsHJ24s+rgOlslvFxhPVop2MO0izjeGIFP/4NKzCLIRde4jR50rLWggkKDFLiCU2PaeDl5lw==","signatures":[{"sig":"MEQCIBZ1cdphwUpVUNfTmB2Dc35O0/yzxJFEhhezpn+6HezvAiBXaysNw2qFK7VFP1QLjTaVJxP2BoYVPv86ZpMsF6BIcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFgHYM3+ctqblPDW+UzNOJsq7CYcf+/DRVv7YKE2prF4AiB3ySM+Bsm0uWdsvHdbcpLqWfqjZZVKHghVWVYU3nQPQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1107832},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.2.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.2.tgz","_integrity":"sha512-6zv0CITZYosm+hFsHJ24s+rgOlslvFxhPVop2MO0izjeGIFP/4NKzCLIRde4jR50rLWggkKDFLiCU2PaeDl5lw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.2_1789480186817_0.8094915760477666","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@thalovant/sdk","version":"0.7.3","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.7.3","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"eef5da5f3825fd8e00386f118b4a028c5bbbab3f","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.7.3.tgz","fileCount":101,"integrity":"sha512-SIpdpK2NmpoOS2VH5OR73Y2Zap4WPnJHJz11YLL+TY9wkKJXmaYq+sduheb9QHs6u7w4iyCyLg1f3Kv9gZAb5g==","signatures":[{"sig":"MEYCIQCDYHABQnFXaM6l4Yca3UqHwLjIzdU6yHv5lspcKupMGQIhAMkF/QoTNpCykXXGIYpkHVqEq1m6cTyuvHkqx6C1ppxD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID+gNaeT3EEvL2FlwF3zdEGeg38D0+Eg7HyBDciORaEmAiAmSIqKBzSqybQyCqjKOomAgQQThSjI3ShYXYczG7pOOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1107832},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.3.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.7.3.tgz","_integrity":"sha512-SIpdpK2NmpoOS2VH5OR73Y2Zap4WPnJHJz11YLL+TY9wkKJXmaYq+sduheb9QHs6u7w4iyCyLg1f3Kv9gZAb5g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.3_1789490579354_0.3678462190386409","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@thalovant/sdk","version":"0.8.0","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.0","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"98f85c3e117060a9e8e1928efb19de1235bc83d0","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.0.tgz","fileCount":101,"integrity":"sha512-d3aDBVFyI3m6z2zH4o3EfflXXBoGvKaP31V4dh7rQ26j/09Ina5NPL1cI3S5nOp4LTWEdkHCEszEVV5Q3Nr+PQ==","signatures":[{"sig":"MEYCIQCyNYpgqvdzbzIHIv5YRN+cRNgHggmdO+lYOH4HSohJhQIhAJFmWp8aHU9iIhqYX8Kn4M4f9eVU/ySMKmUXElY7KShY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC+W8OM7LrYNw7dhiNeUwHzH3IX0R2B9a/BKsXUE048xQIhAOzEhQPEZUWL4Sg4/DNiqpFBseBANK4UwNrC4++FZHey","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1140001},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.0.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.0.tgz","_integrity":"sha512-d3aDBVFyI3m6z2zH4o3EfflXXBoGvKaP31V4dh7rQ26j/09Ina5NPL1cI3S5nOp4LTWEdkHCEszEVV5Q3Nr+PQ==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.0_1789579801567_0.08133557377551237","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@thalovant/sdk","version":"0.8.1","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.1","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"6e74c2134f2b2757a55ac707bc14240955c3cc03","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.1.tgz","fileCount":101,"integrity":"sha512-rn+PzdDYtiId9O5Qlvhc+T1MWrrmWMmmPS/b/GicJeB3hNUSDy9WHFodSZU4CHhbl9NKO4Hr9dOBDdTPggF4sA==","signatures":[{"sig":"MEYCIQCqO1XR9c1CowBbj4GAhdi7VanNiOd15/4nENPdQR2cKgIhAJz9mZnyOJTYXPAuGrZEF/IwEgOW/2WVK1qB4uLrnJG1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDmX/oDGZyGcYT5WmEII/8i1URp2SxA4tzOWUONNsoJ2QIgTd3ladJ1QXftGkzYPuJQlKCE5cDi64zcfJEFjZmeVP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1140066},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.1.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.1.tgz","_integrity":"sha512-rn+PzdDYtiId9O5Qlvhc+T1MWrrmWMmmPS/b/GicJeB3hNUSDy9WHFodSZU4CHhbl9NKO4Hr9dOBDdTPggF4sA==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.1_1789606183772_0.48946845971022523","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@thalovant/sdk","version":"0.8.2","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.2","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"da7daf699f11e2db67946c1c58dcb4e3da16aef2","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.2.tgz","fileCount":104,"integrity":"sha512-jeudc8oI458mEDFxej06yAPkA1fi5DWekS/dxZGDP9l7KioF+P7wJMdJytvSOPHsUV7/JM4RmD7quKpLxXMf6w==","signatures":[{"sig":"MEYCIQD74zVPnCMR+zdbLvuj9MeXQz6PL9ys4STwP57MxZTcFwIhAIXfum4JEUxtTnWlZBKby0Ay0p7Brny38zAopCNeQwQ2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD50V+i6DANhez2RVp5AsUjQYgIuduNWB4yTI7nYemuhgIhAM2MSq8cbdFlqawLxipAnKv3lkhPCKB5aObpMHVZjCGK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1159217},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.2.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.2.tgz","_integrity":"sha512-jeudc8oI458mEDFxej06yAPkA1fi5DWekS/dxZGDP9l7KioF+P7wJMdJytvSOPHsUV7/JM4RmD7quKpLxXMf6w==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.2_1789790337163_0.8596687418304518","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@thalovant/sdk","version":"0.8.3","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.3","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"a0fd0c5548d3537c25bbd28ac69262cfe3f08af7","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.3.tgz","fileCount":104,"integrity":"sha512-fRl32N6qut7UIU7KrQQmDn3ckJgaXRVt+VaSRbfuohE5YQkuZ/GGuDbkC+7QLHKOKlyNxtGvPCRF3AjuSs54+Q==","signatures":[{"sig":"MEYCIQClm/hq6Qr/6MR2BAa34K6wV/1dFZVWqUZO5ldMFYXwpQIhAKfTaPJA0K3gpelsBLLnw7M/zVujckOJgv0Z8FB8qJyl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBOPgrK3twSn3oszMifq3I3dJ19lFYATg1LHZJTkw/SnAiEAskleGfnQwxj1XU9zsVlfr21418KnCpHbmaeaNz9PQSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1159217},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.3.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.3.tgz","_integrity":"sha512-fRl32N6qut7UIU7KrQQmDn3ckJgaXRVt+VaSRbfuohE5YQkuZ/GGuDbkC+7QLHKOKlyNxtGvPCRF3AjuSs54+Q==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.3_1790024629045_0.9169037438509986","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@thalovant/sdk","version":"0.8.4","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.4","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"ad0ff1884f93872808dff8f9e1c4f137b9332c5d","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.4.tgz","fileCount":104,"integrity":"sha512-3GZAiwm8BGf551Pq1AAz4b7HAdnziXzktlpM7AlP1NoCykBfk5qw+kUxllhae86lmXu7MpQoI207UH8cBnt19g==","signatures":[{"sig":"MEYCIQCxCYNYrGMxQiXxv5E2BEvWO0UMDHpBi0/OhffBaXNQSwIhAOahMEn3b/rpb4Jzorm0y7KlAIuAsbm1yRikfOKUDIU7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCU4V5oqZZUaFsKvhyahJVmYIhklWrKw/7Dh2dK7IddOgIhAIu8vNc+XowSUY9DyRRpj38N4w7C/f0ABNGIqpsysUsD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1165970},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.4.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.4.tgz","_integrity":"sha512-3GZAiwm8BGf551Pq1AAz4b7HAdnziXzktlpM7AlP1NoCykBfk5qw+kUxllhae86lmXu7MpQoI207UH8cBnt19g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.4_1790024943767_0.07611232013523916","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@thalovant/sdk","version":"0.8.5","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.5","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"d3bd0488c34badac3c9df54cb985def2953a820e","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.5.tgz","fileCount":104,"integrity":"sha512-eN3TrW2apy9C7iFJiiWUxCs3AWYyjlveVVDQqZ6PqQLe7E0JpZOE8QzzjqkJ+oDp6bvnTto5AC9LnIsCyfgsLw==","signatures":[{"sig":"MEQCIEVnOm9hsC94KSrrLsDbd5Rr+GXwC0GfXX2Y3B6wxj1wAiAuD6XAkbFGtw6qWqoIGJ8rkNrW8nHS2UouLWnLc7Xd8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDTHVxtYAK6DrhLXHRSQJV9fUeq440Zx6q6QvA9FhYyGQIhALQOxXMZuZ/UQU7Kdz/ojm3y31oockhfUHerxuLSHeKQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1166175},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.5.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.5.tgz","_integrity":"sha512-eN3TrW2apy9C7iFJiiWUxCs3AWYyjlveVVDQqZ6PqQLe7E0JpZOE8QzzjqkJ+oDp6bvnTto5AC9LnIsCyfgsLw==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.5_1790029212308_0.28537698500329767","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@thalovant/sdk","version":"0.8.6","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.6","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"06bb6c4fb206ba0e31204481c0ee07230b54ea6d","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.6.tgz","fileCount":104,"integrity":"sha512-qe5o/eeX31h9JEKLAeAp52pCAHxKdiOV00y/rygrOzGiurBVHFdnZf/Rn1Ut3auChtFXe5qarmDbBHF+Yp2N5g==","signatures":[{"sig":"MEUCIQDFoUbuxaWwTMgFBHlx1SjFzrFfiX3TeaoYB60XlNr9MQIgdrS61rOz8J+jrpW3dVlkNFpJud+cf3zTILHHzlqM0MM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHICNEw2aVaBqNoFrp4O3mSVpgZfWDwpYraYhxIbVZXWAiEAplZFhJcJbIWDAramxSSvLF0ihtSx3lTgWhdL6vBWwXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1167426},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.6.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.6.tgz","_integrity":"sha512-qe5o/eeX31h9JEKLAeAp52pCAHxKdiOV00y/rygrOzGiurBVHFdnZf/Rn1Ut3auChtFXe5qarmDbBHF+Yp2N5g==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.6_1790469204770_0.11265346196779658","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@thalovant/sdk","version":"0.8.7","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"author":{"name":"Thalovant"},"license":"MIT","_id":"@thalovant/sdk@0.8.7","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"homepage":"https://docs.thalovant.com/developers/sdks/node/","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"f6669c513a03359f4720a3b8c99bb376ae15655d","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.8.7.tgz","fileCount":104,"integrity":"sha512-bC7sYfYeL4V0d031CP6GYPPgbn7cOenOhGsPLdSfgxvpXFyhdCegrOdl5TYrW4auCCnNk82+K8fOcfWDFuku5A==","signatures":[{"sig":"MEQCICqFGyOoT66+N+6JoUsF6byMTveAio9/F8v3uaM4R6jTAiAaeoPjklG5Cnrev5IoI1L78E5i10Y4i9M35hUsUzpfiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFt1gTyl1dAqvjjoE1yC5tl3LUAwUJCS0aQAUWc0PIMZAiAoDCP3O8q/lHD3N6c4ybm/OPRTbezMghmRbBrZXmD+mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.8.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1177521},"main":"./dist/src/index.js","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.7.tgz","types":"./dist/src/index.d.ts","browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.8.7.tgz","_integrity":"sha512-bC7sYfYeL4V0d031CP6GYPPgbn7cOenOhGsPLdSfgxvpXFyhdCegrOdl5TYrW4auCCnNk82+K8fOcfWDFuku5A==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.8.7_1790479179747_0.2705919629506348","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@thalovant/sdk@0.9.0","bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"dist":{"shasum":"fcd04174d86c6e3fa425b9ef40331f6f8c757818","tarball":"https://registry.npmjs.org/@thalovant/sdk/-/sdk-0.9.0.tgz","fileCount":113,"integrity":"sha512-XF3smObF7QtPl/lLMbaMF47+Y1eSkHPjRNqWXlh6NXuNhqvXZ1Lvd+5Zhd2liJgJqfl8K+0w6varFT5uaeLv2w==","signatures":[{"sig":"MEYCIQCm+cTfTD0HnDGzivD8e3jqrVtIqYchw9mcAvue+4uGHAIhAKvNjqn22/C2WpEBmP97kzabCCfCw/Cr8gRO2qZhIgzq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHCqCHP530Y8wkQ5SjJICORCvpTY/BYbO25Bkv72+QT2AiAOsj/T5dF8ffq+NB5SvZaLqzRVzY1eSpKKvMgK0iWy0Q=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@thalovant%2fsdk@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366058},"main":"./dist/src/index.js","name":"@thalovant/sdk","type":"module","_from":"file:/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.9.0.tgz","types":"./dist/src/index.d.ts","author":{"name":"Thalovant"},"browser":{"./dist/src/platform/node.js":"./dist/src/platform/browser.js","./dist/src/transport-mqtt.js":"./dist/src/transport-mqtt.browser.js"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","browser":"./dist/src/index.js"}},"license":"MIT","scripts":{"test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","record-conformance":"node scripts/record-conformance.mjs"},"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5254e8d3-01dd-414c-96fb-04008c5b754d"}},"homepage":"https://docs.thalovant.com/developers/sdks/node/","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"_resolved":"/home/runner/work/thalovant-node-sdk/thalovant-node-sdk/release-artifacts/thalovant-sdk-0.9.0.tgz","_integrity":"sha512-XF3smObF7QtPl/lLMbaMF47+Y1eSkHPjRNqWXlh6NXuNhqvXZ1Lvd+5Zhd2liJgJqfl8K+0w6varFT5uaeLv2w==","repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"_npmVersion":"12.0.1","description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","directories":{},"maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","mqtt":"^5.15.1","yaml":"^2.9.0","hash-wasm":"^4.12.0","@noble/curves":"^2.4.0","@noble/hashes":"^2.4.0","@noble/ciphers":"^2.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.2","@types/ws":"^8.18.1","typescript":"^5.8.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.9.0_1790594459525_0.5836890517608158"}}},"time":{"created":"2026-06-05T19:33:44.214Z","modified":"2026-09-28T11:20:59.965Z","0.2.0":"2026-06-05T19:33:44.517Z","0.2.1":"2026-06-07T23:53:48.043Z","0.2.2":"2026-06-08T01:12:01.952Z","0.2.3":"2026-06-08T16:20:43.864Z","0.2.4":"2026-06-08T17:10:41.199Z","0.2.5":"2026-06-08T21:49:08.637Z","0.2.6":"2026-06-09T01:39:12.082Z","0.2.7":"2026-06-09T03:54:08.646Z","0.2.8":"2026-06-09T13:08:23.479Z","0.2.9":"2026-06-09T13:16:22.561Z","0.2.10":"2026-06-10T02:45:59.696Z","0.2.11":"2026-06-10T03:48:21.176Z","0.2.12":"2026-06-17T18:59:24.609Z","0.2.13":"2026-07-02T18:33:36.943Z","0.2.14":"2026-07-06T21:12:02.825Z","0.2.15":"2026-07-06T22:21:50.230Z","0.2.16":"2026-07-08T15:27:56.216Z","0.2.17":"2026-07-10T17:32:26.038Z","0.2.18":"2026-07-12T04:10:58.096Z","0.2.21":"2026-08-03T12:36:22.595Z","0.2.22":"2026-08-11T23:54:01.857Z","0.2.23":"2026-08-13T16:34:00.764Z","0.2.24":"2026-08-13T17:23:04.919Z","0.2.25":"2026-08-13T23:40:10.481Z","0.2.26":"2026-08-14T17:57:45.870Z","0.2.27":"2026-08-14T18:14:14.849Z","0.2.28":"2026-08-15T02:39:29.169Z","0.2.29":"2026-08-15T12:54:15.760Z","0.2.30":"2026-08-15T22:44:25.342Z","0.2.31":"2026-08-15T23:16:39.205Z","0.2.32":"2026-08-26T06:28:38.390Z","0.2.33":"2026-09-01T10:17:43.289Z","0.2.34":"2026-09-01T12:55:02.801Z","0.2.35":"2026-09-01T13:33:08.654Z","0.2.36":"2026-09-03T21:33:46.428Z","0.2.37":"2026-09-03T21:45:35.321Z","0.2.38":"2026-09-05T16:31:47.595Z","0.2.39":"2026-09-05T17:04:38.250Z","0.3.0":"2026-09-06T17:39:06.698Z","0.3.1":"2026-09-07T13:13:01.777Z","0.3.2":"2026-09-08T15:10:38.847Z","0.3.3":"2026-09-08T15:56:55.802Z","0.3.4":"2026-09-09T04:54:35.094Z","0.3.5":"2026-09-09T11:11:50.781Z","0.3.6":"2026-09-09T13:27:52.277Z","0.3.7":"2026-09-09T14:27:09.932Z","0.3.8":"2026-09-09T14:53:01.537Z","0.3.9":"2026-09-09T15:25:16.087Z","0.3.10":"2026-09-09T16:39:35.902Z","0.3.11":"2026-09-09T17:33:41.389Z","0.3.12":"2026-09-09T17:52:31.795Z","0.3.13":"2026-09-10T00:26:12.356Z","0.3.14":"2026-09-10T00:40:18.807Z","0.3.15":"2026-09-10T01:33:36.365Z","0.3.16":"2026-09-10T01:50:20.877Z","0.4.0":"2026-09-12T02:25:10.634Z","0.5.0":"2026-09-12T15:48:55.139Z","0.5.1":"2026-09-12T16:16:49.706Z","0.6.0":"2026-09-12T18:40:59.109Z","0.6.1":"2026-09-12T19:51:50.963Z","0.7.0":"2026-09-13T15:13:08.144Z","0.7.1":"2026-09-13T16:49:09.112Z","0.7.2":"2026-09-15T13:49:46.893Z","0.7.3":"2026-09-15T16:42:59.475Z","0.8.0":"2026-09-16T17:30:01.667Z","0.8.1":"2026-09-17T00:49:43.888Z","0.8.2":"2026-09-19T03:58:57.265Z","0.8.3":"2026-09-21T21:03:49.152Z","0.8.4":"2026-09-21T21:09:03.869Z","0.8.5":"2026-09-21T22:20:12.407Z","0.8.6":"2026-09-27T00:33:24.877Z","0.8.7":"2026-09-27T03:19:39.870Z","0.9.0":"2026-09-28T11:20:59.621Z"},"bugs":{"url":"https://github.com/thalovant/thalovant-node-sdk/issues"},"author":{"name":"Thalovant"},"license":"MIT","homepage":"https://docs.thalovant.com/developers/sdks/node/","keywords":["thalovant","sdk","agent","voice","assistant","iot"],"repository":{"url":"git+https://github.com/thalovant/thalovant-node-sdk.git","type":"git"},"description":"Node.js, browser, and TypeScript SDK for direct Thalovant hub data-plane clients and agents","maintainers":[{"name":"thalovant","email":"contact@thalovant.com"}],"readme":"# Thalovant Node.js SDK\n\nTypeScript SDK for connecting Node.js apps, services, and agents to Thalovant\nhubs.\n\nThe control API is used to discover hubs and provision a client identity. After\nthat, the SDK talks directly to the hub data plane over HTTPS, WSS, or MQTTS.\n\nFull docs: <https://docs.thalovant.com/developers/sdks/node/>\n\n## What You Need\n\n- A Thalovant account with API access for authenticated control-plane actions.\n- A hub id or slug.\n- A client identity for that hub. You can create one through the API or use one\n  downloaded from the dashboard.\n\n## Install\n\n```bash\nnpm install @thalovant/sdk\n```\n\nNode.js 20 or newer is required.\n\n## Quick Start\n\n```ts\nimport { ThalovantClient, ThalovantControlPlane } from \"@thalovant/sdk\";\n\nconst api = new ThalovantControlPlane();\n\n// Public hub discovery does not require auth.\nconst publicHubs = await api.listPublicHubs({ limit: 12 });\nfor (const hub of publicHubs.data as Array<{ id: string; slug: string; title: string }>) {\n  console.log(hub.id, hub.slug, hub.title);\n}\n\n// Auth is required when creating a client identity.\nawait api.login(\"you@example.com\", \"password\");\n\nconst result = await api.createClientIdentity(\"hub-id\", {\n  name: \"node-demo-client\",\n  preferredProtocols: [\"wss\", \"https\", \"mqtt\"],\n});\n\nconst client = new ThalovantClient(result.identity, { protocol: \"wss\" });\ntry {\n  const connection = await client.connectWithInfo();\n  console.log(connection);\n\n  const reply = await client.query(\"Tell me a short clean joke.\");\n  console.log(reply.text);\n} finally {\n  await client.close();\n}\n```\n\n`new ThalovantControlPlane()` uses `https://api.thalovant.com` by default. Pass\na different URL only for local development or a self-hosted control plane.\n\nKeep `result.identity` secret. It contains the client credentials used by the\nhub. The default `result.asObject()` is safe to log: it omits the credential\nfields (the identity credentials, the client record's `initial_identify`\nbundle, and the echoed spec keys), drops secret-named entries from free-form\n`metadata` (nested values included), and strips any `user:pass@` userinfo from\nendpoint URLs. `result.asObject({ includeSecrets: true })` contains the real\ncredentials — use it only to persist the identity, and never log it.\n\nFor quick debugging, `console.log` of a `ThalovantIdentity`,\n`MqttBrokerCredentials`, or `ThalovantControlPlane` prints a redacted form in\nNode (via the `util.inspect` hook), and `String(value)` / template literals\nprint the same redacted form in Node and browsers. Browser devtools, however,\nenumerate an object's own properties directly, so `console.log(identity)` in a\nbrowser can still show the raw credential fields — in browser code, log\n`identity.asObject()` (or the `String(...)` form) rather than the object\nitself.\n\n## Sign In Without A Password\n\nAccounts without a password (for example Google sign-in) authenticate through\nthe browser device flow. `loginWithBrowser()` prints a short code and a\nverification URL, makes a best-effort attempt to open your default browser,\nand waits until you approve the request there:\n\n```ts\nconst api = new ThalovantControlPlane();\n\n// Prints: To sign in, visit https://dash.thalovant.com/activate and enter the code XXXX-XXXX\nconst token = await api.loginWithBrowser({ clientName: \"my-laptop\" });\n\n// api.accessToken is now set, exactly like after api.login(...).\nconst page = await api.listHubs({ limit: 50 });\n```\n\nOptions:\n\n- `scopes`: token scopes to request (server default when omitted). The server\n  normalizes scopes, so the echoed `scopes` array may be larger than requested\n  (for example `hubs:read` expands to include `hubs:preview` and\n  `hubs:inspect`).\n- `clientName`: label shown in the dashboard token list.\n- `openBrowser`: set `false` to only print the URL and code (default `true`;\n  opening is best-effort and never fails the sign-in).\n- `prompt`: callback receiving the authorization payload to present the code\n  and URL yourself instead of the default console message.\n- `timeoutMs`: how long to wait for approval (default `900000`, 15 minutes).\n\nThe request rejects with a clear error when the sign-in is denied in the\nbrowser, the code expires, or the timeout elapses. The returned\n`access_token` is a durable scoped API token; store it securely to reuse it\nlater as `accessToken` (see the next section).\n\n## Token Auth For CI And Automation\n\nHeadless environments (CI jobs, AI agents, cron tasks) should skip login\nentirely: mint a scoped API token in the dashboard once, then pass it to the\nconstructor:\n\n```ts\nconst api = new ThalovantControlPlane(\"https://api.thalovant.com\", {\n  accessToken: process.env.THALOVANT_API_TOKEN,\n});\n\n// Ready immediately; no login call needed.\nconst page = await api.listHubs({ limit: 50 });\n```\n\n```bash\n# CI configuration\nexport THALOVANT_API_TOKEN=\"tvpat_...\"  # store in your CI secret manager\n```\n\nTokens minted through the dashboard or returned by `loginWithBrowser()` are\ndurable and scoped; grant only the scopes the job needs and rotate them from\nthe dashboard.\n\n## Log In With MFA\n\nAccounts with multi-factor authentication enabled must include a TOTP code or a\nrecovery code with the login. Without one the API responds with HTTP 401 and\ncode `mfa_required`.\n\n```ts\nawait api.login(\"you@example.com\", \"password\", { otpCode: \"123456\" });\n\n// Or use a one-time recovery code instead:\nawait api.login(\"you@example.com\", \"password\", { recoveryCode: \"abcd-efgh-ijkl\" });\n```\n\n## List Your Hubs\n\nAuthenticated accounts can list owned or visible hubs:\n\n```ts\nconst api = new ThalovantControlPlane();\nawait api.login(\"you@example.com\", \"password\");\n\nconst page = await api.listHubs({ limit: 50 });\nfor (const hub of page.data as Array<{ id: string; slug: string; title: string }>) {\n  console.log(hub.id, hub.slug, hub.title);\n}\n```\n\n## Provision Hubs\n\nHubs, runtime groups, and skills can be created and managed from code. These\nroutes need a **paid plan** and a token with the **`hubs:write`** scope\n(\"Create and update your hubs\" on the dashboard's API Tokens page). A free-plan\ntoken fails with HTTP 402 `API access requires a paid plan.`, and a token\nwithout the scope fails with HTTP 403 `Insufficient scopes`. Both surface as\n`ThalovantApiError` (see [Reading An API Error](#reading-an-api-error)).\n\n```ts\nconst api = new ThalovantControlPlane(undefined, {\n  accessToken: process.env.THALOVANT_API_TOKEN,\n});\n\n// 1. Discover what is installable before provisioning anything.\nconst catalog = await api.listMarketplaceSkills();\nfor (const skill of catalog.data as Array<Record<string, unknown>>) {\n  console.log(skill.skill_id, skill.title, skill.access_tier);\n}\n\n// 2. Create a runtime group to run the skills.\nconst group = await api.createRuntimeGroup({ name: \"kiosks\", description: \"Lobby kiosks\" });\n\n// 3. Create a hub attached to it.\nconst hub = await api.createHub({\n  name: \"joke-garden\",\n  runtimeGroupId: group.id as string,\n  spec: { protocols: { wss: { enabled: true } } },\n});\n\n// 4. Install a skill from the marketplace catalog.\nawait api.installRuntimeGroupSkill(group.id as string, \"skill-weather\");\n\n// 5. Release: roll the runtime and the hub onto a release channel.\nawait api.releaseRuntimeGroup(group.id as string, { channel: \"stable\" });\nawait api.releaseHub(hub.id as string, { channel: \"stable\" });\n```\n\n`createHub` sends an `Idempotency-Key` header. To safely retry after a timeout\nor uncertain outcome, retain an explicit `idempotencyKey` before the first call\nand reuse it with the same payload. When you omit the option, each call generates\na fresh key, so a later retry can create a second hub.\n\nUpdating and deleting a hub use optimistic locking. Pass the `etag` from the\nhub resource you read; the SDK sends it as `If-Match`, and the API rejects a\nstale **or missing** value with HTTP 412 without changing anything — which is\nwhy `etag` is required rather than optional:\n\n```ts\nconst current = await api.getHub(hub.id as string);\nconst disabled = await api.updateHub(current.id as string, { active: false }, {\n  etag: current.etag as string,\n});\nawait api.deleteHub(disabled.id as string, { etag: disabled.etag as string });\n```\n\nDeleting a hub also deletes its clients and ACLs. Runtime groups have no\n`If-Match` requirement, but the API refuses to delete the workspace default\ngroup or a group that still has hubs attached (HTTP 409).\n\nConfiguration updates deep-merge with a revision precondition. The SDK reads\nfresh configuration after HTTP 412 conflicts, with at most three total write attempts.\nA server without revision support fails before a write. Merging needs both\n`hubs:read` and paid `hubs:write`; set `merge: false` for explicit replacement:\n\n```ts\nawait api.updateRuntimeGroupConfig(group.id as string, {\n  lang: \"en-us\",\n});\n```\n\nRating a public hub needs the `hubs:write` scope but **no** paid plan:\n\n```ts\nawait api.setHubRating(\"public-hub-id\", 5);\nawait api.clearHubRating(\"public-hub-id\");\n```\n\nReading what a hub is actually running needs the `hubs:inspect` scope instead.\nThis is the one read that answers HTTP 409 when no connected client can report\ninventory:\n\n```ts\nconst capabilities = await api.getHubRuntimeCapabilities(hub.id as string);\nconsole.log((capabilities.counts as Record<string, number>).total_intents);\n```\n\n## Discover Skills\n\nThe marketplace catalog is readable with the **`hubs:read`** scope and, unlike\nthe provisioning routes above, is **not paid-gated** — a free-plan token can\nbrowse the whole catalog before upgrading, and only the install needs a paid\nplan.\n\n```ts\nconst catalog = await api.listMarketplaceSkills();\nfor (const skill of catalog.data as Array<Record<string, unknown>>) {\n  console.log(skill.skill_id, skill.category, skill.access_tier);\n}\n```\n\nEach entry carries what an install needs (`skill_id`, `source_type`,\n`source_ref`, `config_schema`, `secret_schema`) next to presentation fields\n(`title`, `summary`, `tags`, `verified`). Admin tokens can additionally pass\n`ownerId` to read another tenant's catalog and `includeInactive: true` to see\nretired entries; both are silently ignored for non-admin callers rather than\nrejected. `forceRefresh: true` re-syncs the global catalog from source first,\nwhich is slower and is available to every caller.\n\nTwo group-scoped reads need the **`hubs:inspect`** scope and are likewise not\npaid-gated. The first resolves the catalog against one runtime group, so each\nentry reports whether it is already desired, whether it was observed running,\nand whether the tenant plan allows installing it:\n\n```ts\nconst view = await api.listRuntimeGroupMarketplace(group.id as string);\nfor (const entry of view.data as Array<Record<string, unknown>>) {\n  if (entry.installable && !entry.active) console.log(\"available:\", entry.skill_id);\n}\n```\n\nThe second answers what the group is actually running right now, rather than\nwhat could be installed:\n\n```ts\nconst inventory = await api.listRuntimeGroupInventory(group.id as string, { refresh: true });\nconsole.log(inventory.source, (inventory.data as unknown[]).length);\n```\n\nBoth answer from a cached inventory snapshot by default; pass\n`refreshInventory: true` or `refresh: true` to force a live read from the\nruntime operator. Neither fails when nothing is reporting yet: they return an\nempty `data` list with the observation's provenance in `source`\n(`runtime-group-cache-empty` for an unrefreshed group view,\n`ovos-runtime-operator-pending` for an inventory refresh the operator has not\nanswered). `getHubRuntimeCapabilities` is the one that answers HTTP 409 instead.\n\n## Skills On One Hub\n\nThe hub-skill calls manage the attachments of the hub’s shared runtime group.\nThe group can start with no skills. These calls address\n**the runtime group selected by a hub id** (the authenticated hub routes do not take slugs) and every\nchange applies live on that hub, typically within about fifteen seconds and\nwithout restarting it.\n\n```ts\nconst listing = await api.listHubSkills(hub.id as string);\nconsole.log(listing.source, listing.observed_at);\nfor (const skill of listing.data) {\n  console.log(skill.skill, skill.installed_version, skill.state, skill.update_available);\n}\n\n// Accepted at once: HTTP 202 with an operation_id, state \"installing\".\nconst accepted = await api.installHubSkill(hub.id as string, \"skill-weather\");\nconsole.log(accepted.operation_id, accepted.state, accepted.previous_version);\n\n// Or poll the operation until it converges (default timeoutMs 120000).\nconst done = await api.installHubSkill(hub.id as string, \"skill-weather\", { version: \"1.2.0\", wait: true });\nconsole.log(done.state); // \"installed\"\n\nawait api.updateHubSkill(hub.id as string, \"skill-weather\", { version: \"latest\", wait: true });\nawait api.removeHubSkill(hub.id as string, \"skill-weather\", { wait: true }); // state \"removed\"\n```\n\n`listHubSkills` resolves with a typed `HubSkillList`: the envelope says where\nthe reading came from (`hub_id`, `runtime_group_id`, `observed_at`, `source`,\nthe runtime's phase and message) and `data` holds one `HubSkill` row per\nskill (`skill`, `title`, `version`, `installed_version`, `observed_version`,\n`latest_version`, `update_available`, `active`, `state`, the runtime's last\nerror, and more). A row's `state` is `pending`, `installed`, `failed`,\n`removing`, `drifted`, `quarantined`, or `unmanaged`; a change in progress\nshows as `pending`.\n\nThe writes resolve with a typed `HubSkillOperation` (`operation_id`,\n`hub_id`, `runtime_group_id`, `skill`, `version`, `previous_version`,\n`state`). Installing a skill the hub already carries at another version\nperforms an update. With `wait: true` a `failed` or `timed_out` operation\nrejects with `ThalovantApiError` carrying the accepted operation ID and error message, and\nrunning past the polling budget `timeoutMs` rejects with `ThalovantTimeoutError`;\nno new status read starts once that budget expires. A failed status read is not\nretried: the error message retains the accepted operation ID so you can resume\nwith `getOperation`, and its `cause` retains the original sanitized API error.\nThe polling deadline does not cancel an HTTP request already in flight. The API\nanswers HTTP 409 `skill_version_already_installed` for the same version,\nHTTP 404 `hub_without_runtime_group` when the hub has no runtime group yet\n(a plain 404 for an unknown hub or a skill that is not installed), and HTTP\n422 for an unresolvable `\"latest\"` or an invalid version; the problem `code`\nis the error's `code` and is appended to the error message, for example\n`HTTP 409: Skill version already installed. (skill_version_already_installed)`.\nListing needs `hubs:inspect` (`hubs:read` implies it); the writes need\n`hubs:write` and a paid plan. Hub-restricted tokens are honoured.\n\n## Workspace Analytics\n\nAuthenticated accounts can read the same overview used by the dashboard:\n\n```ts\nconst overview = await api.getAnalyticsOverview({\n  range: \"7d\",\n  hubId: \"hub-id\",\n});\nconsole.log(overview.totals);\n```\n\n## Durable Memory\n\nPrivate Daily Desk and workspace assistants can manage explicit opt-in memory:\n\n```ts\nconst memory = await api.createMemoryItem({\n  scope: \"workspace\",\n  kind: \"preference\",\n  content: \"Prefer America/Toronto for scheduling.\",\n  tags: [\"timezone\"],\n});\nconsole.log(memory.id);\n\nconst items = await api.listMemoryItems({\n  scope: \"workspace\",\n  query: \"timezone\",\n});\nconsole.log(items.data);\n```\n\n## Use An Existing Identity\n\nFor local development, store one or more identities in the protected SDK config:\n\n```bash\nmkdir -p ~/.config/thalovant\nchmod 700 ~/.config/thalovant\n$EDITOR ~/.config/thalovant/config.yaml\nchmod 600 ~/.config/thalovant/config.yaml\n```\n\n```yaml\nprofile: prod\nprofiles:\n  prod:\n    identity:\n      access_key: ...\n      password: ...\n      site_id: demo-agent\n      default_master: https://jokes.thalovant.io\n      data_plane_endpoints:\n        wss: wss://jokes.thalovant.io/public\n        https: https://jokes.thalovant.io/public\n        mqtt: mqtts://mqtt.thalovant.com:8883\n      mqtt:\n        endpoint: mqtts://mqtt.thalovant.com:8883\n        username: ...\n        password: ...\n        topic_prefix: hubs/hub-id/clients/client-id\n        tls: true\n```\n\n```ts\nimport { ThalovantClient } from \"@thalovant/sdk\";\n\nconst client = await ThalovantClient.fromConfig({ profile: \"prod\" });\ntry {\n  const reply = await client.ask(\"What can this hub do?\");\n  console.log(reply.text);\n} finally {\n  await client.close();\n}\n```\n\nSDKs reject config files that are readable or writable by other users on Linux\nand macOS. Keep this file out of git.\n\nRaw identity files are supported too:\n\n```ts\nconst client = await ThalovantClient.fromIdentityFile(\"_identity.json\");\n```\n\nEnvironment variables are supported too:\n\n```ts\nconst client = ThalovantClient.fromEnv();\n```\n\n## Link Home Assistant\n\nA home controller such as Home Assistant links to a hub in four steps: sign in\non the device, create a connection of the `home_assistant` kind, wait for the\nhub to admit it, and answer the hub's requests on the data plane. Each step is\none call, so a config flow can run it on its own schedule.\n\n```ts\nimport {\n  answerHomeRequests,\n  CONNECTION_TYPE_HOME_ASSISTANT,\n  HOME_ASSISTANT_SCOPES,\n  HubSession,\n  ThalovantAlreadyLinkedError,\n  ThalovantControlPlane,\n  ThalovantDeviceLoginPendingError,\n} from \"@thalovant/sdk\";\n\nconst api = new ThalovantControlPlane();\n\n// 1. Sign in on the device (RFC 8628), one poll at a time.\nconst grant = await api.beginDeviceLogin({ scopes: HOME_ASSISTANT_SCOPES, clientName: \"Home Assistant\" });\nconsole.log(`Visit ${grant.verificationUri} and enter ${grant.userCode}`);\nfor (;;) {\n  try {\n    await api.pollDeviceLogin(grant); // keeps api.accessToken and api.tokenId\n    break;\n  } catch (error) {\n    if (!(error instanceof ThalovantDeviceLoginPendingError)) throw error; // expired, denied, or the API's own error\n    await new Promise((resolve) => setTimeout(resolve, error.intervalMs));\n  }\n}\n\n// 2. Create the connection. The API must answer with the same kind.\nconst hub = await api.getHub(hubId);\nconst link = await api.createClientIdentity(hub, {\n  name: \"Home Assistant (Kitchen hub)\",\n  connectionType: CONNECTION_TYPE_HOME_ASSISTANT,\n});\n\n// 3. Wait for the hub to admit it: about ninety seconds.\nawait api.waitForAdmission(link, { signal });\n\n// 4. Keep the link and answer every request.\nconst session = HubSession.forIdentity(link.identity);\nanswerHomeRequests(session, async (request, signal) => {\n  const reply = await conversationAgent(request.utterance, request.lang, { signal });\n  return { speech: reply.text, responseType: \"action_done\" };\n});\nawait session.run(); // until session.close()\n```\n\n**Signing in.** `beginDeviceLogin()` returns a `DeviceAuthorization`:\n`userCode`, `verificationUri`, `verificationUriComplete` (the URL with the code\nin it, or `null`), `interval` and `expiresIn` in seconds. A verification URL\nthat is not http(s), has no host, or carries credentials is refused, since it is\nabout to be opened in a browser. Each `pollDeviceLogin()` is one request: it\nresolves with an `ApiToken` (`tokenType`, `scopes`, `expiresAt`, `tokenId`) and\nkeeps it on the control plane, or rejects with\n`ThalovantDeviceLoginPendingError` (poll again after its `interval`; a\n`slow_down` from the API has already added five seconds, for good),\n`ThalovantDeviceLoginExpiredError` or `ThalovantDeviceLoginDeniedError`. Neither\nthe device code nor the token appears in an error or in `console.log` of these\nobjects; `JSON.stringify` keeps them, so a sign-in can be stored as a secret and\nresumed with `DeviceAuthorization.fromGrant()`. An empty scope list is left out\nof the request, as none is, so the API's default applies (it refuses `[]`).\n`revokeApiToken()` revokes the\ntoken the SDK signed in with (a token may always revoke itself) and forgets it;\na token already revoked (a 401 on its own revoke) counts as revoked, and\nrevoking again sends nothing until the next sign-in. Every\nsign-in -- device, password or native -- replaces `tokenId`, so an earlier\ntoken's id never outlives it.\n`HOME_ASSISTANT_SCOPES` is `hubs:read`, `clients:read` and `clients:write`,\nwhich is also all a Free plan can approve.\n\n**Creating the connection.** `connectionType` is sent as\n`spec.connection_type`. When the answer does not repeat it, the API made an\nordinary satellite instead: the SDK deletes it and rejects with\n`ThalovantUnsupportedConnectionTypeError`, as it does for a 422 about the field\n(read from the problem's sentence and its validation entries, never from the\nspec the API echoes back, so a 422 about another field stays what it is).\nThe result carries `clientId`, `connectionType` and the `operation` that admits\nit. Each refusal has a class to branch on, all of them `ThalovantApiError` with\n`statusCode`, `code` and `detail`:\n\n| Refusal | Class |\n|---|---|\n| 422 naming `connection_type`, or a kind the API ignored | `ThalovantUnsupportedConnectionTypeError` |\n| 402, or 403 `plan_limit` | `ThalovantPlanError` |\n| 409 `home_assistant_already_linked` | `ThalovantAlreadyLinkedError`, with the `clientId` holding the link |\n| 401, 423, or 403 `Insufficient scopes` | `ThalovantAuthError`: sign in again |\n\n`deleteClient(clientId, { etag })` deletes a connection with `If-Match`,\nreading the etag first when none is given, retrying once on 412, and counting\n404 as deleted. `getClient()` and `listClients()` read them.\n\n**Admission.** `waitForAdmission(result, { timeoutMs, pollIntervalMs, signal })`\nfollows the operation: `ready` resolves, `failed` and `timed_out` reject with\n`ThalovantAdmissionFailedError` (its `errorCode` is the operation's), and a 404\nor no operation at all resolves at once. A 5xx is ridden out, and a 429 no\nsooner than the wait it names -- the problem's `retry_after_seconds`, else the\n`Retry-After` header, else `RateLimit-Reset` (every `ThalovantApiError` carries\nit as `retryAfterSeconds`); a 429 asking for longer than is left ends the wait at\nonce as a timeout. A 401 or 403 rejects with the API's own error (sign in again),\nan API out of reach with `ThalovantApiUnreachableError`, and any other refusal of\nthe wait with `ThalovantAdmissionFailedError` keeping its `statusCode`, `code`,\n`detail` and `problem`. No read runs past the deadline. When `timeoutMs`\n(default 180000) passes first it rejects with `ThalovantAdmissionTimeoutError`,\nwhich is both a `ThalovantConnectionError` and a `ThalovantTimeoutError`: the\nhub may still admit it later. A `links.self` on another origin (scheme, host and\nport) than the API's is refused and never fetched.\n\n**Answering.** The hub sends `thalovant.home.request` (`request_id`,\n`utterance`, `lang`, `conversation_id`) and waits 10 seconds for one\n`thalovant.home.response`. `answerHomeRequests(linkOrSession, handler)` answers\nevery one; `answerHomeRequest()` answers one and resolves with what it sent, or\nundefined when there was no time left. Both answer at most once and never after\nthe hub's 10 seconds, counted from the request's arrival (`hubTimeoutMs`): the\nhandler gets its `timeoutMs` or what is left, and the reply's sending gets what\nthe handler left -- one still queued at the bound is withdrawn rather than sent\nlate (`client.reply()`, `client.emit()` and `session.reply()` take a `signal`\nfor that). The answer is a reply built from the request's context as the hub\nsent it, so it goes back to the peer that asked (`client.reply()` and\n`session.reply()` do the same for any message); a request with a destination and\nno source gets a reply with no destination. `speech` is sent as plain text:\nreal markup removed (a `<` that opens no tag stays, so \"5 < 6\" survives),\nnumeric references, the five XML entities and `&nbsp;` decoded and nothing else\n(`decodeReferences()`), and runs of Unicode White_Space collapsed.\n`responseType` is `action_done`, `query_answer` or `error`, and an `error` names\none of `HOME_ERROR_CODES`. The SDK always answers: a handler that throws is\nanswered `failed_to_handle`, one that does not answer within `timeoutMs`\n(default 9000, a second inside the hub's bound) `timeout`, and one that answers\noutside the contract `unknown`, each with empty speech so the hub speaks its own\nsentence in the device's language. The handler's `signal` aborts when the SDK\nstops waiting for it.\n\n**Keeping the link.** `session.run({ signal })` stays connected until\n`session.close()`: it looks at a held link every 60 seconds (and notices a drop\nwithin a second), retries a failed attempt after 10 seconds doubling to 120, and\ntreats a close with 1000, 1005 or 1008 during the handshake or within\n`settleSeconds` (0.75) after it as the hub refusing the credentials, since a hub\nthat does not know a connection's key says so only by closing; a handshake that\nfails to authenticate (a password the hub does not hold) is a refusal too.\nRefusals count as \"not admitted yet\" for `refusalGraceSeconds` (600), then\n`run()` rejects with `ThalovantHubRefusedError`. A refused KK handshake is\nfollowed at once by one XX handshake inside the same connect, which is how a\nchanged password (a refusal) is told from a changed hub key: a hub whose Noise\nkey is not the pinned one rejects with `ThalovantHubKeyChangedError`, and\n`run()` stops on it at once, since retrying cannot change it. The rules are\n`closeRefuses()` and `LinkSupervisor`, for a caller that runs its own loop.\n`session.onStateChange(up => ...)` reports the link coming up and going down.\n\n## Protocols\n\nHubs may expose one or more public data-plane protocols:\n\n- `wss`: secure realtime WebSocket, the default public path and SDK preference.\n- `https`: request/response HTTP protocol exposed as HTTPS.\n- `mqtt`: broker-mediated MQTT over TLS. Requires per-client broker credentials.\n\n### Transport Security\n\n`wss`, `https`, and `mqtt` connections perform the HiveMind **v3 Noise handshake**\n(`Noise_XXpsk2_25519_ChaChaPoly_SHA256`, or `KKpsk0` once the hub's static key\nis pinned). It is the only key exchange a HiveMind-core 5.x hub accepts: there\nis no pre-shared `crypto_key` any more, no cleartext path, and a connection that\ncannot complete the handshake is closed with WebSocket `1008`.\n\nNothing extra has to be provisioned. The Noise pre-shared key is derived from\nthe identity `password` with argon2id, salted with the hub's node id, so an\nidentity that can authenticate can already handshake. All of it runs on the\naudited `@noble` packages, so a browser bundle does the same work with no Node\nbuiltins.\n\nTwo pieces of state persist. In Node they are files beside the SDK config file\n(`~/.config/thalovant` unless `XDG_CONFIG_HOME` or `%APPDATA%` says otherwise),\nboth `0600`; in a browser they live under a `localStorage` namespace:\n\n- `noise_key` — this client's static X25519 key. It has to persist: a hub pins\n  it on first contact, so regenerating it makes the client look like a\n  different peer and the hub refuses it.\n- `noise_pins.json` — the hub static keys this client has pinned.\n\nPoint both somewhere else with the `noiseStateDir` client option. The same\noption is accepted by `fromIdentityFile`, `fromConfig`, and `fromEnv`; keep that\nprivate directory across reconnects and process restarts.\n\nThe first connection to a hub trusts the key it presents and records it. A\nlater connection presenting a different key is **refused**, because the SDK\ncannot tell a reinstalled hub from another machine answering at the same\naddress. If the hub really was replaced, clear the pin deliberately:\n\n```ts\nimport { forgetNoisePin } from \"@thalovant/sdk\";\n\nawait forgetNoisePin(undefined, nodeId);\n```\n\nThe derivation costs 64 MiB and a few hundred milliseconds. A transport caches\nthe result per hub, so reconnects pay it once.\n\n<!-- The browser caveat is worth stating plainly rather than leaving a reader\n     to hit it as a 1008 close. -->\nIn a browser, a viewer whose site data is cleared or who opens a private window\nloses the static key, and a hub that pinned the old one will refuse the\nreconnect until an operator clears its pin. That is a browser storage limit,\nnot something the SDK can work around.\n\nHTTPS preserves the hub's replica-affinity cookie and carries Noise ciphertext\nthrough the binary send and poll endpoints. MQTT sends an admission HELLO, then\nuses raw Noise ciphertext on the existing per-client topics. Broker reconnects\nperform a fresh Noise handshake before accepting application sends.\n\nFailed authentication never clears a server pin automatically. Retain\n`noiseStateDir` across reconnects and process restarts. `healthcheck()` reports\n`handshakeComplete: false` after connection loss or invalid ciphertext; a socket\nor HTTP 200 response alone does not make the client ready.\n\n```ts\nconst client = new ThalovantClient(identity, {\n  protocol: \"https\", // or \"wss\"; \"mqtt\" is available in Node\n  noiseStateDir: \"/path/to/private/persistent/sdk-state\",\n});\nawait client.connect();\n```\n\nInspect what an identity supports:\n\n```ts\nconst identity = result.identity;\n\nconsole.log(identity.enabledProtocols());\nconsole.log(identity.endpointFor(\"wss\"));\nconsole.log(identity.endpointFor(\"https\"));\nconsole.log(identity.endpointFor(\"mqtt\"));\nconsole.log(identity.mqtt?.endpoint);\n```\n\nConnect with a specific protocol:\n\n```ts\nfor (const protocol of [\"wss\", \"https\", \"mqtt\"] as const) {\n  if (!identity.supportsProtocol(protocol)) continue;\n  if (protocol === \"mqtt\" && !identity.mqtt) continue;\n\n  const client = new ThalovantClient(identity, { protocol });\n  try {\n    const reply = await client.ask(`Reply over ${protocol}.`);\n    console.log(protocol, reply.text);\n  } finally {\n    await client.close();\n  }\n}\n```\n\nMQTT identities include a broker endpoint, username, password, TLS flag, and\ntopic prefix. The broker credentials are scoped to that client and should be\ntreated like a password. Public identities should use `mqtts://`; the SDK also\nhonors an explicit `tls: true` flag by upgrading `mqtt://` to `mqtts://` and\n`ws://` to `wss://`. The effective URL must use `mqtts:`, `ssl:`, or `wss:`;\nunsupported and plaintext schemes are refused before broker credentials reach\nthe connector.\n\n`connect(timeoutMs)` returns only after authenticated readiness. One caller\nbudget covers waiting for an earlier attempt, transport setup and readiness.\nTimeout rejects promptly even if cleanup is slow; the client retains ownership\nuntil both the retired connect and cleanup finish, so a replacement cannot\nreuse or be closed by that session. `close(timeoutMs)` cancels active/queued\nconnects and waits within its own budget (default 6000ms). If it times out,\n`waitForClosed()` observes the actual retained cleanup, including failure. Both\nmethods reject if HTTP cleanup is refused or its acknowledgment is invalid.\nAn acknowledgment containing `ok: false` is invalid even if its status says\n`Disconnected`. The exact one-field replies `{ \"error\": \"Already Disconnected\" }`\nand `{ \"error\": \"Client is not connected\" }` confirm idempotent cleanup; adding\nother fields to either reply leaves cleanup unconfirmed.\nKeep the client and retry `close()`; hand the identity to a different client\nonly after cleanup succeeds. Connection diagnostics retain the cleanup failure.\n\nThe MQTT transport shares its remaining budget across broker connection,\nsubscription, admission, Noise authentication, and online presence. A stalled\nstep fails the attempt and closes its broker connection. HTTP connection failure\ncleanup also uses the original connect deadline; when cleanup times out, the\ntransport retains ownership and replica affinity so a later close or reconnect\ncan retry it. The original connection error remains the caller's failure even\nwhen that cleanup also fails. HTTP errors omit authorization URLs and raw\nresponse details.\n\nNode serializes Noise state transactions across processes sharing a directory.\nA lock wait is bounded to five seconds. Corrupt or unreadable keys and pins fail\nwithout changing their bytes. After a crashed writer, confirm it has stopped\nbefore removing `.noise-state.lock`; do not delete keys or pins to clear a lock.\n\n## Using In The Browser\n\nThe SDK also runs in browsers. The control plane (`login`, `listPublicHubs`,\n`createClientIdentity`, memory, analytics) uses the global `fetch`, and\n`ThalovantClient` works over the `wss` and `https` protocols using the global\n`WebSocket` and the same authenticated v3 Noise handshake and payload ciphers\nas Node. PSK derivation uses WebAssembly.\n\npackage.json ships a `browser` map alongside the `exports` entry, so bundlers\n(esbuild, webpack, Vite, Rollup with `@rollup/plugin-node-resolve`) pick\nbrowser-safe modules automatically and never pull `ws`, `mqtt`, or `node:`\nbuiltins into web bundles. Bundle it like any other dependency:\n\n```bash\nesbuild app.js --bundle --platform=browser --outfile=dist/app.js\n```\n\n```ts\n// app.js — runs in the browser after bundling\nimport { ThalovantClient, ThalovantControlPlane } from \"@thalovant/sdk\";\n\nconst api = new ThalovantControlPlane();\nawait api.login(email, password);\nconst result = await api.createClientIdentity(hubId, { name: \"web-kiosk\" });\n\nconst client = new ThalovantClient(result.identity, { protocol: \"wss\" });\nconst reply = await client.ask(\"Hello from the browser.\");\nconsole.log(reply.text);\nawait client.close();\n```\n\nBrowser caveats:\n\n- The `mqtt` protocol stays Node-only. Constructing the MQTT transport in a\n  browser throws `ThalovantUnsupportedProtocolError` with a clear message; use\n  `wss` or `https` instead.\n- Identity files and YAML configs stay Node-only: `ThalovantIdentity.fromFile()`,\n  `fromConfig()`, and `defaultConfigPath()` throw in browsers. Construct\n  `ThalovantIdentity` from an in-memory object (for example, the result of\n  `createClientIdentity`).\n- The legacy `encryptAsJson`, `decryptFromJson`, `encryptAsBinary`,\n  `decryptBinary`, and their async variants were removed by the v3 Noise\n  migration. Use the client and transport APIs for authenticated messages.\n- The browser state queue coordinates one page only. Give independent tabs\n  distinct runtime identities and Noise storage namespaces; it does not provide\n  a cross-tab lock.\n- Browsers ignore the SDK `user-agent` header on control-plane requests, and a\n  client identity is a secret: only embed identities scoped to public or\n  kiosk-style hubs in web apps.\n\nUse a fresh request ID for each logical Ask and a fresh query ID for each\nlogical Query. One client rejects overlapping collectors with the same ID\nbefore dispatch. Ask request IDs and scoped Query IDs are separate namespaces.\nCancellation or completion releases the reservation after listeners retire.\nThis guard does not make an ID safe to reuse: after a timeout or cancellation,\na late reply can still arrive. Use a new ID for every later logical operation;\ncorrelation IDs are not idempotency tokens.\n\nIntent descriptions may return a partial result after a timeout only when at\nleast one actual definition was received. Empty or unknown-intent replies alone\ndo not hide missing responses; a fully answered set of empty replies succeeds.\n\n## Conversations\n\nUse a conversation when related turns should share one session.\n\nAsk and Query replies report the first nonempty session ID from accepted runtime\nevents, falling back to the requested session when the hub omits it. The reply\nrequest ID remains the caller's correlation ID. Query stops at completion or a\nhard failure and returns immediately; its retained `replySettleMs` option has no\neffect after completion. Ask retains its bounded speech collection window.\n\n```ts\nconst client = await ThalovantClient.fromIdentityFile(\"_identity.json\");\ntry {\n  const conversation = client.conversation({ lang: \"en-us\" });\n\n  console.log((await conversation.ask(\"Remember that my favorite color is blue.\")).text);\n  console.log((await conversation.ask(\"What color did I mention?\")).text);\n} finally {\n  await client.close();\n}\n```\n\n## Realtime Query And Connection Timing\n\nUse `query(...)` for the direct HiveMind query path when the hub supports it.\nIt keeps replies scoped to the originating query id and avoids broad bus fanout.\nUse `ask(...)` when you need the older utterance/event flow.\n\n`ask`, `query` and `waitForEvent` use a twelve-second default total `timeoutMs` budget,\nincluding authenticated connection readiness. Ask and Query include sending and\nreply collection in that budget. `emptyReplyWaitMs` (five seconds by default) allows\nspeech after a soft intent miss; `replySettleMs` (250 ms) collects adjacent\nfragments after the first speech. Both windows are capped by the remaining total\nbudget. A policy denial or explicit query timeout is terminal: earlier speech\nremains a failed partial reply, and later speech cannot change the result.\n\nPass an `AbortSignal` as `options.signal` to `ask`, `query` or `waitForEvent`, including\nconversation Ask and Query calls. Cancellation rejects with `AbortError`, even\nafter partial speech, and removes the\ncollector's timers and listeners. It does not close an already authenticated\nshared connection. `connect(timeoutMs, signal)` also supports cancellation: an\naborted queued caller leaves the active connection owner intact, while an\naborted initiating caller retains ownership of its connection cleanup. Once a\ntransport write has started, cancelling collection cannot retract that request;\nthe transport still owns and observes the write, and the SDK never replays it.\nAn accepted Query completion or hard failure remains terminal if cancellation or\na write error arrives afterwards. Query ignores all later events.\n\n```ts\nconst controller = new AbortController();\nconst pending = client.conversation().query(\"What time is it?\", {\n  timeoutMs: 12_000,\n  signal: controller.signal,\n});\n// Call controller.abort() when the user cancels this request.\nconst reply = await pending;\n```\n\nEvent waits subscribe before connecting so an authenticated early event is\nretained. `on(name, handler, options)` remains a callback subscription; close it\nwhen finished. It does not create a queued asynchronous event stream.\n\n\n```ts\nconst client = await ThalovantClient.fromIdentityFile(\"_identity.json\", {\n  protocol: \"wss\",\n});\n\ntry {\n  const connection = await client.connectWithInfo(10_000);\n  console.log(connection.socketOpenMs, connection.handshakeMs, connection.connectMs);\n\n  const reply = await client.query(\"What time is it in Toronto?\", {\n    timeoutMs: 30_000,\n  });\n  console.log(reply.text);\n\n  console.log(client.healthcheck().connection);\n} finally {\n  await client.close();\n}\n```\n\nFor high concurrency, keep WSS clients connected and reuse the session for\nmultiple queries. Creating a new WSS connection for every prompt measures\ningress and HiveMind admission as much as skill latency.\n\n## Events\n\nYou can wait for hub events by name.\n\n```ts\nimport { EVENT_SPEAK, ThalovantClient } from \"@thalovant/sdk\";\n\nconst client = await ThalovantClient.fromIdentityFile(\"_identity.json\");\ntry {\n  const event = await client.waitForEvent(EVENT_SPEAK, { timeoutMs: 30_000 });\n  console.log(event.text);\n} finally {\n  await client.close();\n}\n```\n\nUse timeouts in scripts so they do not wait forever.\n\n## Client Context\n\nContext lets skills know which app, device, user, or channel made the request.\n\n```ts\nimport { buildClientContext } from \"@thalovant/sdk\";\n\nconst context = buildClientContext({}, {\n  userId: \"user-42\",\n  userName: \"Ada\",\n  authProvider: \"oidc\",\n  roles: [\"member\"],\n  platform: \"kiosk\",\n  source: \"checkout-kiosk\",\n  channel: \"chat\",\n});\n\nconst reply = await client.ask(\"Show the next instruction.\", { context });\nconsole.log(reply.text);\n```\n\n## Actions And Exact Inputs\n\nUse actions for button payloads and codes for exact typed or scanned values.\n\n```ts\nconst conversation = client.conversation({ sessionId: \"work-session\" });\n\nawait conversation.sendAction('/choose{\"id\":\"42\"}', { title: \"Choose item\" });\nawait conversation.sendCode(\"SN-001-XYZ\", { kind: \"qr\", label: \"serial\" });\n```\n\n## Rich Responses\n\nReplies can include text, choices, tables, images, or attachments.\n\n```ts\nconst reply = await client.ask(\"Show matching parts.\");\n\nfor (const item of reply.displayItems({ maxTextChars: 600 })) {\n  if (item.kind === \"text\") console.log(item.text);\n  if (item.kind === \"choices\") console.log(item.data);\n}\n```\n\n## What Can I Ask?\n\nA connected client can ask its hub what it can be asked, over its own session,\nwith no control-plane token.\n\n```ts\nconst client = await ThalovantClient.fromIdentityFile(\"_identity.json\");\ntry {\n  const inventory = await client.intents([\"en-us\", \"fr-fr\"]);\n  for (const skill of inventory.skills) {\n    for (const intent of skill.intents) {\n      console.log(intent.id, intent.examples(\"fr-fr\"));\n    }\n  }\n} finally {\n  await client.close();\n}\n```\n\nEach intent carries the sentences a person says to reach it, per language, as\nthe skill wrote them (`{location}` marks a slot): `intent.phrases` keyed by\nlanguage, `intent.phrasesFor(lang)`, and `intent.examples(lang, limit)`, which\nprefers whole sentences over ones with a slot. `inventory.asObject()` is\nJSON-ready. The hub's connection must be allowed to publish `ovos.intent.list`;\n`ovos.intent.describe` is needed only when the sentences are wanted, which is\nthe default (`describe: true`); `intents(langs, { describe: false })` skips\nthose descriptions. A hub that refuses a query rejects with\n`ThalovantPolicyDeniedError` naming the type. When the hub refuses or does not\nanswer `ovos.intent.list` and `fallback` is on (the default), the SDK falls back to\nthe engines' manifests, listing intent names only and marking the result\n`source: \"engine-manifests\"` with `denied: [\"ovos.intent.list\"]`. A refused\n`ovos.intent.describe` rejects either way, and a hub that answers the listing\nwith `ok: false` rejects with `ThalovantRuntimeError` carrying the hub's\n`error`: a refused listing is not an empty hub. With `fallback: false`, a silent\nlisting still times out; silence from the engine queries also remains an error.\nThe `denied` field records a refused or unanswered listing query.\n\nThe optional `ovos.skills.fallback.list` probe adds at most 1500ms, or the smaller\nquery timeout. `inventory.fallbacks` contains `HubFallback` rows sorted by\npriority and skill ID. `fallbacksKnown` distinguishes a confirmed empty list\nfrom unavailable, denied or unanswered discovery. `inventory.mayAnswer(lang)`\nis true for enabled intent phrases, any fallback skill, or unknown fallback\nsupport; it is a conservative hint, not a guarantee. JSON serialization uses\n`fallbacks` and `fallbacks_known`. A bare language string is accepted as one tag.\n\n`client.listIntents(lang)` and `client.describeIntent(skillId, intentName, lang)`\nexpose the two underlying queries when you need the manifest rows or a\nregistration as the skill made it.\n\n## Common Issues\n\n- `Missing Thalovant API access token`: call `api.login(...)` or\n  `api.loginWithBrowser(...)` before private control-plane actions, or pass\n  `accessToken` to `ThalovantControlPlane`.\n- `API access requires a paid plan`: upgrade the workspace before using the SDK\n  control-plane API to provision private resources.\n- `Unsupported protocol`: the hub does not expose that protocol, or the\n  identity was created before that protocol was enabled.\n- MQTT fails immediately: create or download a fresh client identity after MQTT\n  is enabled. MQTT needs the per-client `identity.mqtt` credentials.\n- A request times out: pass a larger `timeoutMs` to `ask(...)` or\n  `waitForEvent(...)`.\n- `ThalovantPolicyDeniedError`: the hub refused a message type this connection\n  may not publish. `deniedType` names it and `allowed` lists what the\n  connection may send; allow the type in the dashboard's connection settings.\n  `intents(...)` falls back to intent names when `ovos.intent.list` is the\n  refused or unanswered type and `fallback` is on; a refused `ovos.intent.describe` rejects.\n- `HTTP 429` with `\"code\": \"token_rate_limited\"`: the API token exceeded its\n  plan's per-minute request rate (60 requests per minute on the free plan).\n  The response carries a `Retry-After` header and a matching\n  `retry_after_seconds`; wait that long and resend.\n- `HTTP 429` with `\"code\": \"token_quota_exceeded\"`: the API token exhausted its\n  plan's daily or monthly call quota. The body names which in `quota` (`daily`\n  or `monthly`) alongside `limit` and `used`, and `Retry-After` points at the\n  next UTC day or month boundary.\n\nBoth 429s apply to token-authenticated control-plane calls and surface as\n`ThalovantApiError` with `statusCode` 429, the `code`, and every field of the\nbody in `problem`.\nThe SDK does not retry automatically: `Retry-After` is authoritative, so honor\nit before resending. Per-plan limits are listed in the dashboard and at\n<https://docs.thalovant.com/developers/sdks/node/>.\n\n## Reading An API Error\n\nA refused control-plane request rejects with `ThalovantApiError`. Its message\nis one line for display and can be shortened, so read what the API said from\nthe error itself:\n\n- `statusCode`: the HTTP status.\n- `code`: the machine-readable code, such as `platform_image_required` or\n  `plan_limit`, or `undefined`.\n- `detail`: the API's whole sentence, exactly as sent, or `undefined`.\n- `problem`: the whole error body as an object when it is a JSON object, or\n  `undefined`. Every structured field the API sends is here, including ones\n  added after this SDK was released.\n\n```ts\nimport { ThalovantApiError } from \"@thalovant/sdk\";\n\ntry {\n  await api.releaseRuntimeGroup(runtimeGroupId, { images: { core: \"docker.io/me/ovos-core:dev\" } });\n} catch (error) {\n  if (!(error instanceof ThalovantApiError)) throw error;\n  if (error.code === \"platform_image_required\") {\n    console.log(error.detail);\n    console.log(error.problem?.allowed_images);       // per image key\n    console.log(error.problem?.allowed_repositories); // any tag or digest of these\n  } else if (error.code === \"plan_limit\") {\n    console.log(error.problem?.resource, error.problem?.used, error.problem?.limit);\n  } else {\n    throw error;\n  }\n}\n```\n\nSome refusals also have a class of their own, each still a\n`ThalovantApiError`: `ThalovantAuthError` for a 401, a 423 or a 403\n`Insufficient scopes` (sign in again), `ThalovantPlanError` for a 402 or a 403\n`plan_limit`, and `ThalovantAlreadyLinkedError` for a 409\n`home_assistant_already_linked`.\n\nA value the body echoes back from your request (a validation error repeats\nwhat it was sent) is only ever in `problem`, never in the message. `problem`\nis not enumerable, so `console.log(error)`, `util.inspect` and\n`JSON.stringify` leave it out; read it as `error.problem`. Credentials the SDK\ngenerated and sent, such as the ones `createClientIdentity()` creates, are\nreplaced with `[redacted]` in `detail` and `problem` too.\n\n## API Shape\n\n- `new ThalovantControlPlane()`\n- `new ThalovantControlPlane(apiUrl, options)` for local or self-hosted control planes\n- `controlPlane.login(email, password, options)` with optional `scope`, `otpCode`, and `recoveryCode`\n- `controlPlane.loginWithBrowser(options)` with optional `scopes`, `clientName`, `openBrowser`, `prompt`, and `timeoutMs`\n- `controlPlane.beginDeviceLogin(options)` with optional `scopes` and `clientName`\n- `controlPlane.pollDeviceLogin(authorization)` — one poll; resolves with an `ApiToken` or rejects pending, expired or denied\n- `controlPlane.revokeApiToken(tokenId?)` — by default the token the SDK signed in with\n- `controlPlane.listPublicHubs(options)`\n- `controlPlane.getPublicHub(hubRef)`\n- `controlPlane.listHubs(options)`\n- `controlPlane.getHub(hubId)`\n- `controlPlane.createHub(payload, options)` with optional `idempotencyKey`\n- `controlPlane.updateHub(hubId, payload, { etag })` — `etag` required, sent as `If-Match`\n- `controlPlane.deleteHub(hubId, { etag })` — `etag` required, sent as `If-Match`\n- `controlPlane.releaseHub(hubId, options)` with optional `channel`, `mode`, `version`, `images`, and `reason` — unless you are a platform administrator, each image must be a catalog pin of the stable or alpha channel, the hub's current, recommended or release-policy image, the platform's default image, or for `listener` any tag or digest of `ghcr.io/thalovant/hivemind-listener`; anything else is refused with HTTP 403 `platform_image_required`\n- `controlPlane.setHubRating(hubId, rating)`\n- `controlPlane.clearHubRating(hubId)`\n- `controlPlane.getHubRuntimeCapabilities(hubId)`\n- `controlPlane.listRuntimeGroups(options)`\n- `controlPlane.getRuntimeGroup(runtimeGroupId)`\n- `controlPlane.createRuntimeGroup(payload)`\n- `controlPlane.updateRuntimeGroup(runtimeGroupId, payload)`\n- `controlPlane.getRuntimeGroupConfig(runtimeGroupId)`\n- `controlPlane.updateRuntimeGroupConfig(runtimeGroupId, config, options)` with optional `personas`\n- `controlPlane.releaseRuntimeGroup(runtimeGroupId, options)` — the same rule for `images`, except that `core` accepts any tag or digest of `ghcr.io/thalovant/ovos-core` and `bus` only the images the platform releases for it\n- `controlPlane.deleteRuntimeGroup(runtimeGroupId)`\n- `controlPlane.installRuntimeGroupSkill(runtimeGroupId, skillId, options)` with optional `marketplaceSkillId`, `sourceType`, `sourceRef`, `versionPin`, and `active`\n- `controlPlane.uninstallRuntimeGroupSkill(runtimeGroupId, skillId)`\n- `controlPlane.listHubSkills(hubId)`\n- `controlPlane.listHubSkillHistory(hubId, options)` with optional integer `limit` (1–200, default 50)\n- `controlPlane.installHubSkill(hubId, skill, options)` with optional `version`, `wait`, and `timeoutMs`\n- `controlPlane.updateHubSkill(hubId, skill, { version, wait, timeoutMs })` — `version` required\n- `controlPlane.removeHubSkill(hubId, skill, options)` with optional `wait` and `timeoutMs`\n- `controlPlane.listMarketplaceSkills(options)` with optional `ownerId`, `includeInactive`, and `forceRefresh`\n- `controlPlane.listRuntimeGroupMarketplace(runtimeGroupId, options)` with optional `refreshInventory`\n- `controlPlane.listRuntimeGroupInventory(runtimeGroupId, options)` with optional `refresh`\n- `controlPlane.getOperation(operationId)`\n- `controlPlane.getAnalyticsOverview(options)`\n- `controlPlane.listMemoryItems(options)`\n- `controlPlane.getMemorySummary(options)`\n- `controlPlane.createMemoryItem(payload)`\n- `controlPlane.getMemoryItem(memoryId)`\n- `controlPlane.updateMemoryItem(memoryId, payload)`\n- `controlPlane.deleteMemoryItem(memoryId)`\n- `controlPlane.createClientIdentity(hubId, options)` with optional `connectionType`\n- `controlPlane.getClient(clientId)`\n- `controlPlane.listClients(options)` with optional `hubId`, `limit`, `cursor`, `ownerId`, and `includeSpec`\n- `controlPlane.deleteClient(clientId, { etag })` — reads the etag when omitted, retries one 412, counts 404 as deleted\n- `controlPlane.waitForAdmission(connection, options)` with optional `timeoutMs`, `pollIntervalMs`, and `signal`\n- `new ThalovantControlPlane(apiUrl, { fetch })` to send every request with your own `fetch`\n- `ThalovantIdentity.fromConfig(options)`\n- `ThalovantClient.fromConfig(options)`\n- `ThalovantClient.fromIdentityFile(path)`\n- `ThalovantClient.fromEnv()`\n- `new ThalovantClient(identity, { protocol })`\n- `client.ask(text, options)`\n- `client.query(text, options)`\n- `client.connectWithInfo(timeoutMs)`\n- `client.connectionInfo()`\n- `client.sendUtterance(text, options)`\n- `client.sendAction(payload, options)`\n- `client.sendCode(value, options)`\n- `client.emit(eventType, data, context)`\n- `client.waitForEvent(eventName, options)`\n- `client.on(eventName, handler, options)`\n- `client.reply(event, msgType, data, context)` — answers a hub's message back along its route\n- `replyContext(context)`\n- `answerHomeRequests(clientOrSession, handler, options)` and `answerHomeRequest(clientOrSession, event, handler, options)`\n- `HubSession.forIdentity(identity, options)`, `session.run(options)`, `session.reply(...)`, `session.onStateChange(callback)`\n- `closeRefuses(code, options)`, `new LinkSupervisor(policy).after(outcome, now)`, `decodeReferences(text)`\n- `client.conversation(options)`\n- `client.intents(languages, options)` with optional `timeoutMs`, `describe`, and `fallback`\n- `client.listIntents(lang, options)` with optional `timeoutMs` and `includeDefinitions`\n- `client.describeIntent(skillId, intentName, lang, options)` with optional `timeoutMs`\n\n## Development\n\n```bash\nnpm install\nnpm test\n```\n\nControl-plane requests reject redirects. Credential-bearing requests require HTTPS;\nexplicit `http://localhost`, `http://127.0.0.1` and `http://[::1]` endpoints remain\navailable for local development. API URLs must not contain embedded credentials.\n\nRouted `query()` uses one deadline across connect, send, response and optional\nsettling. Intent misses may recover through later speech before completion.\nCompletion, policy denial and query-timeout events end collection; later events\nare ignored. A hard failure after speech returns that partial reply with\n`ok: false`; a hard failure before any speech raises a runtime error.\n\n\n### Shared-runtime skill management\n\nHub-addressed skill methods select the runtime group attached to the hub UUID.\nEvery hub sharing that group sees the same skill changes and history. The API\nrequires a restricted token to cover all served hubs. Reads need `hubs:inspect`\n(`hubs:read` implies it); writes need `hubs:write`, an eligible paid plan and ownership.\n\nThe history response contains newest-first `event` and `operation` entries,\nincluding nullable actor/version fields. Its limit is 1–200 (50 where omitted).\nAn accepted mutation is not proof the skill is ready. Optional waiting polls the\noperation, with a 120-second default timeout and two-second interval. Polling\nnever repeats an accepted mutation and starts no new read after its deadline;\nan already-running HTTP request retains its normal request timeout.\n\nRead history with `api.listHubSkillHistory(hubId, { limit: 50 })`; it returns the API JSON envelope.\n\n## Request helpers and safe configuration updates\n\nRequest hints carry a recognized language, ordered intent pipeline, and caller\nlocation without changing the caller's context. Empty hints are omitted. The\nlocation helper requires a city and omits invalid or zero/zero coordinates.\nThe hub validates language hints against its configured languages.\n\nReplies expose their reported language, ordered speech/audio events, and a\ncount of dropped media. Embedded skill clips are limited to 4 MiB each and\n16 MiB per reply, checked before retention and decoding. Audio does not extend\nthe reply settlement window. Decoding accepts hexadecimal bytes with ASCII\nwhitespace between bytes; it never fetches a skill-supplied URL or file path.\nThe application owns playback (the `play`/`Play` function in this example).\n\n```ts\nconst location = buildLocation({ city: \"Montréal\", country: \"CA\", latitude: 45.5, longitude: -73.5 });\nconst reply = await client.ask(\"Quel temps fait-il ?\", { sttLang: \"fr-ca\", location });\nfor (const event of reply.mediaEvents ?? []) if (event.isAudio) play(event.audioBytes());\nconst sentences = intent.examples(\"en-us\", 2, { speakable: true, slots: { location: \"Montréal\" } });\nawait api.updateRuntimeGroupConfig(groupId, { tts: { module: \"piper\" } });\n// Explicit full replacement:\nawait api.updateRuntimeGroupConfig(groupId, fullConfig, { merge: false });\n```\n\nGuarded merging requires the `hubs:read` and `hubs:write` scopes and a paid plan.\nSafe merging requires an API whose configuration GET returns a valid `revision`\nand whose configuration PUT checks `expected_revision`. The SDK rereads and\nreapplies the original delta only after HTTP 412, with at most three attempts.\nArrays and scalar values replace; objects merge recursively. Personas replace\nonly when explicitly supplied. Connection failures, redirects, other statuses,\nand ambiguous write results are never retried. No unsafe PATCH fallback is used.\nUnconditional replacements must still be coordinated with other writers.\n\nUse the explicit replacement operation shown above when a complete replacement\nis intended, including when working with an older API. Existing code relying on\nreplacement must opt into it when upgrading. Raw intent patterns remain the\ndefault; speakable examples remove optional parts, choose alternatives, and\nsubstitute caller-supplied slots while retaining complete-phrase priority.\n\nThe audio limits use encoded-length upper bounds before decoding, so formatting\nwhitespace consumes budget too. Like Python's `bytes.fromhex`, ASCII whitespace\nalone decodes to zero bytes. Bounded malformed clips remain available as event\nmetadata and fail when decoded; they are never fetched or played automatically.\nDistinct audio events may intentionally repeat identical sound content. Only\nrepeated delivery of the same event object is suppressed where object identity\nis available, without counting it as a dropped clip. Rendered example ranking\nuses the original pattern's slot presence even when sample values are supplied.\n\nGuarded merges reject integers outside JavaScript’s safe range before writing,\nso reading and merging cannot silently round an untouched configuration value.\nRepresent large identifiers as strings or use an SDK with lossless integers.\n\nGuarded configuration merges in 0.5.1 also reject non-finite values before\nserialization and validate supplied personas for unsafe integers. Stored\nnumeric exponents that overflow JavaScript numbers are rejected before writing.\n\n### Locale-aware intent listings\n\nVersion 0.6.1 adds sentence rendering and includes a generated snapshot of\n[`thalovant-languages` 0.2.1](https://github.com/thalovant/thalovant-languages/tree/v0.2.1).\nThe language rules work in browsers and Node without network or filesystem access.\n\n```ts\nimport { asSentence, ListingRules, speakable } from \"@thalovant/sdk\";\n\nasSentence(\"quelle heure est-il\", \"fr-CA\"); // \"Quelle heure est-il?\"\nspeakable(\"volume [to] {level} percent\", {}, \"en\"); // \"volume fifty percent\"\nintent.examples(\"fr-CA\", 2, { sentence: true });\n```\n\n`sentence: true` also renders patterns. Explicit `slots` override locale examples.\nUnknown languages keep slot names and capitalized, unpunctuated lines. A phrase\nthat already has punctuation or ends on a known prefix remains unchanged.\nOmitting the language preserves the first registration's locale. Regional fallback uses the OVOS distance policy with langcodes 3.5.1 CLDR data,\nincluding the Portuguese norm region. Distances above ten do not match; ties\npreserve registration order.\n\nExamples rank complete phrases ahead of prefixes and slot patterns, then prefer\nfuller wording up to eight words. Rendered duplicates and empty phrases do not\nconsume the limit. A non-positive limit returns all results; raw unlimited\nphrases retain registration order.\n\nFor an application-defined data tree, construct `new ListingRules(data)` using\n`{ sentence_ends, languages }` and the canonical listing keys. The SDK snapshots\nthe input. Pass it as the `listing` option to `examples`, or as the last argument\nto `speakable` and `asSentence`. `new ListingRules(null)` selects bare rendering\nwithout locale data. Custom regex rules use JavaScript Unicode syntax and may\nstart with Python-style global `(?i)`, `(?m)`, or `(?s)` flags. Invalid regex rules\nfail during construction. Regenerate bundled data with\n`node scripts/sync-listing-data.mjs /path/to/python3.13` with the pinned public\npackages listed in `scripts/sync-reference-fixtures.py`.\n\nRegenerate the cross-SDK reference cases with\n`python scripts/sync-reference-fixtures.py --fixtures-only --test-dir test`,\nusing the pinned public Python packages listed in that script.\n\nThe SDK code, CLDR matching tables and bundled `thalovant-languages` data\nretain their upstream MIT license notices. Both data notices ship with the SDK.\n\n### Language data refresh\n\nThe bundled listing data follows `thalovant-languages` 0.2.1: 270 languages\n(290 base and regional entries), with regional rules resolved through the\npublic package loader. Sentence marks and trailing words now match Python 0.6.8;\nfor example Spanish `qué hora es` becomes `Qué hora es?`, while French\n`coupe le son` remains a complete sentence. Undescribed languages such as\n`tlh` still render bare. The reference fixtures cover 4,652 listing cases and\n990 OVOS language-selection cases.\n\nRegenerate with `node scripts/sync-listing-data.mjs /path/to/python3.13`\nafter installing the exact public package versions listed in\n`scripts/sync-reference-fixtures.py`. The generator validates those versions\nand rejects a custom language-data override.\n\n## Managed sessions and inventory caches\n\n`HubSession` owns one reusable hub connection. Supply a factory that returns a\nconnected client and cleans up a failed or cancelled connection attempt. Event\nsubscriptions survive client replacement. Go and Rust expose a persistent event\nstream; the other managed SDKs expose subscription handles. Close the session\nwhen its owner shuts down; close waits for admitted operations and is terminal.\n\nBackground connection attempts back off for 10, 20, 40, 80, then 120 seconds.\nForeground calls can try immediately. Your application owns probe scheduling:\nuse the reported probe delay (60 seconds while held, 5 seconds while down) --\nor call `session.run()`, which keeps the link by the same numbers until\n`close()` and tells a refusal from a drop (see [Link Home Assistant](#link-home-assistant)).\nThe SDK never replays an admitted Ask or Emit after a lost response, because an\nAsk can trigger an action. A request timeout applies to the underlying operation;\nwaiting for session admission and your connection factory are separate budgets.\n\n```ts\nimport { HubSession } from \"@thalovant/sdk\";\n\nconst session = new HubSession(connectClient, { warm: false });\ntry {\n  const reply = await session.ask(\"What is the weather?\");\n} finally {\n  await session.close();\n}\n```\n\n`Inventory`, `Skill`, and `Intent` provide a presentable view separate from the\nruntime's native intent inventory. Unknown catalogue locales remain unknown;\nphrases observed for a language do not prove catalogue support. Examples choose\nthe closest supported locale. A nonpositive limit returns the raw phrase pool\n(Rust uses zero for its unsigned limit). Cache JSON includes explicit intent\nlanguage order so serialization cannot change the default example language.\n\n`InventoryCache` is optional, defaults to a one-hour TTL, and returns a miss for\ninvalid, expired, or unreadable data. Writes use private, unique scratch files\nand atomic replacement. POSIX cache files are owner-readable/writable; Windows\nuses the user's directory ACLs. Cache keys separate mode, identity path, and the full normalized hub hostname.\nNever use inventory caches to store credentials. Node browsers use origin-local\nstorage; do not share that storage namespace across unrelated users.\n\n`OriginPreference` gives a preferred address its own short handshake budget and\ncools it down after a failure. In non-Python SDKs the factory must implement the\naddress binding on its own transport, retain the public host for TLS/SNI, and\nfinish failed-attempt cleanup before returning. Transport/platform restrictions\nstill apply. This helper does not change global DNS or disable TLS validation.\n\n### Reply claims\n\nReplies expose advisory claim status and first-seen, unique pipeline and skill\nIDs. A failed or unhandled reply is not claimed; a successful fallback-only\nreply is not claimed. Successful replies without stage stamps retain legacy\nbehavior and are claimed. Only nonempty string stamps are used; malformed\nmetadata is ignored. Claim status does not authenticate a peer or suppress\nreply text. See the public SDK guide for native member names.\n","readmeFilename":"README.md"}