{"_id":"@assemble-inc/chat-widget","_rev":"25-e472651dc36645dd6b06abb0f0db8d06","name":"@assemble-inc/chat-widget","dist-tags":{"latest":"0.6.4"},"versions":{"0.1.0":{"name":"@assemble-inc/chat-widget","version":"0.1.0","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.0","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"77b0d7003b74d5c7cb0524a34568abec3d416ba9","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.0.tgz","fileCount":12,"integrity":"sha512-8dtHKQPV1aGfGpa49/QifMXTAJMpK6H69/fgPuulwvkho/CONKmO282T9BLhj+JBd+HRM+j7udF1mHxLv6/SSA==","signatures":[{"sig":"MEUCIQDZ4nio9oqplfuRv7zh7oFHYECQ5L6yqjJbA3twS6RfnQIgMcOiWXqPyGS6KKZsmW4MwcdlxHBMqAmZRqP2J3td9C8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281374},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.1.0","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^6.0.176","express":"^4.21.2","@ai-sdk/react":"^3.0.178","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.0_1778258108519_0.978407829529629","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@assemble-inc/chat-widget","version":"0.1.1","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.1","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"d1d73c1d5f4b48a448903105752abdec37489e44","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.1.tgz","fileCount":12,"integrity":"sha512-dDOSqnO6xPWLrIC0QlOHy+PiTxfZVGmkN2tXzfs7quxIhA7BOCkEG/lkphAviqfw52O/bP0nTjDsGS3qN4AxBg==","signatures":[{"sig":"MEUCIQCVIlLEfEyrpyPG8WjxDVIW0YVJD48hdL1iszQVEaphWAIgTUkP+jkTmu92UpdR9jUZcUO9MyBSTre7YQusprdLbDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281502},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","express":"^4.21.2","@ai-sdk/react":"^3.0.178","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.1_1778259349661_0.40311812609289976","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@assemble-inc/chat-widget","version":"0.1.2","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.2","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"b58cd3ba73265ae4e8d60517655b14fe706b252d","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.2.tgz","fileCount":12,"integrity":"sha512-/A2chedfc8yJ1cAlmqWfUvoGeFmSgP2jxOmA6/1y6Ce6PIU1c3lyUtOC8SAtsbSLD5ko1pEoLbW8tm8Vp3DkAw==","signatures":[{"sig":"MEUCIBSVdzPsnIZMuNCnaoWHLanCifbHzHfwaAMQWSRPl4jwAiEAi3aETWuAvK1imYn5afCYC08nhOE4TP+tlb4OiLaA36c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291033},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.2_1778260565710_0.4741980053549828","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@assemble-inc/chat-widget","version":"0.1.3","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.3","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"8b1271c0f6a2f16ed705e967413dbbb04dd3f545","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.3.tgz","fileCount":13,"integrity":"sha512-wOrcpbn7CQ0oGvvxtFCscA3nTxD9CzQ1w4eIHpKLKX2rd+f/e+t4yXkpjUgJjdDqJt/+u6zy9aybBIxuhkCCtA==","signatures":[{"sig":"MEUCIChwUYF8/cUunEeFp5eIjbTGDZz8eBfOwzYozkErrzaWAiEAhs4ZwS/7+yPj8sRFffdC6zDaTKZzj7jl+RxrZ3Rj9UA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1138212},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.3_1778261700560_0.9051659704802715","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@assemble-inc/chat-widget","version":"0.1.4","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.4","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"3ff3bfa2903f62a2251e2b98de94ef5773a5c4c4","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.4.tgz","fileCount":12,"integrity":"sha512-MQeTgnoRsMUjG9PB4S6n0FuMRXKWJq/ajLIzrB+JSYB511qvWmHoY0avO2jRWjzTfjLG7oi3FNu0v/ye1sG/wQ==","signatures":[{"sig":"MEYCIQDp7igpRN5fZ8d40zl2VpHA2MHXUKce810VXx/E08+vJwIhAM+YggSILLthUg1cUX7uBhQL+V4EkjW+TXZ4rc3/JJOd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492795},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.4_1778263181718_0.45879039144356804","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@assemble-inc/chat-widget","version":"0.1.5","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.5","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"3718057a4f1654157c6af7179992eecb48853a0d","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.5.tgz","fileCount":13,"integrity":"sha512-MsEHApr47GYvpxim4ED7P8Qydi5QYmacb+LonIJf/315jv8rJ5rGZVXnTknkJ1Rl1FtrGbtPPDXPTl+ns8gQgQ==","signatures":[{"sig":"MEUCIQCN+paFNsFLS64jcrK5gBWjv6KWnnzvdIOerLUjFEzg+gIgXf88Lab/CWZQ8w6ugNKvdEP2lD+udd35F4tzpxZHXdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339759},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.5_1778263213952_0.5842988970324008","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@assemble-inc/chat-widget","version":"0.1.6","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.6","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"f73667003c3a0ca543ca593fff38188b33ef994c","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.6.tgz","fileCount":13,"integrity":"sha512-Rk53QpYEpYDRHR7/hCPrKRZIEsUPuCU9XBIv23on1Gj7iBGcNRe0ShFtz+tCluwrzY1IgDMHs/Y6uMznluaQhA==","signatures":[{"sig":"MEYCIQDarE5qTAKEwSk1+GHp+Ip2yd+1sRT/Wf1Q+hjHq7y/nQIhAOQH+LA1UHeNVqYHpWUPblgEtsq9Bax9wXm9UTwUc1sA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1351297},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.6_1778266479938_0.8209007460823374","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@assemble-inc/chat-widget","version":"0.1.7","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.7","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"91fdf68f41b94042e136bf3d0fae5ce5d1977079","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.7.tgz","fileCount":13,"integrity":"sha512-bI79YR7TlL66cTsTuy0U2Tntv1zyY6cVvkElTuor/02yvPO8D/voBPZ/R5kFo8L2dzIiC2UaFCBWKDZHETF6JA==","signatures":[{"sig":"MEUCIQCb01iaebMY1b8gb1JeAYwUFPw7+yiXu9T8oI71mZSoywIgXeLfaRDvYufBwMB7xj05hY67IVrtoYpOLwdPDzZfkSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1351215},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.7_1778267629377_0.7093104671053831","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@assemble-inc/chat-widget","version":"0.1.8","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.8","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"487267ccc02d0c33f4d59232f992be31e688bdab","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.8.tgz","fileCount":13,"integrity":"sha512-q6qo5AVdoWSL488R8a4+H3wp6k8/swlmBCDbbeuPJIcWS4An+KWdGjzhk/Qr4H3M3g6ph37pgBkyKVYPD01rZg==","signatures":[{"sig":"MEUCIDZLereGwBMgPub5cHDW0Zar4aDWQLrCUsL3V4mKBF1vAiEApH8lBNAEdez62/7af7kqPxD8gXqqkjXTiTViOhz66qA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1352222},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.8_1778268905297_0.5426934964578685","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@assemble-inc/chat-widget","version":"0.1.9","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.9","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"51da7f2247f1b41c1f2727c5417c0984b5e12d6b","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.9.tgz","fileCount":13,"integrity":"sha512-hUUtMWDWtOR2I6Cay4ESt8/MFHx9CZBF0CLne6BCFsW7LUvH1ej7DsUi47192huI4WXW/T/yAoh2QLqVT/ttSQ==","signatures":[{"sig":"MEUCIGsjztCSOPcFusPGbHALBhn0bhk2nnXsf7PSIZhZetJFAiEA6GFP1jVoDVb5itRtD7VjhKcY+eHqp5qzmITvI2ipTJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1352648},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.9_1778269125035_0.7019073266042086","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@assemble-inc/chat-widget","version":"0.1.10","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.10","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"bf27e9aefe3e4727c07e1d2e2af1369eb8d9ff04","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.10.tgz","fileCount":13,"integrity":"sha512-zf0q/OBl8KbkSY6WYkCos659jv6ya4QdOIKs0rxXymb/sE9w5ShfmrzR4nuOO0TPTj/+0/SetrqrQ+Gz8QSIcQ==","signatures":[{"sig":"MEYCIQD7Pq84TLgrxkxp+WwEzqDhgqK3/aW/nOsVycttu0U7mwIhAMfu6eSJNS2HIyKkJaHVYd1qTb4dZSTlOfoPvFyYZMYh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1352622},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.10_1778272618084_0.9462436073841962","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@assemble-inc/chat-widget","version":"0.1.11","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.11","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"01ada0ba6594861b9957a224666dc0659f18ef31","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.11.tgz","fileCount":13,"integrity":"sha512-AlhkWj2W2dsYIaEzHksgvfVrvJD+VSjFe67ngk7niTleKipf53uFW5o8Ag+lyn/uj2JO2N1GX938aKsEjPG63g==","signatures":[{"sig":"MEUCIQD2gEw2lsfpbni3FeF2L84whhCsHj0L9lpFI2l7ry9JPwIgK3yZoRQ+uzeVO1v/31bY98yuEFpJ08YYIcbYoAjS3po=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1352680},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","@ai-sdk/react":"^3.0.178","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"19.1.0","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"19.1.0","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.11_1778273178694_0.3692119905016542","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@assemble-inc/chat-widget","version":"0.1.12","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.1.12","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"38d3eeb3be4281bc765694d567b5d47611a1cddb","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.1.12.tgz","fileCount":12,"integrity":"sha512-HQi3scZGN23mww/LAKcMMWjf+tAqPBcmCpvJbEd7WGbGFLXBEkb8K2i5BP7QwLn/t96/CW4zk32rpeKk9Xr0sA==","signatures":[{"sig":"MEQCIDZ1+DQJ5pGRpnKO8Qy60rtROmfS+UHy7A2PXt6kUGREAiAYi3f+90hEV+5Yycru+nYxwkSQvxJW95q/piK47S1qNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":502087},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7868033791df0112e49bb2b0a3267dd1b4f65d3d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.1.12_1778894337287_0.6261690188060594","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@assemble-inc/chat-widget","version":"0.2.0","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.2.0","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"7a598dfe5959ccc535c62fd3f76fc2aab29bbaab","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.2.0.tgz","fileCount":12,"integrity":"sha512-IzMeLneImvbZzwBH3m43uf5/IxHHMUQUcipdj2xB8mKUHpS9/SNEZWH3lxZ5FNwtCIl8UvR6EUY/9EMWxg0muw==","signatures":[{"sig":"MEQCIBiNEglITfbfUxi1L7mukdH7jIE+uY4zigos9xevP00AAiB9L/zwatO3DzPDqHF8xQuMKimG6JtWJZUSrR3NYxXACA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":502086},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"89815b4884d4090637795e043ed186b766d69cde","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.2.0_1778990851865_0.8049169672259402","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@assemble-inc/chat-widget","version":"0.2.1","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.2.1","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"e535563b38f9d58e727b02f38a15dfd653bd97e7","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.2.1.tgz","fileCount":12,"integrity":"sha512-SLMEuf8GG51ffWiViEmpGfRmwdbP7j2FhOd8kmJue6lnNyO9RiukEQuRY6/ymV8p6tjoeDEgXGi3zvHQiLxcNw==","signatures":[{"sig":"MEUCIQDqgbtkSyf+bPeUkbupUGpf9deznVB3VCEkSz/Yx9yyDwIgMz+iC7hddR/+cRj+CaFmQNDeh7L821MtcRk5RabrI6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":502086},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"89815b4884d4090637795e043ed186b766d69cde","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.2.1_1778992930083_0.017234735720631722","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@assemble-inc/chat-widget","version":"0.3.0","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.3.0","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"a5b400b6293f187c1419c843a67432dfde04d578","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.3.0.tgz","fileCount":12,"integrity":"sha512-fzVOTpSN2ufO2hbWWc26OJ+ZVpwHybFwFTGBcusAVmrbQuq/4n+J1VzB8C7eRYNMG0CXp2uLw78pjp8vgK6aIA==","signatures":[{"sig":"MEQCIHthqZnQemLJONf8cvLC5aV4bgcsLYDIoV+WUAPgSI/qAiB1gm54b1DUBBLtd4u//SIu/bUmsGQPt4teGNnUZhMtYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505728},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"89815b4884d4090637795e043ed186b766d69cde","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.3.0_1779121960437_0.7087748769049447","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@assemble-inc/chat-widget","version":"0.3.1","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.3.1","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"8ba8aec3aad7ea73d61b247e2c8c9d092b349341","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.3.1.tgz","fileCount":12,"integrity":"sha512-lQaaz5XHquKKF9dtqkmz5QBhb+TNduiPvZnSwkmJvglIf8tCSw3NGvIxNjhNqZ92DSXpjBESHFBZDfP8ZU1+bg==","signatures":[{"sig":"MEUCIB5gju+FvA9h3FM9WgIBIABbXFJOWzXNWoZ2OxuuPjW1AiEAuOc8rryiw5h81iWCTJr/rs+3rSgV6c/guljLgWC1Shc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505728},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"89815b4884d4090637795e043ed186b766d69cde","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.3.1_1779125080209_0.7812855951711506","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@assemble-inc/chat-widget","version":"0.3.2","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.3.2","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"3925674fa1a031060ddc24f007ae3c73eeefb08f","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.3.2.tgz","fileCount":12,"integrity":"sha512-MrLMY13JQzGOMR6Am2cVaTvghOVzSnmQQMSeEFNXaUOFtGWaXaYuPRCjTlnRy5Qg0Hd6VvDIJVW+1pFX82v/mw==","signatures":[{"sig":"MEQCIAdQFE8QtTI4rdCfmP2fspeRubOdPgbKixxkQvnEcyaBAiB996q9KmmnsxPbfSdw+PKuKYbM2/1fKroCB/YV6eCqzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506329},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7fa47b248abfb79d5f6135c190dac9e5a3a3028d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.3.2_1780418230802_0.1994346917259444","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@assemble-inc/chat-widget","version":"0.4.0","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.4.0","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"c1e8fb345bce303b2e40f52681fd1d822d5b9653","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.4.0.tgz","fileCount":12,"integrity":"sha512-WajekfaDYjxxTYDx2Cybi4NJudo6ZTtgchvmLrG37yDK55Jj05Ir/tb3ldPPWoXgvXLeSJCPBpFfbzcIlyRBYg==","signatures":[{"sig":"MEUCIQCtxQJj2XRuC2+5/76Tbrgl6Lg0AHREgeNxBqiwcIRf4gIgEJW/p5B9W0w+Lg1sX/Vsd84AQpVXG50uHqb63GSS9Mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506329},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"7fa47b248abfb79d5f6135c190dac9e5a3a3028d","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.4.0_1780418472583_0.7976484737357317","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@assemble-inc/chat-widget","version":"0.5.0","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.5.0","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"f739b83fa48706e953a21e90021a4a49946a8737","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.5.0.tgz","fileCount":12,"integrity":"sha512-DDfgq4/oOuifzDQDmBhxy+X8MUMIzrv8Eer1W/U2UTzxUuVPgZpPfk8YOtmOgCJ3Qa2G/fcYlrfpwG4OQqd+Aw==","signatures":[{"sig":"MEUCIBAryycHSCh6f7EPilGFXtvwFQ2yjKiO8rOYyL0jx71dAiEA1e2sP/ZBsDoNam5OeQ5ftWaEeFG+F0F7Q2DFrVFu+hw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":603414},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"152a75d7e02750280f486178be0c71efeda2769a","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsup","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable AI chat widget powered by Anthropic and MCP","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","remark-gfm":"^4.0.1","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","vitest":"^3.2.4","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","@tailwindcss/typography":"^0.5.16","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.5.0_1781133411522_0.2364863735286702","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@assemble-inc/chat-widget","version":"0.6.0","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.6.0","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"331e894b3ebd2d2401c398848d82ee4e8ed07c52","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.6.0.tgz","fileCount":14,"integrity":"sha512-VffcLd7gS9XYTOpVWXB4uRZDe0sk3rNuwSqtRZVHXXHI10aWOPAZELBiR2JanPwdPdZuptngrm5B1rTWtguTDQ==","signatures":[{"sig":"MEUCIQDtf2pDw50eTnDXaEkj3RbMgxhQ32D97ls9W44eDpcHzgIgc1a/z8XDX2dhqfYWHLUw0dlm2YXyxkdYq6ylaT6jg/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1442167},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"152a75d7e02750280f486178be0c71efeda2769a","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup && vite build --config vite.embed.config.ts","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable agentic chat widget powered by Anthropic","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.21.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.6.0_1781281656697_0.8185873304456657","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@assemble-inc/chat-widget","version":"0.6.1","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.6.1","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"3f24db617db460d28d8cd0e0f7cdff661032525d","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.6.1.tgz","fileCount":14,"integrity":"sha512-0l9t7XbIEGBnZTVDtpExjFJkbNDoCTCb2CvM9ImVJLqDkoY3Y4kemHTnNvqJHMroIAmHQfLvl/xtUvHFitWpQA==","signatures":[{"sig":"MEUCIHSr/9tjLqvXf2e46wSCQe9j3KVELVtOood4c0y5fi6dAiEA6ydbzo7Tc6PM8TySgQ6Qu4yoD1uBgue6k8O9v1yt32Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1441995},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"5aa6901cf67d40ceb4a706706c8b05c29b1e03dc","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup && vite build --config vite.embed.config.ts","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable agentic chat widget powered by Anthropic","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.21.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.6.1_1781297660468_0.638537086227781","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@assemble-inc/chat-widget","version":"0.6.2","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.6.2","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"0291f0b5dfddb974210d6d860d3f1e3f894333db","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.6.2.tgz","fileCount":14,"integrity":"sha512-/udbTK2LCfHnV/hKudVIZ/LF4HDrIYnYpeXxF6QqkcGCzebbHl+l1Ol1EzwScdiEGO19swQa7VSDwC31q7eqMw==","signatures":[{"sig":"MEQCIBkUyXD7JIdGfZPXYrbObUd30P1SwBxK3TTGlZHe8/3KAiASDEGIoWpmMSPAkGxUnNt646cz7teHF38MoCRLu0jJ4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1452543},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"caede096c255e62576afa61b5b00232e4b9609d7","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && tsup && vite build --config vite.embed.config.ts","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable agentic chat widget powered by Anthropic","directories":{},"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.21.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.6.2_1781549813297_0.6043444236350779","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@assemble-inc/chat-widget","version":"0.6.3","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","_id":"@assemble-inc/chat-widget@0.6.3","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"dist":{"shasum":"9a5e7a767ff7b063008c695b69478acf97d01a01","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.6.3.tgz","fileCount":14,"integrity":"sha512-bbGywF9wG+xJXJ1E0frhv9ZkIE6pyBdlCy9lvhrxN10plGAGxt52S1+u6S77ul7aBgPTLoQSneBqaFdoD3pj8w==","signatures":[{"sig":"MEUCIDgbHLcZX8PIv+Brcmslff+bi/PqAFkFJ/EDdvPvzxZHAiEAnQ5aZ1O+kWQgRFIa2NUUP5e32ILNsY94GLmFc6wBKXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1457088},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":"./dist/embed.iife.js","./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css"},"gitHead":"2ba25dfa68bf50d680f3b32d10fc4a2547d5415e","scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","auth":"tsx scripts/auth.ts","lint":"tsc --noEmit","build":"vite build && vite build --config vite.style.config.ts && rm -f dist/_styles-entry.js && tsup && vite build --config vite.embed.config.ts","preview":"vite preview","build:embed":"vite build --config vite.embed.config.ts","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"_npmVersion":"10.8.2","description":"Embeddable agentic chat widget powered by Anthropic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.18.3","dependencies":{"ai":"^6.0.176","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1","@ai-sdk/anthropic":"^3.0.75","class-variance-authority":"^0.7.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.21.0","devDependencies":{"tsx":"^4.19.2","tsup":"^8.4.0","vite":"^6.3.4","react":"^19.2.1","dotenv":"^17.4.2","postcss":"8.5.3","react-dom":"^19.2.1","typescript":"5.8.3","@types/cors":"^2.8.19","@types/node":"22.15.20","tailwindcss":"4.1.7","@types/react":"19.1.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","@ai-sdk/react":"^3.0.178","@types/express":"^5.0.1","vite-plugin-dts":"^4.5.4","@types/react-dom":"19.1.5","@tailwindcss/vite":"^4.2.4","@tailwindcss/postcss":"^4.2.4","@vitejs/plugin-react":"^4.3.4","vite-plugin-css-injected-by-js":"^3.5.2"},"peerDependencies":{"react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19","@ai-sdk/react":"^3.0.178"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/chat-widget_0.6.3_1781552248754_0.061237527748440934","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@assemble-inc/chat-widget","version":"0.6.4","description":"Embeddable agentic chat widget powered by Anthropic","keywords":["chat","widget","ai","mcp","anthropic","react"],"license":"MIT","packageManager":"pnpm@10.21.0","type":"module","sideEffects":["**/*.css"],"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.js","require":"./dist/server.cjs"},"./style.css":"./dist/index.css","./embed":"./dist/embed.iife.js"},"publishConfig":{"access":"public"},"pnpm":{"onlyBuiltDependencies":["esbuild"]},"scripts":{"dev":"concurrently \"vite\" \"tsx watch server.ts\"","build":"vite build && vite build --config vite.style.config.ts && rm -f dist/_styles-entry.js && tsup && vite build --config vite.embed.config.ts","build:embed":"vite build --config vite.embed.config.ts","prepublishOnly":"pnpm run build","preview":"vite preview","lint":"tsc --noEmit","auth":"tsx scripts/auth.ts"},"peerDependencies":{"@ai-sdk/react":"^3.0.178","react":"^18.3.1 || ^19","react-dom":"^18.3.1 || ^19"},"peerDependenciesMeta":{"react-dom":{"optional":false}},"dependencies":{"@ai-sdk/anthropic":"^3.0.75","@modelcontextprotocol/sdk":"^1.12.0","ai":"^6.0.176","class-variance-authority":"^0.7.1","cors":"^2.8.6","express":"^4.21.2","react-markdown":"^9.0.1"},"devDependencies":{"@ai-sdk/react":"^3.0.178","@tailwindcss/postcss":"^4.2.4","@tailwindcss/vite":"^4.2.4","@types/cors":"^2.8.19","@types/express":"^5.0.1","@types/node":"22.15.20","@types/react":"19.1.4","@types/react-dom":"19.1.5","@vitejs/plugin-react":"^4.3.4","autoprefixer":"10.4.21","concurrently":"^9.1.2","dotenv":"^17.4.2","postcss":"8.5.3","react":"^19.2.1","react-dom":"^19.2.1","tailwindcss":"4.1.7","tsup":"^8.4.0","tsx":"^4.19.2","typescript":"5.8.3","vite":"^6.3.4","vite-plugin-css-injected-by-js":"^3.5.2","vite-plugin-dts":"^4.5.4"},"_id":"@assemble-inc/chat-widget@0.6.4","gitHead":"d8e40857d71cbe59a80b673b7b93923dfbd7eff7","_nodeVersion":"20.18.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-SlR65jfEGgMCP7FgZV+wC1BpICYyD1jEvZV/wqbTJxy0pDQXFig+SQa+kB4qxnrX014tzdEwTUw8E2DeWsiKcQ==","shasum":"0a0de3ea3110d16508e2bff3078da7d4eeb4b424","tarball":"https://registry.npmjs.org/@assemble-inc/chat-widget/-/chat-widget-0.6.4.tgz","fileCount":14,"unpackedSize":1456948,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjMvleqH8qZ+gKIjWHlRWDNx5J4WEiskTJxn52vmCW8QIhALm4MGi7O+MW6DFbvGEe91daIUuR3jHDUnlQ7wx2ImNH"}]},"_npmUser":{"name":"canfie1d","email":"ryancanfield@me.com"},"directories":{},"maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat-widget_0.6.4_1781552633104_0.2626778799134155"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T16:35:08.461Z","modified":"2026-06-15T19:43:53.406Z","0.1.0":"2026-05-08T16:35:08.725Z","0.1.1":"2026-05-08T16:55:49.821Z","0.1.2":"2026-05-08T17:16:05.875Z","0.1.3":"2026-05-08T17:35:00.751Z","0.1.4":"2026-05-08T17:59:41.945Z","0.1.5":"2026-05-08T18:00:14.130Z","0.1.6":"2026-05-08T18:54:40.139Z","0.1.7":"2026-05-08T19:13:49.586Z","0.1.8":"2026-05-08T19:35:05.507Z","0.1.9":"2026-05-08T19:38:45.237Z","0.1.10":"2026-05-08T20:36:58.299Z","0.1.11":"2026-05-08T20:46:18.882Z","0.1.12":"2026-05-16T01:18:57.475Z","0.2.0":"2026-05-17T04:07:32.019Z","0.2.1":"2026-05-17T04:42:10.229Z","0.3.0":"2026-05-18T16:32:40.600Z","0.3.1":"2026-05-18T17:24:40.388Z","0.3.2":"2026-06-02T16:37:10.988Z","0.4.0":"2026-06-02T16:41:12.735Z","0.5.0":"2026-06-10T23:16:51.689Z","0.6.0":"2026-06-12T16:27:36.923Z","0.6.1":"2026-06-12T20:54:20.676Z","0.6.2":"2026-06-15T18:56:53.453Z","0.6.3":"2026-06-15T19:37:28.975Z","0.6.4":"2026-06-15T19:43:53.274Z"},"license":"MIT","keywords":["chat","widget","ai","mcp","anthropic","react"],"description":"Embeddable agentic chat widget powered by Anthropic","maintainers":[{"name":"canfie1d","email":"ryancanfield@me.com"},{"name":"mayhemphone","email":"mayhemphone@gmail.com"}],"readme":"# @assemble-inc/chat-widget\n\nAn embeddable, general-purpose AI chat widget. Drop it into any React app — or any plain HTML page — to give users a floating chat interface backed by Anthropic Claude and MCP (Model Context Protocol). Fully configurable at embed time: system prompt, model, knowledge base, UI copy, and more.\n\n---\n\n## Installation\n\n```bash\npnpm add @assemble-inc/chat-widget\n# or\nnpm install @assemble-inc/chat-widget\n# or\nyarn add @assemble-inc/chat-widget\n```\n\n**Peer dependencies** — make sure these are already in your project:\n\n```bash\npnpm add react react-dom\n```\n\n---\n\n## Quick Start\n\n### 1. Mount the widget\n\n```tsx\nimport { Widget } from \"@assemble-inc/chat-widget\";\n\nexport default function App() {\n  return (\n    <>\n      {/* your app */}\n      <Widget\n        config={{\n          systemPrompt: \"You are a helpful assistant for Acme Corp.\",\n          title: \"Ask Us Anything\",\n          placeholder: \"Type your question...\",\n        }}\n      />\n    </>\n  );\n}\n```\n\nThe widget renders as a fixed floating button in the bottom-right corner (configurable). Clicking it opens the chat panel. Styles are injected automatically when you import `Widget`; you can still import `@assemble-inc/chat-widget/style.css` explicitly if your bundler strips side effects. If your app uses Tailwind v3 PostCSS, do not re-run Tailwind on the widget stylesheet (only autoprefixer) — the CSS is already compiled with Tailwind v4.\n\n### 2. Add the server-side handler\n\nThe simplest setup is to mount the handler **on your existing app server** so that the widget's default `endpoint: '/api/chat'` resolves correctly:\n\n```ts\n// your existing Express/Next/etc. server\nimport { createChatHandler } from \"@assemble-inc/chat-widget/server\";\n\napp.use(express.json());\napp.post(\n  \"/api/chat\",\n  createChatHandler({\n    apiKey: process.env.ANTHROPIC_API_KEY!,\n    mcpServerUrl: process.env.MCP_SERVER_URL!,\n    mcpBearerToken: process.env.MCP_BEARER_TOKEN,\n  }),\n);\n```\n\nIf you prefer to run a **separate API server** (e.g. on port 3006), you must tell the widget where to find it — otherwise it will POST to your frontend server and get a 404:\n\n```tsx\n// Pass the full URL when the API server is on a different port\n<Widget config={{ endpoint: \"http://localhost:3006/api/chat\" }} />\n```\n\nOr proxy `/api` to the API server in your frontend dev config (Vite example):\n\n```ts\n// vite.config.ts\nserver: {\n  proxy: {\n    \"/api\": \"http://localhost:3006\",\n  },\n},\n```\n\n### 3. Environment variables\n\n```bash\nANTHROPIC_API_KEY=sk-ant-...\nMCP_SERVER_URL=https://your-mcp-server.example.com/mcp\nMCP_BEARER_TOKEN=your-bearer-token   # optional\nSYSTEM_PROMPT=\"You are...\"           # optional server-side override\n```\n\n---\n\n## Script-tag Embed (no React required)\n\nFor non-React apps, use the self-contained IIFE bundle:\n\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.example.com/asm-widget/index.css\" />\n<script src=\"https://cdn.example.com/asm-widget/embed.js\"></script>\n<script>\n  AsmWidget.init({\n    endpoint: \"https://my-server.com/api/chat\",\n    systemPrompt: \"You are a helpful assistant.\",\n    title: \"Help\",\n  });\n</script>\n```\n\nBuild the embed bundle:\n\n```bash\npnpm run build:embed   # outputs dist/embed.js\n```\n\n---\n\n## Configuration Reference\n\n### `WidgetConfig`\n\nAll configuration is passed as a single `config` prop. Every field is optional.\n\n| Field             | Type                              | Default          | Description                                                                                                    |\n| ----------------- | --------------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------- |\n| `endpoint`        | `string`                          | `'/api/chat'`    | Backend chat endpoint URL.                                                                                     |\n| `systemPrompt`    | `string`                          | —                | System prompt for this embed. Forwarded to the server; server-side value wins when both are set.               |\n| `context`         | `string`                          | —                | Additional context appended after the system prompt (e.g. current page, user role). Forwarded to the server.   |\n| `mcpServerUrl`    | `string`                          | —                | MCP server URL for this embed. Must appear in the server's `mcpCredentials` allowlist; falls back to default.  |\n| `model`           | `string`                          | —                | Claude model ID (e.g. `'claude-opus-4-5'`). Forwarded to the server; server-side value wins when both are set. |\n| `temperature`     | `number`                          | —                | Response creativity, 0–1. Forwarded to the server; server-side value wins when both are set.                   |\n| `initialMessages` | `Array<{ role, content }>`        | —                | Seed messages shown when the widget first opens.                                                               |\n| `persist`         | `boolean`                         | `false`          | Save the conversation to `sessionStorage` across page navigations.                                             |\n| `user`            | `{ id?, name?, role? }`           | —                | Forwarded in every request body for server-side personalisation or logging.                                    |\n| `title`           | `string`                          | `'Chat'`         | Header title.                                                                                                  |\n| `logo`            | `string`                          | Built-in logo    | URL to a custom logo image.                                                                                    |\n| `theme`           | `WidgetTheme`                     | —                | Semantic color and typography overrides for whitelabeling (see below).                                           |\n| `welcomeHeading`  | `string`                          | —                | Default assistant message shown when the conversation is empty.                                                |\n| `copy`            | `WidgetCopy`                      | —                | Override built-in error and loading status text.                                                               |\n| `placeholder`     | `string`                          | —                | Textarea placeholder text.                                                                                     |\n| `showCloseButton` | `boolean`                         | —                | Header chevron that dismisses the panel. `false` hides it. Default: shown in floating layout or when `onClose` is set in docked layout. |\n| `layout`          | `'floating' \\| 'docked'`          | `'floating'`     | `'floating'`: FAB + overlay panel. `'docked'`: fills the host container.                                       |\n| `position`        | `'bottom-right' \\| 'bottom-left'` | `'bottom-right'` | Widget anchor corner. Only applies when `layout` is `'floating'`.                                               |\n\n#### `WidgetTheme`\n\nPass semantic tokens via `config.theme` to rebrand the widget without writing custom CSS:\n\n| Field        | Applies to                                                                 |\n| ------------ | -------------------------------------------------------------------------- |\n| `primary`    | Header title, FAB (closed), icons, MCQ selected state, send button border |\n| `accent`     | Hover and focus rings                                                      |\n| `userBubble` | User message bubbles                                                       |\n| `fabOpen`    | FAB when the panel is open (defaults to `userBubble`)                      |\n| `surface`    | Panel shell, assistant bubbles, composer bar                               |\n| `content`    | Chat content area background                                               |\n| `muted`      | Secondary text and loading indicators                                      |\n| `text`       | Message body text                                                          |\n| `fontFamily` | Widget font stack                                                          |\n\nYou can also override tokens with CSS on the widget root:\n\n```css\n.asm-widget {\n  --asm-primary: #003366;\n  --asm-user-bubble: #dbeafe;\n  --asm-font-family: 'Helvetica Neue', sans-serif;\n}\n```\n\n#### `WidgetCopy`\n\n| Field     | Default                                              | Description                                      |\n| --------- | ---------------------------------------------------- | ------------------------------------------------ |\n| `error`   | `\"Sorry, I'm having trouble connecting right now.\"`  | Shown when the chat endpoint fails. `\\n` for breaks. |\n| `loading` | `\"This should only take a moment…\"`                  | Shown while waiting for the first response token. |\n\n### `WidgetProps`\n\n| Prop           | Type                                               | Default | Description                                                                          |\n| -------------- | -------------------------------------------------- | ------- | ------------------------------------------------------------------------------------ |\n| `config`       | `WidgetConfig`                                     | —       | All widget configuration (see above).                                                |\n| `open`         | `boolean`                                          | —       | Controls open/close state from outside (controlled mode).                            |\n| `defaultOpen`  | `boolean`                                          | `false` | Initial open state when uncontrolled.                                                |\n| `onOpenChange` | `(open: boolean) => void`                          | —       | Called whenever the widget opens or closes.                                          |\n| `onMessage`    | `(msg: { role: string; content: string }) => void` | —       | Called after each new assistant message is received.                                 |\n| `onError`      | `(error: Error) => void`                           | —       | Called when a stream error occurs.                                                   |\n| `onClose`      | `() => void`                                       | —       | Called when the close button is clicked. Use `config.showCloseButton: false` to hide the chevron while keeping this handler. |\n| `className`    | `string`                                           | —       | Extra class names on the widget root.                                                |\n| `style`        | `React.CSSProperties`                              | —       | Extra inline styles on the widget root (merged with `config.theme`).                 |\n| `children`     | `ReactNode`                                        | —       | Custom content shown in the empty state. Replaces the built-in empty state entirely. |\n\n---\n\n## Server Reference\n\n### `createChatHandler(config)`\n\nReturns an Express-compatible `(req, res) => Promise<void>` request handler that streams Claude responses via your MCP server.\n\n| Option           | Type                     | Required | Description                                                                                                                 |\n| ---------------- | ------------------------ | -------- | --------------------------------------------------------------------------------------------------------------------------- |\n| `apiKey`         | `string`                 | Yes      | Anthropic API key.                                                                                                          |\n| `mcpServerUrl`   | `string`                 | Yes      | Default MCP server URL. Used when no per-embed URL is provided or the requested URL is not in the allowlist.                |\n| `mcpBearerToken` | `string`                 | No       | Bearer token for the default MCP server.                                                                                    |\n| `model`          | `string`                 | No       | Claude model ID. Takes precedence over any model sent by the widget. Defaults to `claude-sonnet-4-5`.                       |\n| `systemPrompt`   | `string`                 | No       | Operator system prompt. Takes precedence over any system prompt sent by the widget.                                         |\n| `temperature`    | `number`                 | No       | Model temperature (0–1). Takes precedence over any temperature sent by the widget.                                          |\n| `mcpCredentials` | `Record<string, string>` | No       | Allowlist of additional MCP server URLs → bearer tokens. Enables per-embed MCP routing. Credentials never leave the server. |\n\n#### Precedence rules\n\nFor `systemPrompt`, `model`, `temperature`, and `mcpServerUrl`, the server-side value **always takes precedence** over what the widget sends. The resolution order is:\n\n```\nChatHandlerConfig value  →  widget config value  →  built-in default\n```\n\n#### Multi-context deployments\n\nA single server can serve multiple embeds pointing at different MCP servers:\n\n```ts\ncreateChatHandler({\n  apiKey: process.env.ANTHROPIC_API_KEY!,\n  mcpServerUrl: process.env.MCP_SERVER_URL!, // default fallback\n  mcpBearerToken: process.env.MCP_BEARER_TOKEN,\n  mcpCredentials: {\n    \"https://mcp.acme.com/hr\": process.env.MCP_HR_TOKEN,\n    \"https://mcp.acme.com/it\": process.env.MCP_IT_TOKEN,\n  },\n});\n```\n\nEach embed specifies which server it wants via `config.mcpServerUrl`. Bearer tokens are looked up server-side — they are never exposed to the browser.\n\n---\n\n## Examples\n\n### Minimal embed\n\n```tsx\n<Widget config={{ systemPrompt: \"You are a helpful assistant.\" }} />\n```\n\n### Whitelabeled embed\n\n```tsx\n<Widget\n  config={{\n    title: \"Ask Acme\",\n    logo: \"https://acme.com/logo.svg\",\n    theme: {\n      primary: \"#003366\",\n      accent: \"#93c5fd\",\n      userBubble: \"#dbeafe\",\n      surface: \"#f8fafc\",\n      content: \"#ffffff\",\n      text: \"#334155\",\n      fontFamily: \"'Helvetica Neue', sans-serif\",\n    },\n  }}\n/>\n```\n\n### Fully configured embed\n\n```tsx\n<Widget\n  config={{\n    endpoint: \"https://api.acme.com/chat\",\n    systemPrompt: \"You are an HR assistant for Acme Corp.\",\n    mcpServerUrl: \"https://mcp.acme.com/hr\",\n    model: \"claude-opus-4-5\",\n    temperature: 0.3,\n    title: \"Ask HR\",\n    welcomeHeading: \"How can we help?\",\n    placeholder: \"Ask an HR question...\",\n    position: \"bottom-left\",\n    persist: true,\n    user: { id: currentUser.id, name: currentUser.name },\n  }}\n  onMessage={({ content }) => analytics.track(\"chat_message\", { content })}\n  onOpenChange={(open) => setHelpOpen(open)}\n/>\n```\n\n### Custom empty state (children)\n\n```tsx\n<Widget config={{ title: \"Support\", placeholder: \"Describe your issue...\" }}>\n  <div>\n    <h3>How can we help?</h3>\n    <button onClick={() => sendMessage(\"Reset my password\")}>\n      Reset my password\n    </button>\n    <button onClick={() => sendMessage(\"Billing question\")}>\n      Billing question\n    </button>\n  </div>\n</Widget>\n```\n\n---\n\n## Local Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Copy and fill in environment variables\ncp .env.example .env\n\n# Start the Vite dev server (port 3003) + Express API server (port 3006)\npnpm run dev\n```\n\nThe Vite dev server proxies `/api/*` to `http://localhost:3006`.\n\n```bash\npnpm run lint          # type-check without emitting\npnpm run build         # build the React library (dist/)\npnpm run build:embed   # build the standalone IIFE script (dist/embed.js)\n```\n\n---\n\n## Publishing\n\n```bash\npnpm version patch   # bug fixes (0.1.x)\npnpm version minor   # new features (0.x.0)\npnpm version major   # breaking changes (x.0.0)\n\npnpm publish\n```\n","readmeFilename":"README.md"}