{"_id":"@chat-adapter/web","_rev":"16-5d672770d395a04c97c50091bca310ee","name":"@chat-adapter/web","dist-tags":{"latest":"4.41.0"},"versions":{"0.0.0":{"name":"@chat-adapter/web","version":"0.0.0","keywords":["chat","web","react","useChat","ai-sdk","bot","adapter"],"license":"MIT","_id":"@chat-adapter/web@0.0.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://github.com/vercel/chat#readme","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"dfe4c66dbed8050665305f2de4d93537aef4268d","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-0.0.0.tgz","fileCount":3,"integrity":"sha512-W+iABZsoaJmLQuGHuL5bkP/5V4eJnzDcCCQWK85mE1ZM3rsWv/i0BYcm4WCUraruNvGh2cvpQ03Kni8spPwnEA==","signatures":[{"sig":"MEUCIQCJeS7T/cqOLBpTNXbaOxxugH4AxpvQQGyxT7ImdZpDCAIgN/jco9QNqf2ofeQzFNI0+Q6oUJsAcCCVUYE+GfDgC0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13473},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-0.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"cramforce","email":"malte.ubl@gmail.com"},"_resolved":"/private/var/folders/1h/2pv55r5s2m7ctn562xnr3b880000gn/T/30bf0ccfa7eccf4a497539d7bb559ff5/chat-adapter-web-0.0.0.tgz","_integrity":"sha512-W+iABZsoaJmLQuGHuL5bkP/5V4eJnzDcCCQWK85mE1ZM3rsWv/i0BYcm4WCUraruNvGh2cvpQ03Kni8spPwnEA==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"10.9.3","description":"Web adapter for chat — browser chat UI via the AI SDK useChat protocol","directories":{},"_nodeVersion":"22.18.0","dependencies":{"chat":"4.27.0","@chat-adapter/shared":"4.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.174","tsup":"^8.3.5","react":"^19.0.0","vitest":"^4.0.18","typescript":"^5.7.2","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.176","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.27.0"},"peerDependencies":{"ai":"^6","react":"^19","@ai-sdk/react":"^3"},"peerDependenciesMeta":{"react":{"optional":true},"@ai-sdk/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_0.0.0_1778188265919_0.10663084981060611","host":"s3://npm-registry-packages-npm-production"}},"4.28.1":{"name":"@chat-adapter/web","version":"4.28.1","keywords":["chat","web","react","useChat","ai-sdk","bot","adapter"],"license":"MIT","_id":"@chat-adapter/web@4.28.1","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://github.com/vercel/chat#readme","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"0d8c8ee81eea6a0887d37f31dd3b4f462d25abb9","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.28.1.tgz","fileCount":7,"integrity":"sha512-38WHPtl/i5XhEQzui8A3TKWCbq4bmu1CJkllJ6/oQ5Z1o5WXOQr/CNZK/Aj6r4N92+Z3kRFoBfQmJpr7Q3XDxw==","signatures":[{"sig":"MEUCIQDDpKktNgZ7eHdO2jlmt82ryxGTDr6POPyZijFQhnEjQgIgEfQDWyTF1Jf2uQ8gHxrWGY/0/a1HBj5GhpJFDX39gs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32055},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.28.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/ff1a3f35f7a1c8bbc2f5ebaab832f0e6/chat-adapter-web-4.28.1.tgz","_integrity":"sha512-38WHPtl/i5XhEQzui8A3TKWCbq4bmu1CJkllJ6/oQ5Z1o5WXOQr/CNZK/Aj6r4N92+Z3kRFoBfQmJpr7Q3XDxw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.11.0","description":"Web adapter for chat — browser chat UI via the AI SDK useChat protocol","directories":{},"_nodeVersion":"24.14.1","dependencies":{"chat":"4.28.1","@chat-adapter/shared":"4.28.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.174","tsup":"^8.3.5","react":"^19.0.0","vitest":"^4.0.18","typescript":"^5.7.2","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.176","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.28.1"},"peerDependencies":{"ai":"^6","react":"^19","@ai-sdk/react":"^3"},"peerDependenciesMeta":{"react":{"optional":true},"@ai-sdk/react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.28.1_1778260142557_0.4527323885669172","host":"s3://npm-registry-packages-npm-production"}},"4.29.0":{"name":"@chat-adapter/web","version":"4.29.0","keywords":["chat","web","react","vue","svelte","useChat","ai-sdk","bot","adapter"],"license":"MIT","_id":"@chat-adapter/web@4.29.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://github.com/vercel/chat#readme","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"d70977e8e86557476a10a287f1b144305df3a656","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.29.0.tgz","fileCount":11,"integrity":"sha512-6DD03N7mb9sa09oPyVV3EF5TQWieC4FhfW06pFcn/KwPkPlLAxCj53sIxMI41wBn9MImsjQ0Kvz59Ce7rzx4Gg==","signatures":[{"sig":"MEQCIAZAEVqdd4b4SNL/VQJv+B9A2x7TRIKATrRTEh5+6XOZAiBdocsj9G6Twc46PytgM54fMJpKyLeQD/654wpLl6a2uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39665},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.29.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/ba42b6e9f3d342f1f3b85b10e2b1a86f/chat-adapter-web-4.29.0.tgz","_integrity":"sha512-6DD03N7mb9sa09oPyVV3EF5TQWieC4FhfW06pFcn/KwPkPlLAxCj53sIxMI41wBn9MImsjQ0Kvz59Ce7rzx4Gg==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.12.1","description":"Web adapter for chat — browser chat UI via the AI SDK useChat protocol","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chat":"4.29.0","@chat-adapter/shared":"4.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.182","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^3.0.182","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.184","@ai-sdk/svelte":"^4.0.182","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.29.0"},"peerDependencies":{"ai":"^6","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3","@ai-sdk/react":"^3","@ai-sdk/svelte":"^4"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.29.0_1779114155254_0.4211557482598429","host":"s3://npm-registry-packages-npm-production"}},"4.30.0":{"name":"@chat-adapter/web","version":"4.30.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.30.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://github.com/vercel/chat#readme","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"fccd4903711c43ebc969e8e5136f3ff60402cbb4","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.30.0.tgz","fileCount":11,"integrity":"sha512-Wq7U28o57tf66wmNGMAbj4WadCoU/GVorKJ+d/kph4EO6RmgYgCK1fQgT2cB/lAM2M621LMdTscavzHXCUi1og==","signatures":[{"sig":"MEUCIQDaKe7G+v7hE/rX7Tl/4jZDcKeX92AFcO0RyPeei23mYQIgIq2HIBNRl81b/VYu37MSRRFf65WJKcYMsAuMgl6yti0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39726},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.30.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/26dadbffb49e081d824c208f85ec1cc3/chat-adapter-web-4.30.0.tgz","_integrity":"sha512-Wq7U28o57tf66wmNGMAbj4WadCoU/GVorKJ+d/kph4EO6RmgYgCK1fQgT2cB/lAM2M621LMdTscavzHXCUi1og==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.13.0","description":"Web adapter for chat — browser chat UI via the AI SDK useChat protocol","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chat":"4.30.0","@chat-adapter/shared":"4.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.182","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^3.0.182","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.184","@ai-sdk/svelte":"^4.0.182","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.30.0"},"peerDependencies":{"ai":"^6","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3","@ai-sdk/react":"^3","@ai-sdk/svelte":"^4"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.30.0_1780363958070_0.11155839962698977","host":"s3://npm-registry-packages-npm-production"}},"4.31.0":{"name":"@chat-adapter/web","version":"4.31.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.31.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"5d2af03e411a89c6f6be7273caccb61c2a9b9c68","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.31.0.tgz","fileCount":11,"integrity":"sha512-BGBm+tqinXd4kcYFcX5TgL0RkQXlneC1ReIcZEbPHMuBFbvzVC+/izb7FdjhYSScJ/UsY03ACp1cF+KN94olrw==","signatures":[{"sig":"MEYCIQDZz/SeW5Ny1rT//L7knaTXzJLb9kH3pKAowkoJ8Ap1bAIhAK0Sg0fQWR6HHspMLtRxcHJsR3k6GfmDN9Hx+fQwNxzT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41337},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.31.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/9ab7b23596b298e9c9f929c13f9f9244/chat-adapter-web-4.31.0.tgz","_integrity":"sha512-BGBm+tqinXd4kcYFcX5TgL0RkQXlneC1ReIcZEbPHMuBFbvzVC+/izb7FdjhYSScJ/UsY03ACp1cF+KN94olrw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.13.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chat":"4.31.0","@chat-adapter/shared":"4.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.182","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^3.0.182","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.184","@ai-sdk/svelte":"^4.0.182","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.31.0"},"peerDependencies":{"ai":"^6","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3","@ai-sdk/react":"^3","@ai-sdk/svelte":"^4"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.31.0_1781604380723_0.5927299101670451","host":"s3://npm-registry-packages-npm-production"}},"4.32.0":{"name":"@chat-adapter/web","version":"4.32.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.32.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"0a9c7c7990ae14aeb9fa4c5480a6775f7e265ffe","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.32.0.tgz","fileCount":11,"integrity":"sha512-KN63/TrF/gZlQwZzNOAfUo1Rly6pSCRKnnVrTyrpnhEE7TqJBGVmY5cEqVGl+UvVqq8UMNlsTW5G/+UoGOi4dw==","signatures":[{"sig":"MEUCIGFzrn0/dCXeVZrqcZd6m8u+84Iw/aEI5TJEIx+6Kr8PAiEAvbd+Cpqq8hYeJ9HSNQ80igRPWqTYBL0xBE75qZMrBCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41438},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.32.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/399d9d7d05d4d40bcb4ef51b4b14170b/chat-adapter-web-4.32.0.tgz","_integrity":"sha512-KN63/TrF/gZlQwZzNOAfUo1Rly6pSCRKnnVrTyrpnhEE7TqJBGVmY5cEqVGl+UvVqq8UMNlsTW5G/+UoGOi4dw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.16.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chat":"4.32.0","@chat-adapter/shared":"4.32.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.182","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^3.0.182","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.184","@ai-sdk/svelte":"^4.0.182","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.32.0"},"peerDependencies":{"ai":"^6","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3","@ai-sdk/react":"^3","@ai-sdk/svelte":"^4"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.32.0_1782878722977_0.8777376180295955","host":"s3://npm-registry-packages-npm-production"}},"4.33.0":{"name":"@chat-adapter/web","version":"4.33.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.33.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"6cc0622fcc2d0378c1c917fdf8ac6f7b46141bbd","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.33.0.tgz","fileCount":11,"integrity":"sha512-TaTmuqcWJ+n0uQfdHhksLvNDSElSfSCgT9ZUreCWWbR37VSTH3HbF7un5H1A2g8vLc/E1sfVTPSJDgVJsvSpDg==","signatures":[{"sig":"MEUCIFhTtG/yWRz93CkHhfViR+RBz7cmutjQWMUEGh2UXORKAiEApqBu4e+4ZYA0xUkafH2GZPLALeDjlr+0nIIe2tZqs8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41475},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.33.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/38f976b16c04980ed85998f100215289/chat-adapter-web-4.33.0.tgz","_integrity":"sha512-TaTmuqcWJ+n0uQfdHhksLvNDSElSfSCgT9ZUreCWWbR37VSTH3HbF7un5H1A2g8vLc/E1sfVTPSJDgVJsvSpDg==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.16.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chat":"4.33.0","@chat-adapter/shared":"4.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.182","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^3.0.182","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^3.0.184","@ai-sdk/svelte":"^4.0.182","@chat-adapter/tests":"4.33.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.33.0"},"peerDependencies":{"ai":"^6","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3","@ai-sdk/react":"^3","@ai-sdk/svelte":"^4"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.33.0_1783463364442_0.04660689956993469","host":"s3://npm-registry-packages-npm-production"}},"4.34.0":{"name":"@chat-adapter/web","version":"4.34.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.34.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"e0dddbe31cd5e2f394de73677630a7c1f1002d16","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.34.0.tgz","fileCount":11,"integrity":"sha512-y+9vqui4rdqf3y/wviKCAbK6w0/0IZD1D0/6zX1tPtQSlD47BbofHUy3tCLLTvuNDsrRfvDZUpdwhu9QFS2AEw==","signatures":[{"sig":"MEUCIQCO0CzVdrJfwVG3IUTnVeYCHQyvaWbsN0r+OFiBahRsIAIgL2/l/5cFPVXLbnjiO/HHN0DJEeB1kNTkLj6cRdeUNqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41491},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.34.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/fd4b92560b8810b5334dfc94ecb13abc/chat-adapter-web-4.34.0.tgz","_integrity":"sha512-y+9vqui4rdqf3y/wviKCAbK6w0/0IZD1D0/6zX1tPtQSlD47BbofHUy3tCLLTvuNDsrRfvDZUpdwhu9QFS2AEw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.16.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chat":"4.34.0","@chat-adapter/shared":"4.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.34.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.34.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.34.0_1783957680398_0.8134311667296985","host":"s3://npm-registry-packages-npm-production"}},"4.35.0":{"name":"@chat-adapter/web","version":"4.35.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.35.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"392e1af370872767711d3bf9eb32b1acb3c78564","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.35.0.tgz","fileCount":11,"integrity":"sha512-cMQDNFycCE/tfuq9/w1y+csqOcq43j8yyX1r/CKSIKR46ADh/em/9MgRxrkUIOksjhz9f20ViKEREyzlZ+XuUQ==","signatures":[{"sig":"MEYCIQCJos+UArzPXjwUGDci3IOBo65+spLHzzi8yQTMgYfHtgIhAOZ54ZcjnUHPegHIk/8x5nb+9TWOPZRjB5mif0vQRw3A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41491},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.35.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/6441c0b58e412778198db132251ca627/chat-adapter-web-4.35.0.tgz","_integrity":"sha512-cMQDNFycCE/tfuq9/w1y+csqOcq43j8yyX1r/CKSIKR46ADh/em/9MgRxrkUIOksjhz9f20ViKEREyzlZ+XuUQ==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.16.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chat":"4.35.0","@chat-adapter/shared":"4.35.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.35.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.35.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.35.0_1784928472569_0.7668679675189165","host":"s3://npm-registry-packages-npm-production"}},"4.36.0":{"name":"@chat-adapter/web","version":"4.36.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.36.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"726e7a8bcc796ecaf901b7031aa8f2de52bd2c42","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.36.0.tgz","fileCount":11,"integrity":"sha512-qY3zW6g3sY/ryIRATqoP8viHzo6DKSxsJCJSmX0HqtPgFpnXo5ncibRCTkYZQS8XG9BnPzGRqM5/BSZ7emAr9g==","signatures":[{"sig":"MEQCICvDF5za14jwNFhuTg2rVTTyoh+jrapnqtfHZ8b1Gf/SAiBiNXbRgPKQi5SwqvyOxmpzoOQcBTno+FEPqJY5CLiI0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41491},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.36.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/20b9eda0aae4f56d50190919e058a5dc/chat-adapter-web-4.36.0.tgz","_integrity":"sha512-qY3zW6g3sY/ryIRATqoP8viHzo6DKSxsJCJSmX0HqtPgFpnXo5ncibRCTkYZQS8XG9BnPzGRqM5/BSZ7emAr9g==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.16.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chat":"4.36.0","@chat-adapter/shared":"4.36.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.36.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.36.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.36.0_1785543973668_0.6351703942648903","host":"s3://npm-registry-packages-npm-production"}},"4.37.0":{"name":"@chat-adapter/web","version":"4.37.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.37.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"9ac219851abff3bdf7ad4328d3f79998cd49d922","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.37.0.tgz","fileCount":11,"integrity":"sha512-51MraC2N819aLhMaXU8q9/3YbnZ4HzcEnMtVdy/CH88i4jBU4NDAsmWwHZ7zKPydtfQ3rH1YkH6d20+oa1Qhbw==","signatures":[{"sig":"MEYCIQDcgUp9sUYO2z7qI7sALA5U2s5WKmfnuIpdHwUtD4lSDwIhAMXWOtr3ICYQ7J/MluShCh7hQjOGTW2Gb6SY8sDHoXtT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41491},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.37.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/7bb34a803ac5d1a1b25badb0ef3ad076/chat-adapter-web-4.37.0.tgz","_integrity":"sha512-51MraC2N819aLhMaXU8q9/3YbnZ4HzcEnMtVdy/CH88i4jBU4NDAsmWwHZ7zKPydtfQ3rH1YkH6d20+oa1Qhbw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.16.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.18.0","dependencies":{"chat":"4.37.0","@chat-adapter/shared":"4.37.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.37.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.37.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.37.0_1786124203685_0.031969529620076154","host":"s3://npm-registry-packages-npm-production"}},"4.38.0":{"name":"@chat-adapter/web","version":"4.38.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.38.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"9e6fca469601f8d806c082dbb81f42ae4d76d07b","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.38.0.tgz","fileCount":11,"integrity":"sha512-t9EDi7AslS55f7P4biFFAF7M1etRPtG/OVRCwEIU2yU2e4s27pN75Qs1Mz4zCwlcytqazJ8g2IS/yhnareOejw==","signatures":[{"sig":"MEUCIDM8UN+JGJY/BG8v593YTv9DQymxShcPQB64GI/poJ/zAiEA4Rs7Ee7qNYk/AYjRG4ru6DOLpskFQxwxHtVH+eR4Q7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41491},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.38.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/52d52887d84604b9313c48f6946c7ce5/chat-adapter-web-4.38.0.tgz","_integrity":"sha512-t9EDi7AslS55f7P4biFFAF7M1etRPtG/OVRCwEIU2yU2e4s27pN75Qs1Mz4zCwlcytqazJ8g2IS/yhnareOejw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.17.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.19.0","dependencies":{"chat":"4.38.0","@chat-adapter/shared":"4.38.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.38.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.38.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.38.0_1786736165599_0.088911595572569","host":"s3://npm-registry-packages-npm-production"}},"4.38.1":{"name":"@chat-adapter/web","version":"4.38.1","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.38.1","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"5cfff793c10fea957ea1ec987e32bc1af5b3f760","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.38.1.tgz","fileCount":11,"integrity":"sha512-9yo6C9TZEufYpiiOhihWmI7HJ3MEOTfKhOkMjo5GoOUXI9KsDTYE+f+tMfWKJ0grCz1veSycqQSiaEB8i8/Jtw==","signatures":[{"sig":"MEUCIQCl1GyNlH1LciNNxp2iE8YAcdUoucQDHrfOBfzLbx9fDAIgUjr3xUbkJVIw7DJ6ou6zPmrqyDCOKaGhuJ7hoFpPo+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.38.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41491},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.38.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/f95a0c79a771dc82cb1e1bf0fb90cc37/chat-adapter-web-4.38.1.tgz","_integrity":"sha512-9yo6C9TZEufYpiiOhihWmI7HJ3MEOTfKhOkMjo5GoOUXI9KsDTYE+f+tMfWKJ0grCz1veSycqQSiaEB8i8/Jtw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.17.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.19.0","dependencies":{"chat":"4.38.1","@chat-adapter/shared":"4.38.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.38.1","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.38.1"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.38.1_1787001318322_0.7666564015196722","host":"s3://npm-registry-packages-npm-production"}},"4.39.0":{"name":"@chat-adapter/web","version":"4.39.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.39.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"e031036f82f74583e58c264ff5ee0d3a6f10066c","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.39.0.tgz","fileCount":11,"integrity":"sha512-dPCmWFK1P7J7CFvBxAg7B/ZnHJKMMs3NDFpIIrhJy4RSa1MgmyxxsE+uPhMZLxAS/aBUvVoXC1fyE5rER10LrA==","signatures":[{"sig":"MEYCIQDkDqwCIaAn7n+wbclDNsRpWDRF3H7TKWfTVTqqYlpgagIhAKMWaKe4RXenFqsiNTONM00oz39ocb+tuue7Fefy26G5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHq0POJXMsWfYplIZ72SMZzc9xEqzAWx/vYaIjbp7RhTAiAlvAO/96kTAL1AsHOyC7u0hs/+tTbnnFtGLFIKjqbPSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41788},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.39.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/44fa6ac9072957b0d0906cabce9bb54c/chat-adapter-web-4.39.0.tgz","_integrity":"sha512-dPCmWFK1P7J7CFvBxAg7B/ZnHJKMMs3NDFpIIrhJy4RSa1MgmyxxsE+uPhMZLxAS/aBUvVoXC1fyE5rER10LrA==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.17.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.19.0","dependencies":{"chat":"4.39.0","@chat-adapter/shared":"4.39.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.39.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.39.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.39.0_1787913962470_0.26751870082507434","host":"s3://npm-registry-packages-npm-production"}},"4.40.0":{"name":"@chat-adapter/web","version":"4.40.0","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"license":"MIT","_id":"@chat-adapter/web@4.40.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"homepage":"https://chat-sdk.dev/adapters/official/web","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"fd7769f85efffe196f351f397c2a3211e2bcb8fa","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.40.0.tgz","fileCount":11,"integrity":"sha512-1e1K4OJ438Kk2xt93PvqyNUlnARD27A4YXWv2zcIa9PWI7hFkCT0uwvyZ+VlZ+SVxk1dm6nZbgImnTQGaUtANw==","signatures":[{"sig":"MEUCIH3hQ7kk8TY11hu78gUZCFMrS3Jr3qKSy5iIDOeXpsTKAiEAr59XUQCSRFpoW+P7/8zqzF36kT4GlTp9X+vePEU6O74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCN0nqOQyYxQbK2a57sxg3ib6StFg0QHM4TlcKArgJJqwIhAP6r8Y+5qUio5Hd6lYfVfZFgHQBPoyz/0ejJb2QkUAwC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41788},"main":"./dist/index.js","type":"module","_from":"file:chat-adapter-web-4.40.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"_resolved":"/tmp/f23ddb45e3ce0ba1db436e6ed51e8c55/chat-adapter-web-4.40.0.tgz","_integrity":"sha512-1e1K4OJ438Kk2xt93PvqyNUlnARD27A4YXWv2zcIa9PWI7hFkCT0uwvyZ+VlZ+SVxk1dm6nZbgImnTQGaUtANw==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.19.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"_nodeVersion":"24.20.0","dependencies":{"chat":"4.40.0","@chat-adapter/shared":"4.40.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.40.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.40.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web_4.40.0_1788589013199_0.11882535272885653","host":"s3://npm-registry-packages-npm-production"}},"4.41.0":{"_id":"@chat-adapter/web@4.41.0","bugs":{"url":"https://github.com/vercel/chat/issues"},"dist":{"shasum":"d81122bf672c4254b57293bc0b2dc72de3a044c6","tarball":"https://registry.npmjs.org/@chat-adapter/web/-/web-4.41.0.tgz","fileCount":11,"integrity":"sha512-WzctgmNs+htgNsgp/Q9J1l8nq3lDz850xyXJ+le3/ELdk1XrmwUzODO8Bt/Luob65asG30CSX0c/kmIeGpZ1FQ==","signatures":[{"sig":"MEUCIQDvAKUJhJIrMoW3XzdPwR2fWodUzD1X3KpCGazg4GZULgIgEEskVMFTkeDZBT5vHJuN/ypm/KrPcnCh0MAHgmBCI8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEcwIgvKSRxFlKFbJVVydF1/C6wY5YXAZwUCMRAZYsh9AiEAgPp+wLNQhbqiE2lAXb3PWMyHR5xjHYmbY62dXV6ndCw="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@chat-adapter%2fweb@4.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41788},"main":"./dist/index.js","name":"@chat-adapter/web","type":"module","_from":"file:chat-adapter-web-4.41.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","import":"./dist/svelte/index.js"}},"license":"MIT","scripts":{"dev":"tsup --watch","test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"4.41.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77c2c8ec-432a-430f-b1fd-d473068755bb"}},"homepage":"https://chat-sdk.dev/adapters/official/web","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"_resolved":"/tmp/9942779e4356c8c3471a971393df060c/chat-adapter-web-4.41.0.tgz","_integrity":"sha512-WzctgmNs+htgNsgp/Q9J1l8nq3lDz850xyXJ+le3/ELdk1XrmwUzODO8Bt/Luob65asG30CSX0c/kmIeGpZ1FQ==","repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.19.0","description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","directories":{},"maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"chat":"4.41.0","@chat-adapter/shared":"4.41.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^7.0.0","vue":"^3.5.13","tsup":"^8.3.5","react":"^19.0.0","svelte":"^5.55.7","vitest":"^4.0.18","typescript":"^5.7.2","@ai-sdk/vue":"^4.0.0","@types/node":"^25.3.2","@types/react":"^19.0.1","@ai-sdk/react":"^4.0.0","@ai-sdk/svelte":"^5.0.0","@chat-adapter/tests":"4.41.0","@vitest/coverage-v8":"^4.0.18","@chat-adapter/state-memory":"4.41.0"},"peerDependencies":{"ai":"^6 || ^7","vue":"^3","react":"^19","svelte":"^5","@ai-sdk/vue":"^3 || ^4","@ai-sdk/react":"^3 || ^4","@ai-sdk/svelte":"^4 || ^5"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"@ai-sdk/vue":{"optional":true},"@ai-sdk/react":{"optional":true},"@ai-sdk/svelte":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/web_4.41.0_1789735114811_0.5147817334395108"}}},"time":{"created":"2026-05-07T21:11:05.777Z","modified":"2026-09-18T12:38:35.245Z","0.0.0":"2026-05-07T21:11:06.065Z","4.28.1":"2026-05-08T17:09:02.696Z","4.29.0":"2026-05-18T14:22:35.395Z","4.30.0":"2026-06-02T01:32:38.208Z","4.31.0":"2026-06-16T10:06:20.857Z","4.32.0":"2026-07-01T04:05:23.114Z","4.33.0":"2026-07-07T22:29:24.574Z","4.34.0":"2026-07-13T15:48:00.539Z","4.35.0":"2026-07-24T21:27:52.718Z","4.36.0":"2026-08-01T00:26:13.813Z","4.37.0":"2026-08-07T17:36:43.858Z","4.38.0":"2026-08-14T19:36:05.728Z","4.38.1":"2026-08-17T21:15:18.465Z","4.39.0":"2026-08-28T10:46:02.575Z","4.40.0":"2026-09-05T06:16:53.310Z","4.41.0":"2026-09-18T12:38:34.900Z"},"bugs":{"url":"https://github.com/vercel/chat/issues"},"license":"MIT","homepage":"https://chat-sdk.dev/adapters/official/web","keywords":["chat","chat-sdk","chatbot","web","react","vue","svelte","useChat","ai-sdk","ai-agent","bot","adapter","vercel"],"repository":{"url":"git+https://github.com/vercel/chat.git","type":"git","directory":"packages/adapter-web"},"description":"Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"cramforce","email":"malte.ubl@gmail.com"}],"readme":"[![Web adapter for Chat SDK](https://chat-sdk.dev/en/adapters/official/web/og)](https://chat-sdk.dev/adapters/official/web)\n\n# @chat-adapter/web\n\n> npm package: [`@chat-adapter/web`](https://www.npmjs.com/package/@chat-adapter/web)\n\n[![Agent Stack](https://img.shields.io/badge/Agent%20Stack-000?style=flat-square&logo=vercel&logoColor=FFF&labelColor=000&color=000)](https://vercel.com/kb/agent-stack)\n[![MIT License](https://img.shields.io/badge/License-MIT-000?style=flat-square&logo=opensourceinitiative&logoColor=white&labelColor=000&color=000)](../../LICENSE)\n\nWeb adapter for [Chat SDK](https://chat-sdk.dev). Lets a chat-sdk bot serve a browser chat UI alongside Slack, Teams, Discord, etc. — the same `bot.onDirectMessage(...)` handler fires for every platform.\n\nThe adapter speaks the [AI SDK UI message stream protocol](https://ai-sdk.dev/docs/ai-sdk-ui/stream-protocol), so React, Vue, and Svelte AI SDK clients work against the same server endpoint.\n\nDocumentation: [chat-sdk.dev/adapters/official/web](https://chat-sdk.dev/adapters/official/web) · Guides: [vercel.com/kb/chat-sdk](https://vercel.com/kb/chat-sdk)\n\n## Installation\n\n```bash\npnpm add @chat-adapter/web ai\n```\n\nThen install the framework package that matches your UI:\n\n| Framework | Package | Import from |\n|-----------|---------|-------------|\n| React / Next.js | `@ai-sdk/react` | `@chat-adapter/web/react` |\n| Vue / Nuxt | `@ai-sdk/vue` | `@chat-adapter/web/vue` |\n| Svelte / SvelteKit | `@ai-sdk/svelte` | `@chat-adapter/web/svelte` |\n\n## Scaffold with the CLI\n\nTo scaffold a new browser chat bot with the Web adapter preselected:\n\n```bash\nnpx create-chat-sdk@latest my-bot --adapter web memory\n```\n\nVisit the [adapters directory](https://chat-sdk.dev/adapters) to see other available official and vendor-official adapters.\n\n## Quick start\n\n### Server\n\n```typescript\n// lib/bot.ts\nimport { Chat } from \"chat\";\nimport { createWebAdapter } from \"@chat-adapter/web\";\nimport { createMemoryState } from \"@chat-adapter/state-memory\";\n\nexport const bot = new Chat({\n  userName: \"mybot\",\n  adapters: {\n    web: createWebAdapter({\n      userName: \"mybot\",\n      getUser: (req) => ({ id: getUserIdFromCookie(req) }),\n    }),\n  },\n  state: createMemoryState(),\n});\n\nbot.onDirectMessage(async (thread, message) => {\n  await thread.post(`You said: ${message.text}`);\n});\n```\n\n```typescript\n// app/api/chat/route.ts\nimport { after } from \"next/server\";\nimport { bot } from \"@/lib/bot\";\n\nexport async function POST(request: Request): Promise<Response> {\n  return bot.webhooks.web(request, {\n    waitUntil: (task) => after(() => task),\n  });\n}\n```\n\n### Client\n\n#### React\n\n```tsx\n// app/chat/page.tsx\n\"use client\";\nimport { useChat } from \"@chat-adapter/web/react\";\n\nexport default function ChatPage() {\n  const { messages, sendMessage, status, stop } = useChat();\n  // Render with `ai-elements` (<Conversation>, <Message>, <PromptInput>)\n  // or your own components — `messages`, `sendMessage`, `status` are the\n  // standard `@ai-sdk/react` API.\n}\n```\n\n#### Vue\n\n```vue\n<!-- components/Chat.vue -->\n<script setup lang=\"ts\">\nimport { useChat } from \"@chat-adapter/web/vue\";\n\nconst chat = useChat({ api: \"/api/chat\" });\n</script>\n\n<template>\n  <div v-for=\"msg in chat.messages\" :key=\"msg.id\">\n    <template\n      v-for=\"(part, index) in msg.parts\"\n      :key=\"`${msg.id}-${part.type}-${index}`\"\n    >\n      <p v-if=\"part.type === 'text'\">{{ part.text }}</p>\n    </template>\n  </div>\n</template>\n```\n\n#### Svelte\n\n```svelte\n<!-- Chat.svelte -->\n<script lang=\"ts\">\n  import { useChat } from \"@chat-adapter/web/svelte\";\n\n  const chat = useChat({ api: \"/api/chat\" });\n</script>\n\n{#each chat.messages as msg (msg.id)}\n  {#each msg.parts as part, index (`${msg.id}-${part.type}-${index}`)}\n    {#if part.type === \"text\"}<p>{part.text}</p>{/if}\n  {/each}\n{/each}\n```\n\n## Authentication\n\n`getUser` is the **security boundary** for the Web adapter. Unlike Slack/Teams where the platform signs every webhook, web requests come straight from a browser — you must identify the caller yourself. Returning `null` causes the adapter to respond with HTTP 401 and no handler runs.\n\nPlug in whatever your app already uses:\n\n```typescript\n// NextAuth\ncreateWebAdapter({\n  userName: \"mybot\",\n  getUser: async (req) => {\n    const session = await getServerSession(authOptions);\n    if (!session?.user) return null;\n    return { id: session.user.id, name: session.user.name };\n  },\n});\n\n// Clerk\ncreateWebAdapter({\n  userName: \"mybot\",\n  getUser: async (req) => {\n    const { userId, sessionClaims } = await auth();\n    if (!userId) return null;\n    return { id: userId, name: sessionClaims?.name as string | undefined };\n  },\n});\n\n// Custom session cookie\ncreateWebAdapter({\n  userName: \"mybot\",\n  getUser: async (req) => {\n    const sessionId = req.headers.get(\"cookie\")?.match(/session=([^;]+)/)?.[1];\n    if (!sessionId) return null;\n    const user = await db.users.findBySession(sessionId);\n    return user ? { id: user.id, name: user.name } : null;\n  },\n});\n```\n\nIf `getUser` throws, the adapter returns 401 and logs the error. Don't include sensitive data in the error message — it's not surfaced to the client, but it is logged.\n\n> The resolved `user.id` is embedded in the chat-sdk thread id (see [Threading](#threading) below). User ids containing `:` are rejected with HTTP 400 because they would corrupt the round-trip through `decodeThreadId`. If your auth provider emits ids with colons (e.g. `provider:sub` claims), normalize them inside `getUser` — for example by base64-encoding.\n\n## Threading\n\nBy default, each `useChat` conversation maps to one chat-sdk thread:\n\n```\nweb:{user.id}:{conversationId}\n```\n\n`conversationId` is the `id` field useChat sends in its request body. If your client supplies one (`useChat({ id: \"support-chat\" })`), it's reused across reloads; otherwise a fresh id is generated per request.\n\n`channel.messages` and `thread.messages` are equivalent on web — the channel id is the thread id. This avoids cross-conversation bleed when `persistMessageHistory` is enabled and the same user has multiple useChat conversations open.\n\nTo override (for example, one thread per user regardless of conversation):\n\n```typescript\ncreateWebAdapter({\n  userName: \"mybot\",\n  getUser: (req) => /* ... */,\n  threadIdFor: ({ user }) => `web:${user.id}:default`,\n});\n```\n\nThe encode/decode helpers are exposed on the adapter:\n\n```typescript\nadapter.encodeThreadId({ userId: \"u1\", conversationId: \"abc\" });\n// → \"web:u1:abc\"\nadapter.decodeThreadId(\"web:u1:abc\");\n// → { userId: \"u1\", conversationId: \"abc\" }\n```\n\n## Streaming\n\n`thread.post` accepts an `AsyncIterable<string | StreamChunk>` and pumps deltas straight onto the SSE response body — no edit loop, no rate limiting. Plays nicely with the AI SDK's `streamText`:\n\n```typescript\nimport { streamText } from \"ai\";\n// Bring your own model from any AI SDK provider\n// (@ai-sdk/openai, @ai-sdk/anthropic, @ai-sdk/google, ...).\n\nbot.onDirectMessage(async (thread, message) => {\n  const result = streamText({\n    model: myModel,\n    prompt: message.text,\n  });\n  await thread.post(result.textStream);\n});\n```\n\nThe adapter honors `request.signal`, so calling `stop()` from `useChat` short-circuits the iterator on the server. `task_update` and `plan_update` `StreamChunk`s have no native v1 representation in the UI message stream and are dropped silently.\n\n## Message persistence\n\n`persistMessageHistory` defaults to **`true`**. Web has no platform-side history API, so the only way for chat-sdk handlers to see prior turns via `thread.messages` / `channel.messages` is through the configured state adapter's message history cache. Set it to `false` only if your handler re-derives history from the request body's `messages[]` itself:\n\n```typescript\ncreateWebAdapter({\n  userName: \"mybot\",\n  getUser: (req) => /* ... */,\n  persistMessageHistory: false,\n});\n```\n\nThe AI SDK client retains the conversation in its UI state and resends it on every request, so opting out is a valid choice for stateless handlers — but anything that calls `await thread.messages` won't see prior turns.\n\n## Framework helpers\n\n`@chat-adapter/web/react` exports a thin wrapper around `@ai-sdk/react`'s `useChat` preconfigured with `DefaultChatTransport`:\n\n```tsx\nimport { useChat } from \"@chat-adapter/web/react\";\n\nconst { messages, sendMessage, status, stop, regenerate } = useChat({\n  api: \"/api/chat\",        // default\n  threadId: \"support-1\",   // becomes useChat's `id` and the request body's `id`\n});\n```\n\n| Option | Description |\n|--------|-------------|\n| `api` | API endpoint for the Web adapter route. Defaults to `/api/chat`. |\n| `threadId` | chat-sdk thread id — surfaces in the request body's `id` so the server can derive the chat-sdk thread id. Strongly recommended. Falls back to `id` from `ChatInit`. |\n| `experimental_throttle` | Throttle wait in ms for chat messages and data updates. |\n| `resume` | Whether to resume an ongoing chat generation stream. |\n| ...rest | All other options pass through to `@ai-sdk/react`'s `useChat`. |\n\nFor advanced configuration (custom transport, response interceptors, etc.) use `@ai-sdk/react`'s `useChat` directly — there's nothing magical in the wrapper.\n\n`@chat-adapter/web/vue` exports a `useChat` factory that returns a Vue-reactive `Chat` instance from `@ai-sdk/vue`:\n\n```vue\n<script setup lang=\"ts\">\nimport { useChat } from \"@chat-adapter/web/vue\";\n\nconst chat = useChat({ api: \"/api/chat\", threadId: \"support-1\" });\n</script>\n\n<template>\n  <div v-for=\"msg in chat.messages\" :key=\"msg.id\">\n    <template\n      v-for=\"(part, index) in msg.parts\"\n      :key=\"`${msg.id}-${part.type}-${index}`\"\n    >\n      <p v-if=\"part.type === 'text'\">{{ part.text }}</p>\n    </template>\n  </div>\n</template>\n```\n\n`@chat-adapter/web/svelte` exports a `useChat` factory that returns a Svelte-reactive `Chat` instance from `@ai-sdk/svelte`:\n\n```svelte\n<script lang=\"ts\">\n  import { useChat } from \"@chat-adapter/web/svelte\";\n\n  const chat = useChat({ api: \"/api/chat\", threadId: \"support-1\" });\n</script>\n\n{#each chat.messages as msg (msg.id)}\n  {#each msg.parts as part, index (`${msg.id}-${part.type}-${index}`)}\n    {#if part.type === \"text\"}<p>{part.text}</p>{/if}\n  {/each}\n{/each}\n```\n\nUnlike the React helper, Vue and Svelte return the `Chat` instance directly. Access `chat.messages`, `chat.sendMessage()`, `chat.status`, and `chat.stop()` on that object instead of destructuring.\n\n## Configuration\n\n| Option | Required | Description |\n|--------|----------|-------------|\n| `userName` | Yes | Bot username. Required by chat-sdk for mention detection (`@username`) and seeds the bot identity for assistant messages. |\n| `getUser` | Yes | `(request: Request) => WebUser \\| null \\| Promise<WebUser \\| null>`. Resolves the user from the inbound HTTP request. Returning `null` produces HTTP 401. |\n| `persistMessageHistory` | No | Persist incoming message history in the configured state adapter. Default: `true`. |\n| `threadIdFor` | No | Derive a chat-sdk thread id from the resolved user and the useChat conversation id. Default: `web:{user.id}:{conversationId}`. |\n| `logger` | No | Logger instance (defaults to `ConsoleLogger(\"info\")`). |\n\n## Features\n\n### Messaging\n\n| Feature | Supported |\n|---------|-----------|\n| Post message | Yes |\n| Edit message | No (every assistant turn is a fresh streamed response) |\n| Delete message | No |\n| File uploads | No (deferred to v2) |\n| Streaming | Native (SSE / UI message stream) |\n| Scheduled messages | No |\n\n### Rich content\n\n| Feature | Supported |\n|---------|-----------|\n| Card format | Markdown only in v1 (cards/JSX deferred to v2) |\n| Buttons | No |\n| Tables | Yes (GFM markdown) |\n| Modals | No |\n\n### Conversations\n\n| Feature | Supported |\n|---------|-----------|\n| Mentions | N/A (every web message routes as a DM) |\n| Add reactions | No |\n| Remove reactions | No |\n| Typing indicator | N/A (useChat derives a `status` from the SSE response itself) |\n| DMs | Yes — `isDM: true` for every thread |\n\n### Message history\n\n| Feature | Supported |\n|---------|-----------|\n| Fetch messages | Via state adapter cache (no platform API) |\n| Fetch single message | No |\n| Fetch thread info | Yes (synthesized) |\n| Fetch channel messages | Via state adapter cache |\n| List threads | No |\n| Post channel message | No |\n\n## v1 scope\n\n**In:** text + markdown, native streaming, DM-style routing, persisted message history, abort propagation via `request.signal`.\n\n**Out (deferred to v2):** cards/JSX rendering, reactions, modals, file uploads, edit/delete, multi-tab proactive push.\n\n## Troubleshooting\n\n### Every request returns 401\n\n- `getUser` is returning `null` or throwing. Add a log inside it to confirm the request actually carries the session you expect.\n- Cookies aren't being forwarded — check that `useChat` is mounted on the same origin as `/api/chat` (or that your transport passes credentials).\n\n### Every request returns 400 \"Invalid user id\"\n\n- The id returned by `getUser` contains a `:` character, which would corrupt the thread-id round-trip. Normalize the id inside `getUser` (for example, `id.replace(/:/g, \"_\")` or base64-encode it).\n\n### `useChat` recreates state on every render\n\n- Don't pass `id: undefined` to `useChat`. The wrapper guards against this internally — but if you're calling `@ai-sdk/react`'s `useChat` directly, omit `id` rather than passing `undefined`.\n\n### `thread.messages` is empty\n\n- `persistMessageHistory` is `false` and there is no platform-side history to fall back on. Either set it to `true` (the default) or read history from the request body's `messages[]` directly inside your handler.\n\n## AI Coding Agents\n\nIf you use an AI coding agent such as OpenAI Codex, Claude Code, or Cursor, install the Chat SDK skill so it knows the SDK APIs, adapter patterns, and project conventions before writing code.\n\n```bash\nnpx skills add vercel/chat\n```\n\nThe skill references bundled documentation in `node_modules/chat/docs`, plus adapter guides and starter templates in the published package.\n\nYou can also install the [Vercel Plugin](https://vercel.com/docs/agent-resources/vercel-plugin) for a broader agent toolkit — it includes the Chat SDK skill alongside specialist agents, agent slash commands, and more:\n\n```bash\nnpx plugins add vercel/vercel-plugin\n```\n\nThe plugin is optional; the skill alone is enough to build with Chat SDK.\n\nFor agent-readable documentation, see [chat-sdk.dev/llms.txt](https://chat-sdk.dev/llms.txt) (page index) or [chat-sdk.dev/llms-full.txt](https://chat-sdk.dev/llms-full.txt) (full text).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}