{"_id":"@bandofai/unido-dev","_rev":"17-eeeec1314d6087ed2fdc1af0f4267dda","name":"@bandofai/unido-dev","dist-tags":{"latest":"0.1.17"},"versions":{"0.1.1":{"name":"@bandofai/unido-dev","version":"0.1.1","_id":"@bandofai/unido-dev@0.1.1","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"dist":{"shasum":"55d7f13f332f359df8216611dc364b59ebaca710","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.1.tgz","fileCount":17,"integrity":"sha512-UmojvrHthXOm3DyCKA0bRBS4rud8+ljeGv6l4Mzv2MKCLvtbuWxehe2p+wKQVNGygCEAmYOUFvwS0mqbdG4kXA==","signatures":[{"sig":"MEQCIChdFWsp65e1ofEGnElZRqWhAPYji4AJ2qQ9TX8kfcBOAiB2eiPXOMQ4uKpBSp06Fw85KK5lTuNsXqyqdB/7kh79NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30155},"main":"./dist/index.js","type":"module","_from":"file:bandofai-unido-dev-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","type-check":"tsc --noEmit"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"_resolved":"/private/var/folders/1v/n7bpr6hx7v5fqpt4pbxx55j00000gp/T/86b2ec3cf524794617b5316a58d591e8/bandofai-unido-dev-0.1.1.tgz","_integrity":"sha512-UmojvrHthXOm3DyCKA0bRBS4rud8+ljeGv6l4Mzv2MKCLvtbuWxehe2p+wKQVNGygCEAmYOUFvwS0mqbdG4kXA==","_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"0.1.4","@vitejs/plugin-react":"^4.3.4","@bandofai/unido-provider-base":"0.1.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.1_1760618498058_0.1119146380714573","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bandofai/unido-dev","version":"0.1.2","_id":"@bandofai/unido-dev@0.1.2","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"dist":{"shasum":"9062c4ddf0ccf30c5a0584574c22b12b860526aa","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.2.tgz","fileCount":17,"integrity":"sha512-wttWusyrU4YHkIX75xuvGgRpVVNaKTP2OiGskYvHXNOLBdpwig/ySVtJVPYLt1Y3iCH2x033m4XFqisSFLANoQ==","signatures":[{"sig":"MEYCIQDyjIQKfbYptQetluPPTSwDVa/7SHfH7kF0owieX6EApQIhAMYH2xYwnN2VQJbTeJu5e+BPP+BA8CUmzd5LMrjsHpqA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8ae0ea055b8f3171be50a641d28981c37c9cdb5e","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","type-check":"tsc --noEmit"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"workspace:*","@vitejs/plugin-react":"^4.3.4","@bandofai/unido-provider-base":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.2_1760622430903_0.7211604286360531","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bandofai/unido-dev","version":"0.1.3","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.3","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"3f8f1351688dce292e7f20cb3ec6432bd713c235","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.3.tgz","fileCount":17,"integrity":"sha512-mXlIh/+6ilrWfeJXo3B3aVvmO6VO8Rww2mntKTRmXqyxc78zpCVxpdaF3J325TuSVLzo8SRm1L9CLVd7wJLn2Q==","signatures":[{"sig":"MEUCIHDL8kxQz4LAxZYS4OIHU6C5vlyfW/HEzI5KrtemzSmfAiEA7ar19bR7CdDHlwDgJLrZtMLlehDH9GIpEo3ksCNVIoA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31201},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8ae0ea055b8f3171be50a641d28981c37c9cdb5e","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","type-check":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.3_1760622604904_0.4554116612658565","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bandofai/unido-dev","version":"0.1.4","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.4","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"05c3326ec143290843e4e24bd2e18508c22b1548","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.4.tgz","fileCount":17,"integrity":"sha512-elmValBYa1ZSGR8QDzMI31oHnAzEIS2XTRhi7AdwilrAOaomf8mmJ4M5SKY744LWvq3Q/jUU7iMaUavhbm7cDg==","signatures":[{"sig":"MEUCIQDGi74hxlWCM5R9wxW65Wqj3GtxZcKZQFnKCcr6Veq5vQIgNEBqB4sNT+9VXrBP1YVMWyuwwpxu2asxLtTO6zLDZ7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31201},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1051e988b0f59b9bfd164a4c95ad936b7b8bac7a","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","type-check":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.4_1760623160789_0.6400160130667456","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bandofai/unido-dev","version":"0.1.5","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.5","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"c502be91c1d4a34f0bbac04aa66d922be342103d","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.5.tgz","fileCount":17,"integrity":"sha512-VIgRIycz1k5ki1d5UE53kaMxSfYFwlUFv2yIB7gtrHtO0zSi2oAN+OzRPZRmfN+idtZy1ATxgR9BOzGSNlWAQQ==","signatures":[{"sig":"MEUCICPcoQDpLamR8yX/8rUB/T7ntZCRYf/wD1xMfPtPRJ5UAiEA3dBxbilq1BZj/mEsaCAff7atcNaElHfOq9ooSbyUbWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31579},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1a36d37f4f1b6f52ba850619554870b35198010d","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","type-check":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.5_1760623462125_0.15159130055769787","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bandofai/unido-dev","version":"0.1.6","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.6","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"64249fbd7f2e6dcd40c351d9ec336469c6d48941","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.6.tgz","fileCount":17,"integrity":"sha512-igRe/7MfeR2XWEqINBegH3S/GqBUiFqhGZ7rBhKObucApPwfplwDB+pUNPReNnJf32hUorI7StZFs2ru5zC3Iw==","signatures":[{"sig":"MEUCIQDwWbuGxnVJKbnd0QUFR1bDhoBI7QwTYm6O6J+csNs48gIgIba882msENfZjmUmaMy9l3bXwJDwvEYQLPHubxr5JcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31579},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5f5340b6f6079c70114ace0b2810a6406c3ea9dd","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","type-check":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.6_1760624926706_0.16519215254761033","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bandofai/unido-dev","version":"0.1.7","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.7","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"2f82ded0eefba08762f4ffa9f69b3b1b6952d187","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.7.tgz","fileCount":82,"integrity":"sha512-8qNgsquGhfAuCdsI57m91U3RAFCc8XvUHZq7pkmVyhV+m5g2gsNNpspb+Yi8PAmTgwcm2XMQ8v5jdCIe7pU2Tw==","signatures":[{"sig":"MEQCIF+c9Mif38WZ8BaBcvbGeVxKfHxqG4LqMTfleQVPmCgVAiABHYs280qsSJAl7UtrgzYpXWy0PgCaC82MYtWjgX9nCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296659},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"50ac5d13066258a14435476db3c158ad50d868ad","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.7_1761676440666_0.29428578433279573","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bandofai/unido-dev","version":"0.1.8","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.8","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"b43cf7a3580b613ade415ad52a63c9e7135a741f","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.8.tgz","fileCount":82,"integrity":"sha512-Yu2naDqp3MGiW96r4W/1kcV3DjowDDPIavAW66ESyOq6ySSpxFFSuG1MYdQplfSfF8fLjkINjBtH8BIZVDY7+w==","signatures":[{"sig":"MEQCIC7oLxLd5LpqR3BTdxQHGPVhC7CtlUX22Rn7uab84AamAiBUNJOPcCp7EZ9EMqNJK5Jrjwqp7nYjSb0UDq3dEenRQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297367},"main":"./dist/index.js","type":"module","_from":"file:bandofai-unido-dev-0.1.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"_resolved":"/private/var/folders/1v/n7bpr6hx7v5fqpt4pbxx55j00000gp/T/435882f5951a458da8d6b0f52240ca5f/bandofai-unido-dev-0.1.8.tgz","_integrity":"sha512-Yu2naDqp3MGiW96r4W/1kcV3DjowDDPIavAW66ESyOq6ySSpxFFSuG1MYdQplfSfF8fLjkINjBtH8BIZVDY7+w==","repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.8_1761677528018_0.19504841935654493","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@bandofai/unido-dev","version":"0.1.9","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.9","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"eeadf151946de2e7e5d8f2dc9815fdb2c256db2a","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.9.tgz","fileCount":82,"integrity":"sha512-trg0nFVUD0VY3UqK5q2jLpN1h2TqxxOoG++B2pLfBv4D9r8T2dG5hsZfTyhnRPJbm8BPyJhQjrzHqUDOT0Ifcw==","signatures":[{"sig":"MEQCIGqQnaLqbHM54Wt5u/1iEYWDl3gpsBsnV04I9uyys9XaAiAzgdHK/8HftD7c5tIQCHqj4ATLjhW6NWScLr3YKnINkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310607},"main":"./dist/index.js","type":"module","_from":"file:bandofai-unido-dev-0.1.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"_resolved":"/private/var/folders/1v/n7bpr6hx7v5fqpt4pbxx55j00000gp/T/f99d2350a10128c49ba41e21f9aa0f0c/bandofai-unido-dev-0.1.9.tgz","_integrity":"sha512-trg0nFVUD0VY3UqK5q2jLpN1h2TqxxOoG++B2pLfBv4D9r8T2dG5hsZfTyhnRPJbm8BPyJhQjrzHqUDOT0Ifcw==","repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.9_1761691014298_0.17673363078632076","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@bandofai/unido-dev","version":"0.1.10","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.10","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"23a89162a359d46dde5cfe1d53d4ba1ddb51fca6","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.10.tgz","fileCount":82,"integrity":"sha512-MtJCJW40jvJmPEPzimQPJTRwC8fqQbdQ7YHxh1rVu2VFKt1lVcY6F4SH9LMVCCBFJ1tKaIq5e9shJB3SZAH3tw==","signatures":[{"sig":"MEUCIAlgVNoJmF98/ctn/lewl2hQJk89Vi9ih1vjOD/Q53VwAiEAl96P57+uRL4cvr2xuAcwc2sJrm4HsEHisCgWZM+AAGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311228},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"gitHead":"1a135a5eedae32b065a57394755165e8459f896c","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.10_1761691779250_0.17352650742230802","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@bandofai/unido-dev","version":"0.1.11","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.11","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"eca081873926f088cebf1c6daa7cbc901cd87351","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.11.tgz","fileCount":82,"integrity":"sha512-1qHJ2VgZrOoac0xrG1M2oT4IzY+S+sseLYgUi286RrelqFCDKhvMIzp4Y1J14GvFUVL5bc76CzI4S3A/ITKuSQ==","signatures":[{"sig":"MEUCICM0X7yZiLEVE0kIqA6AWoTBcpop8dCNVGmM4ft/u2VhAiEA+ktDrAG4yRgLtnDINXulE0YQp+ovtkyL6qlPEVrIWbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311187},"main":"./dist/index.js","type":"module","_from":"file:bandofai-unido-dev-0.1.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"_resolved":"/private/var/folders/1v/n7bpr6hx7v5fqpt4pbxx55j00000gp/T/96eed8f7d0c8fddc8393cffc8a7ac3d8/bandofai-unido-dev-0.1.11.tgz","_integrity":"sha512-1qHJ2VgZrOoac0xrG1M2oT4IzY+S+sseLYgUi286RrelqFCDKhvMIzp4Y1J14GvFUVL5bc76CzI4S3A/ITKuSQ==","repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.11_1761730005870_0.09781091738568826","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@bandofai/unido-dev","version":"0.1.12","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.12","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"d78fe08aedd286d1ad271d547fdb1c11b9017454","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.12.tgz","fileCount":86,"integrity":"sha512-qTNL3cg1kPDcqMEfUnegyYv6FRj5dtcQMbWhfMC/WU/BL6Lc80Qw8gDORT/5HI2XmaNKXqF/wer7tvNF0nkpaA==","signatures":[{"sig":"MEUCIQDQL+gJyEieP+LwqzTIBNlzNYEjfVtaLpnXzlHqy7PqTQIgYAzGgTSH7YTePsSaR54lbCBKfAcvGPYVvZmTnpcsWTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320752},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"gitHead":"92751ffc080545fa85353305452e7fab7cfa964c","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.12_1761817809875_0.8140293956376157","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@bandofai/unido-dev","version":"0.1.13","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.13","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"6de041f219eba05b40bd4dbb2506127b123b8a76","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.13.tgz","fileCount":86,"integrity":"sha512-Ilcu2KZwFBEAd/7jhDtqaak5nTmqE0AjOgI9/ABPSAyuVuijjsyIb1PueXXrU6kkCSZ+bZC3+XEC6JC+/oqksw==","signatures":[{"sig":"MEUCIQCTxzeZOS7Fs+gRFMYP+tPNwztrf5zeEx5bi5J/iPd3SgIgeTkAfbvfdOFgj937bljC0yIyXNaJOJR/TajzfeZKnTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320864},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./utils/toast":{"types":"./dist/utils/toast.d.ts","import":"./dist/utils/toast.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"gitHead":"1d99d6ab99f2647fe5e39d17e7a50d9880f70560","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.13_1761818077375_0.5706228241869502","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@bandofai/unido-dev","version":"0.1.14","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.14","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"613c4bb7824ff78b266bd579c9c9d795c2638716","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.14.tgz","fileCount":86,"integrity":"sha512-SEb2Kbl8oTNpq75uBAfC+bZt4/U4T253zl4q8qc+KPzfv+kT7SpXFA3Ax5kzLX5Be83nuzLUKlBv7GEm33phgg==","signatures":[{"sig":"MEUCIQCBXPuEhY3PXeE9aeW33YVje9yU8GUetY8Q2Q8H+fkYlwIgLUnrk9nxqHi6gUXIcG1Ruf2y96xZUkwtdOMxFxv47is=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321522},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./utils/toast":{"types":"./dist/utils/toast.d.ts","import":"./dist/utils/toast.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"gitHead":"152a4537bd37d6afc4c30de49f3b1755601fc713","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.14_1761820767924_0.8742650954868196","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@bandofai/unido-dev","version":"0.1.15","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.15","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"54e723741d2f85b32db5550eb90f8c43a62f9bf7","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.15.tgz","fileCount":86,"integrity":"sha512-LnboGSvRv86LKehg1FYYuVI1iPWXp+R9lnI6qzp0WQsW17VStVqemMobku3mOtTCqt+Vi8thnXjdA6ZWrAs8pw==","signatures":[{"sig":"MEUCIQCAJwCtPmWJOkI2/T3vR5zJcMocL2T5pO8nSjvyyuyWBAIgRXErAJYtZ8yDRwOFErCcr0JT7soO1+kcf2Sflqo5QHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326038},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./utils/toast":{"types":"./dist/utils/toast.d.ts","import":"./dist/utils/toast.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"gitHead":"dd341b6008bd6c0cf67bf52c4a1b5d2d15c5f8f0","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.15_1761840150312_0.6035115215073819","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@bandofai/unido-dev","version":"0.1.16","keywords":["unido","dev","development","widget","server"],"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","_id":"@bandofai/unido-dev@0.1.16","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"homepage":"https://github.com/bandofai/unido#readme","bugs":{"url":"https://github.com/bandofai/unido/issues"},"dist":{"shasum":"79244e7a40d497a6f8e99d032ff89044e33727c4","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.16.tgz","fileCount":86,"integrity":"sha512-F9plOearwiVpkOwy55nvTdC5qJZiklghDidMG6I6gNwpq1bYARqli36eVrQDj0lPLK5IIUXBp00DB/s4E4/TlQ==","signatures":[{"sig":"MEYCIQDJsrxJD1G1ezMxF9ClsuouyVAKOhXWixQ/8AOUy9ssegIhAOkbbyRPJ+uCDiKfv92XAGYN7D2UCTXZ0V8Zs64G3F37","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326172},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./utils/toast":{"types":"./dist/utils/toast.d.ts","import":"./dist/utils/toast.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"}},"gitHead":"31613e2eb999e3718d8a1c37d9667d6d26b93a30","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist *.tsbuildinfo","test:ui":"vitest --ui","test:e2e":"playwright test","test:watch":"vitest","type-check":"tsc --noEmit","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build","test:e2e:debug":"playwright test --debug"},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"repository":{"url":"git+https://github.com/bandofai/unido.git","type":"git","directory":"packages/dev"},"_npmVersion":"11.6.0","description":"Unido Dev - Development server and tools for widget development","directories":{},"_nodeVersion":"24.8.0","dependencies":{"vite":"^6.0.5","chokidar":"^4.0.3","@bandofai/unido-core":"^0.1.6","@vitejs/plugin-react":"^4.3.4","@modelcontextprotocol/sdk":"^1.0.6","@bandofai/unido-provider-base":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","vitest":"^2.1.8","happy-dom":"^15.11.7","react-dom":"^18.3.1","@vitest/ui":"^2.1.8","typescript":"^5.7.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@playwright/test":"^1.49.1","@types/react-dom":"^18.3.5","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/unido-dev_0.1.16_1761842216013_0.5919375361617771","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@bandofai/unido-dev","version":"0.1.17","description":"Unido Dev - Development server and tools for widget development","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp-client":{"types":"./dist/mcp-client.d.ts","import":"./dist/mcp-client.js"},"./components/WidgetIframeRenderer":{"types":"./dist/components/WidgetIframeRenderer.d.ts","import":"./dist/components/WidgetIframeRenderer.js"},"./components/McpStatus":{"types":"./dist/components/McpStatus.d.ts","import":"./dist/components/McpStatus.js"},"./components/ToolCallPanel":{"types":"./dist/components/ToolCallPanel.d.ts","import":"./dist/components/ToolCallPanel.js"},"./components/LogPanel":{"types":"./dist/components/LogPanel.d.ts","import":"./dist/components/LogPanel.js"},"./utils/toast":{"types":"./dist/utils/toast.d.ts","import":"./dist/utils/toast.js"}},"repository":{"type":"git","url":"git+https://github.com/bandofai/unido.git","directory":"packages/dev"},"bugs":{"url":"https://github.com/bandofai/unido/issues"},"homepage":"https://github.com/bandofai/unido#readme","author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","keywords":["unido","dev","development","widget","server"],"dependencies":{"@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7","@modelcontextprotocol/sdk":"^1.0.6","vite":"^6.0.5","@vitejs/plugin-react":"^4.3.4","chokidar":"^4.0.3"},"peerDependencies":{"@bandofai/unido-core":"^0.1.6","@bandofai/unido-provider-base":"^0.1.7","react":"^18.0.0","react-dom":"^18.0.0"},"devDependencies":{"@playwright/test":"^1.49.1","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5","@vitest/ui":"^2.1.8","happy-dom":"^15.11.7","react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.7.3","vitest":"^2.1.8"},"engines":{"node":">=18.0.0"},"scripts":{"build":"tsc","dev":"tsc --watch","type-check":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui","test:coverage":"vitest run --coverage","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","test:e2e:debug":"playwright test --debug","clean":"rm -rf dist *.tsbuildinfo"},"_id":"@bandofai/unido-dev@0.1.17","_integrity":"sha512-j9hGsqDgNu/tmreJQcqvl2tb2tkIjNypPTCfUcr/5c07y1xzIp9RtSiOiGbGMNyYTSi4PoE/4nNBLhMqTOGFaQ==","_resolved":"/private/var/folders/1v/n7bpr6hx7v5fqpt4pbxx55j00000gp/T/40959262b2af5c667243ce445c569828/bandofai-unido-dev-0.1.17.tgz","_from":"file:bandofai-unido-dev-0.1.17.tgz","_nodeVersion":"24.8.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-j9hGsqDgNu/tmreJQcqvl2tb2tkIjNypPTCfUcr/5c07y1xzIp9RtSiOiGbGMNyYTSi4PoE/4nNBLhMqTOGFaQ==","shasum":"1a5a75c63352a730664cd227ee3c03ec0f57a3b5","tarball":"https://registry.npmjs.org/@bandofai/unido-dev/-/unido-dev-0.1.17.tgz","fileCount":86,"unpackedSize":326131,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC/Tf1CE/aBQ4Z7rqbfKj+6BSP9tf7rvH1OPRwa5Hva5AIgME9hZ9m3ezugVEKXvBjHDehkk/tFZ/igHhphs4gYAoI="}]},"_npmUser":{"name":"bandofai","email":"it@bandofai.com"},"directories":{},"maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unido-dev_0.1.17_1763397255882_0.38913512660867733"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-16T12:41:37.968Z","modified":"2025-11-17T16:34:16.223Z","0.1.1":"2025-10-16T12:41:38.245Z","0.1.2":"2025-10-16T13:47:11.089Z","0.1.3":"2025-10-16T13:50:05.134Z","0.1.4":"2025-10-16T13:59:20.984Z","0.1.5":"2025-10-16T14:04:22.324Z","0.1.6":"2025-10-16T14:28:46.892Z","0.1.7":"2025-10-28T18:34:00.856Z","0.1.8":"2025-10-28T18:52:08.208Z","0.1.9":"2025-10-28T22:36:54.537Z","0.1.10":"2025-10-28T22:49:39.453Z","0.1.11":"2025-10-29T09:26:46.082Z","0.1.12":"2025-10-30T09:50:10.087Z","0.1.13":"2025-10-30T09:54:37.560Z","0.1.14":"2025-10-30T10:39:28.108Z","0.1.15":"2025-10-30T16:02:30.541Z","0.1.16":"2025-10-30T16:36:56.230Z","0.1.17":"2025-11-17T16:34:16.046Z"},"bugs":{"url":"https://github.com/bandofai/unido/issues"},"author":{"name":"Tomas Kavka","email":"iam@tomaskavka.cz"},"license":"MIT","homepage":"https://github.com/bandofai/unido#readme","keywords":["unido","dev","development","widget","server"],"repository":{"type":"git","url":"git+https://github.com/bandofai/unido.git","directory":"packages/dev"},"description":"Unido Dev - Development server and tools for widget development","maintainers":[{"name":"bandofai","email":"it@bandofai.com"}],"readme":"# @bandofai/unido-dev\n\n**Unido Development Utilities & Widget Preview**\n\nDevelopment tools for building and testing Unido widgets with full ChatGPT environment emulation.\n\n---\n\n## Features\n\n### 🎨 Widget Preview Application\nInteractive preview environment with two rendering modes:\n- **Direct Load**: Fast React component rendering for rapid development\n- **MCP Load**: Full ChatGPT environment emulation for integration testing\n\n### 🔌 MCP Client\nProduction-ready Model Context Protocol client with:\n- SSE (Server-Sent Events) transport\n- Auto-reconnection with exponential backoff\n- Widget loading and tool call execution\n- Connection state management\n\n### 🖼️ Widget Iframe Renderer\nReact component for rendering widgets in isolated iframes with:\n- Complete `window.openai` API emulation\n- Tool call handling\n- State persistence\n- Performance monitoring\n\n### 📊 Development UI Components\n- **McpStatus**: Real-time connection status indicator\n- **ToolCallPanel**: Interactive tool testing panel\n- **LogPanel**: Real-time logging with filtering\n\n---\n\n## Installation\n\n```bash\n# Install in your Unido project\npnpm add -D @bandofai/unido-dev\n\n# Or use within the monorepo\ncd packages/dev\npnpm install\n```\n\n---\n\n## Quick Start\n\n### Starting the Preview App\n\n**1. Start your Unido MCP server:**\n```bash\ncd your-unido-app\npnpm run dev\n\n# Server should start at http://localhost:3000\n```\n\n**2. Start the widget preview:**\n```bash\ncd packages/dev\npnpm run dev\n\n# Opens browser at http://localhost:5173\n```\n\n**3. Use the preview:**\n- Select a widget from the sidebar\n- Choose \"Direct Load\" for fast development\n- Choose \"MCP Load\" for full testing\n- Edit props in the Prop Editor\n- See live preview\n\n---\n\n## Usage\n\n### Using the MCP Client\n\n```typescript\nimport { McpWidgetClient } from '@bandofai/unido-dev';\n\n// Create client\nconst client = new McpWidgetClient({\n  serverUrl: 'http://localhost:3000',\n  autoReconnect: true,\n  maxReconnectAttempts: 5,\n  logger: (level, message, data) => {\n    console.log(`[${level}] ${message}`, data);\n  },\n});\n\n// Connect to server\nawait client.connect();\n\n// List available widgets\nconst widgets = await client.listWidgets();\nconsole.log(widgets);\n// [\n//   {\n//     type: 'weather-card',\n//     title: 'Weather Card',\n//     uri: 'ui://widget/weather-card.html'\n//   }\n// ]\n\n// Load widget HTML\nconst html = await client.loadWidget('weather-card');\n\n// Call a tool\nconst result = await client.callTool('get_weather', {\n  city: 'San Francisco'\n});\n\n// Disconnect\nclient.disconnect();\n```\n\n### Using the Widget Iframe Renderer\n\n```typescript\nimport { WidgetIframeRenderer } from '@bandofai/unido-dev';\nimport { McpWidgetClient } from '@bandofai/unido-dev';\n\nfunction App() {\n  const [client] = useState(() => new McpWidgetClient({\n    serverUrl: 'http://localhost:3000',\n  }));\n\n  useEffect(() => {\n    client.connect();\n    return () => client.disconnect();\n  }, []);\n\n  return (\n    <WidgetIframeRenderer\n      mcpClient={client}\n      widgetType=\"weather-card\"\n      toolOutput={{ city: 'San Francisco', temperature: 72 }}\n      displayMode=\"inline\"\n      theme=\"light\"\n      onLoad={() => console.log('Widget loaded')}\n      onError={(error) => console.error('Widget error:', error)}\n      onToolCall={(name, args, result) => {\n        console.log('Tool called:', name, args, result);\n      }}\n    />\n  );\n}\n```\n\n### Using UI Components\n\n```typescript\nimport { McpStatus, ToolCallPanel, LogPanel } from '@bandofai/unido-dev';\nimport type { LogEntry } from '@bandofai/unido-dev';\n\nfunction DevTools() {\n  const [client] = useState(() => new McpWidgetClient({\n    serverUrl: 'http://localhost:3000',\n  }));\n  const [logs, setLogs] = useState<LogEntry[]>([]);\n\n  const addLog = (level: LogEntry['level'], message: string, data?: unknown) => {\n    setLogs(prev => [...prev, {\n      id: `${Date.now()}-${Math.random()}`,\n      timestamp: Date.now(),\n      level,\n      message,\n      data,\n    }]);\n  };\n\n  return (\n    <div>\n      {/* Connection Status */}\n      <McpStatus\n        client={client}\n        onReconnect={() => client.connect()}\n        showDetails={true}\n      />\n\n      {/* Tool Testing */}\n      <ToolCallPanel\n        client={client}\n        onToolCall={(name, args, result) => {\n          addLog('info', `Tool ${name} called`, { args, result });\n        }}\n        onError={(error) => addLog('error', 'Tool error', error)}\n      />\n\n      {/* Logs */}\n      <LogPanel\n        logs={logs}\n        onClear={() => setLogs([])}\n        maxLogs={200}\n      />\n    </div>\n  );\n}\n```\n\n---\n\n## API Reference\n\n### McpWidgetClient\n\n**Constructor Options:**\n\n```typescript\ninterface McpClientOptions {\n  serverUrl: string;              // MCP server URL (required)\n  timeout?: number;               // Connection timeout (default: 10000ms)\n  autoReconnect?: boolean;        // Auto-reconnect on disconnect (default: true)\n  maxReconnectAttempts?: number;  // Max reconnection attempts (default: 3)\n  reconnectDelay?: number;        // Delay between reconnects (default: 1000ms)\n  logger?: LoggerFunction;        // Custom logger callback\n}\n```\n\n**Methods:**\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `connect()` | `Promise<void>` | Connect to MCP server |\n| `disconnect()` | `void` | Disconnect from server |\n| `isConnected()` | `boolean` | Check connection status |\n| `getConnectionState()` | `ConnectionState` | Get detailed connection state |\n| `listWidgets()` | `Promise<WidgetInfo[]>` | List available widgets |\n| `loadWidget(type)` | `Promise<string>` | Load widget HTML |\n| `callTool(name, args)` | `Promise<ToolCallResult>` | Execute MCP tool |\n\n### WindowOpenAIEmulator\n\n```typescript\ninterface WindowOpenAIEmulatorOptions {\n  toolInput?: Record<string, any>;           // Tool input parameters\n  toolOutput?: Record<string, any>;          // Tool output data\n  displayMode?: 'inline' | 'fullscreen' | 'sidebar';\n  theme?: 'light' | 'dark';\n  onCallTool?: (name: string, args: unknown) => Promise<{ result: unknown }>;\n  onSetWidgetState?: (state: Record<string, any>) => void;\n  onSetDisplayMode?: (mode: DisplayMode) => void;\n}\n```\n\n**Methods:**\n\n| Method | Description |\n|--------|-------------|\n| `injectIntoWindow(window)` | Inject window.openai API into iframe |\n| `getAPI()` | Get window.openai API object |\n| `updateToolOutput(output)` | Update tool output data |\n| `updateDisplayMode(mode)` | Update display mode |\n| `updateTheme(theme)` | Update theme |\n\n### WidgetIframeRenderer Props\n\n```typescript\ninterface WidgetIframeRendererProps {\n  mcpClient: McpWidgetClient;           // MCP client instance (required)\n  widgetType: string;                   // Widget type identifier (required)\n  toolInput?: Record<string, any>;      // Tool input parameters\n  toolOutput?: Record<string, any>;     // Tool output data\n  displayMode?: DisplayMode;            // Display mode (default: 'inline')\n  theme?: Theme;                        // UI theme (default: 'light')\n  loadingTimeout?: number;              // Load timeout (default: 30000ms)\n  validateHtml?: boolean;               // Validate HTML (default: true)\n  onLoad?: () => void;                  // Load callback\n  onError?: (error: Error) => void;     // Error callback\n  onToolCall?: (name: string, args: unknown, result: unknown) => void;\n  onStateChange?: (state: Record<string, any>) => void;\n  onPerformanceMetric?: (metric: PerformanceMetric) => void;\n}\n```\n\n### UI Component Props\n\n**McpStatus:**\n```typescript\ninterface McpStatusProps {\n  client: McpWidgetClient;         // MCP client instance\n  onReconnect?: () => void;        // Reconnect callback\n  showDetails?: boolean;           // Show connection details (default: false)\n  style?: React.CSSProperties;     // Custom styles\n  className?: string;              // CSS class name\n}\n```\n\n**ToolCallPanel:**\n```typescript\ninterface ToolCallPanelProps {\n  client: McpWidgetClient;         // MCP client instance\n  onToolCall?: (name: string, args: unknown, result: unknown) => void;\n  onError?: (error: Error) => void;\n  style?: React.CSSProperties;\n  className?: string;\n}\n```\n\n**LogPanel:**\n```typescript\ninterface LogPanelProps {\n  logs: LogEntry[];                // Log entries\n  onClear?: () => void;            // Clear logs callback\n  maxLogs?: number;                // Max logs to display (default: 100)\n  style?: React.CSSProperties;\n  className?: string;\n}\n\ninterface LogEntry {\n  id: string;\n  timestamp: number;\n  level: 'debug' | 'info' | 'warn' | 'error';\n  message: string;\n  data?: unknown;\n}\n```\n\n---\n\n## Configuration\n\n### Preview App Configuration\n\nEdit `packages/dev/public/src/preview-app.tsx`:\n\n```typescript\n// Change default MCP server URL\nconst [mcpClient] = useState(() => new McpWidgetClient({\n  serverUrl: 'http://localhost:3001',  // Custom port\n}));\n\n// Change default mode\nconst [loadMode, setLoadMode] = useState<LoadMode>('mcp');  // Default to MCP\n\n// Change log limit\n<LogPanel logs={logs} maxLogs={500} />\n```\n\n### Environment Variables\n\nCreate `.env` in `packages/dev/`:\n\n```bash\nVITE_MCP_SERVER_URL=http://localhost:3000\nVITE_DEFAULT_MODE=direct\nVITE_LOG_LEVEL=debug\n```\n\n---\n\n## Development\n\n### Project Structure\n\n```\npackages/dev/\n├── src/\n│   ├── components/\n│   │   ├── McpStatus.tsx          # Connection status indicator\n│   │   ├── ToolCallPanel.tsx      # Tool testing panel\n│   │   ├── LogPanel.tsx           # Log display\n│   │   └── WidgetIframeRenderer.tsx # Widget renderer\n│   ├── types/\n│   │   └── mcp-types.ts           # TypeScript types\n│   ├── mcp-client.ts              # MCP client\n│   ├── window-openai-emulator.ts  # ChatGPT API emulator\n│   └── index.ts                   # Main exports\n├── public/\n│   ├── src/\n│   │   ├── preview-app.tsx        # Preview application\n│   │   ├── prop-editor.tsx        # Props editor\n│   │   └── error-boundary.tsx     # Error boundary\n│   └── index.html                 # HTML template\n├── package.json\n├── tsconfig.json\n└── vite.config.ts                 # Vite configuration\n```\n\n### Building\n\n```bash\n# Build TypeScript\npnpm run build\n\n# Watch mode\npnpm run dev\n\n# Type checking\npnpm run type-check\n\n# Linting\npnpm run lint\n```\n\n### Testing\n\n```bash\n# Unit tests (TODO)\npnpm run test\n\n# Manual testing with preview app\npnpm run dev\n```\n\n---\n\n## Examples\n\n### Complete Example App\n\n```typescript\n// app.ts - Your Unido app\nimport { createApp } from '@bandofai/unido-core';\nimport { openAI } from '@bandofai/unido-provider-openai';\nimport { z } from 'zod';\n\nconst app = createApp({\n  providers: {\n    openai: openAI({ port: 3000 }),\n  },\n});\n\n// Register component\napp.component({\n  type: 'weather-card',\n  title: 'Weather Card',\n  description: 'Display weather information',\n  sourcePath: './components/WeatherCard.tsx',\n});\n\n// Register tool\napp.tool('get_weather', {\n  description: 'Get weather for a city',\n  input: z.object({\n    city: z.string().describe('City name'),\n  }),\n  handler: async ({ city }) => {\n    // Fetch weather data\n    return {\n      content: [{\n        type: 'text',\n        text: `Weather in ${city}: 72°F, Sunny`,\n      }],\n      component: {\n        type: 'weather-card',\n        props: { city, temperature: 72, condition: 'Sunny' },\n      },\n    };\n  },\n});\n\nawait app.start();\n```\n\n```typescript\n// components/WeatherCard.tsx\nimport React from 'react';\n\ninterface WeatherCardProps {\n  city: string;\n  temperature: number;\n  condition: string;\n}\n\nexport const WeatherCard: React.FC<WeatherCardProps> = ({\n  city,\n  temperature,\n  condition,\n}) => {\n  return (\n    <div style={{ padding: '20px', borderRadius: '8px', background: '#f0f9ff' }}>\n      <h2>{city}</h2>\n      <div style={{ fontSize: '48px', fontWeight: 'bold' }}>\n        {temperature}°F\n      </div>\n      <div style={{ fontSize: '18px', color: '#64748b' }}>\n        {condition}\n      </div>\n    </div>\n  );\n};\n```\n\n**Usage:**\n\n1. Start app: `pnpm run dev` (in app directory)\n2. Start preview: `cd packages/dev && pnpm run dev`\n3. Select \"Weather Card\" widget\n4. Switch between Direct/MCP modes\n5. Edit props to see live updates\n\n---\n\n## Troubleshooting\n\n### Widget Not Loading\n\n**Check:**\n- MCP server is running (`lsof -i :3000`)\n- Connection status shows 🟢 Connected\n- Widget is registered in app\n- Browser console for errors\n\n**Solutions:**\n- Click \"Reconnect\" button\n- Restart MCP server\n- Check server logs\n- Verify widget registration\n\n### Tool Calls Failing\n\n**Check:**\n- Tool is registered in app\n- Arguments match tool schema\n- Tool Call Panel shows available tools\n\n**Solutions:**\n- Test tool in Tool Call Panel first\n- Verify argument types\n- Check server logs for errors\n- Add error handling to tool handler\n\n### More Help\n\nSee full troubleshooting guide: [docs/development/WIDGET_PREVIEW_TROUBLESHOOTING.md](../../docs/development/WIDGET_PREVIEW_TROUBLESHOOTING.md)\n\n---\n\n## Documentation\n\n- **[Widget Preview Guide](../../docs/development/WIDGET_PREVIEW.md)** - Complete documentation\n- **[Troubleshooting](../../docs/development/WIDGET_PREVIEW_TROUBLESHOOTING.md)** - Common issues and solutions\n- **[OpenAI Integration](../../docs/providers/openai/OPENAI_APPS_SDK.md)** - OpenAI-specific documentation\n\n---\n\n## Browser Support\n\n| Browser | Version | Support |\n|---------|---------|---------|\n| Chrome | 90+ | ✅ Full |\n| Firefox | 88+ | ✅ Full |\n| Safari | 14+ | ✅ Full |\n| Edge | 90+ | ✅ Full |\n\nRequires modern ES2020+ support. No IE11 support.\n\n---\n\n## Contributing\n\n### Development Setup\n\n```bash\n# Clone monorepo\ngit clone https://github.com/bandofai/unido.git\ncd unido\n\n# Install dependencies\npnpm install\n\n# Build all packages\npnpm run build\n\n# Start dev server\ncd packages/dev\npnpm run dev\n```\n\n### Adding Features\n\n1. Create feature branch\n2. Make changes\n3. Add tests\n4. Update documentation\n5. Submit PR\n\n---\n\n## License\n\nMIT License - see [LICENSE](../../LICENSE) file for details.\n\n---\n\n## Links\n\n- **Repository**: https://github.com/bandofai/unido\n- **Issues**: https://github.com/bandofai/unido/issues\n- **Discussions**: https://github.com/bandofai/unido/discussions\n- **Changelog**: [CHANGELOG.md](./CHANGELOG.md)\n\n---\n\n**Version**: 0.1.6\n**Last Updated**: October 17, 2025\n","readmeFilename":"README.md"}