{"_id":"@baguette-studios/kernl-ui","_rev":"4-8da1123f82a80f701d043447ede1c18d","name":"@baguette-studios/kernl-ui","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@baguette-studios/kernl-ui","version":"0.1.0","license":"ISC","_id":"@baguette-studios/kernl-ui@0.1.0","maintainers":[{"name":"baguette-studios","email":"astier.jules@gmail.com"}],"homepage":"https://github.com/Jules-Astier/agent-context#readme","bugs":{"url":"https://github.com/Jules-Astier/agent-context/issues"},"dist":{"shasum":"bd8e481cdceba2118f98e95599be1ef5eeb362db","tarball":"https://registry.npmjs.org/@baguette-studios/kernl-ui/-/kernl-ui-0.1.0.tgz","fileCount":60,"integrity":"sha512-Pxrk8RtguRfgPAdNA7YPprjsUZoD8cfsBSHdYpSpVZMP6f2CA0SFOQiEN6zMgZxk9YxTJRgiFBb5McqkI7VKQQ==","signatures":[{"sig":"MEUCIQDLbabzOq/Iv/kxgIChm7DJU9oOBAE0iShEcUHCvJQCwAIgcFIkybvQmqVBq69sefvJTyO0f5yj6Ow1gKXEAjt8Wz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257893},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./theme.css":"./dist/theme.css","./styles.css":"./dist/styles.css","./tailwind.css":"./dist/tailwind.css"},"gitHead":"8a1785f4716e17064cce879e285c95ef7b10d371","private":false,"scripts":{"test":"cd ../.. && vitest run packages/ui/src/index.test.tsx","build":"tsc -p tsconfig.json && cp src/styles.css src/theme.css src/tailwind.css dist/","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"baguette-studios","email":"astier.jules@gmail.com"},"repository":{"url":"git+https://github.com/Jules-Astier/agent-context.git","type":"git","directory":"packages/ui"},"_npmVersion":"10.9.3","description":"React assistant UI kit and devtools for kernl.","directories":{},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"22.19.0","dependencies":{"remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0","@baguette-studios/kernl-react":"0.1.0","@baguette-studios/kernl-ui-core":"0.1.0","@baguette-studios/kernl-telemetry":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.8.3","@types/react":"^18.3.23","@types/react-dom":"^18.3.7"},"peerDependencies":{"react":"^18.3.0 || ^19.0.0","react-dom":"^18.3.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kernl-ui_0.1.0_1784066869634_0.5751957551645002","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@baguette-studios/kernl-ui","version":"0.1.1","license":"ISC","_id":"@baguette-studios/kernl-ui@0.1.1","maintainers":[{"name":"baguette-studios","email":"astier.jules@gmail.com"}],"homepage":"https://github.com/Jules-Astier/agent-context#readme","bugs":{"url":"https://github.com/Jules-Astier/agent-context/issues"},"dist":{"shasum":"18c9d07823cb721a18ce625fabafd8906e559c40","tarball":"https://registry.npmjs.org/@baguette-studios/kernl-ui/-/kernl-ui-0.1.1.tgz","fileCount":63,"integrity":"sha512-sfnD3IjogA5yVbfvK8OA4dOMI1ggT55H8K1UfTstfpTGXbo45EM8Higqj8wo5XAhG+D1VDhEQnq2RrqlCxRsVw==","signatures":[{"sig":"MEUCIQDK5DcE0VyBZ82YoYsh5nlDLpH6ou+ebXWPUrsplB/87AIgc09X2/V5ByWuGPdVIQvBuMLESUmTLg3EKNmWuWVCzLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258817},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.browser.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js","default":"./dist/theme.js"},"./theme.css":"./dist/theme.css","./styles.css":"./dist/styles.css","./tailwind.css":"./dist/tailwind.css"},"gitHead":"8a1785f4716e17064cce879e285c95ef7b10d371","private":false,"scripts":{"test":"cd ../.. && vitest run packages/ui/src/index.test.tsx","build":"tsc -p tsconfig.json && cp src/styles.css src/theme.css src/tailwind.css dist/","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"baguette-studios","email":"astier.jules@gmail.com"},"repository":{"url":"git+https://github.com/Jules-Astier/agent-context.git","type":"git","directory":"packages/ui"},"_npmVersion":"10.9.3","description":"React assistant UI kit and devtools for kernl.","directories":{},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"22.19.0","dependencies":{"remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0","@baguette-studios/kernl-react":"0.1.1","@baguette-studios/kernl-ui-core":"0.1.1","@baguette-studios/kernl-telemetry":"0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.8.3","@types/react":"^18.3.23","@types/react-dom":"^18.3.7"},"peerDependencies":{"react":"^18.3.0 || ^19.0.0","react-dom":"^18.3.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kernl-ui_0.1.1_1784104274187_0.8718638468827631","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@baguette-studios/kernl-ui","version":"0.1.2","license":"ISC","_id":"@baguette-studios/kernl-ui@0.1.2","maintainers":[{"name":"baguette-studios","email":"astier.jules@gmail.com"}],"homepage":"https://github.com/Jules-Astier/agent-context#readme","bugs":{"url":"https://github.com/Jules-Astier/agent-context/issues"},"dist":{"shasum":"8c575ae4b9852b8e368e37148f5938d4f6268ca3","tarball":"https://registry.npmjs.org/@baguette-studios/kernl-ui/-/kernl-ui-0.1.2.tgz","fileCount":63,"integrity":"sha512-WTkHiKc5Ml7ojL2YcYkWSYeJDQ8AZla7Amxx3A6fYqRfNuXUYCf2QzMS+Zpe2meMhHbZo+7gZ0zKLnjYm4dXTA==","signatures":[{"sig":"MEYCIQDpen4KnqpAsPHSOFsun7H5WTX441wjnc4LRogUsKmbgAIhALJXbu/m2AZP/xdBbRWlN3mT6WdTdg7qV9FIXaPTFad7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266413},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/index.browser.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js","default":"./dist/theme.js"},"./theme.css":"./dist/theme.css","./styles.css":"./dist/styles.css","./tailwind.css":"./dist/tailwind.css"},"gitHead":"8a1785f4716e17064cce879e285c95ef7b10d371","private":false,"scripts":{"test":"cd ../.. && vitest run packages/ui/src/index.test.tsx","build":"tsc -p tsconfig.json && cp src/styles.css src/theme.css src/tailwind.css dist/","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"baguette-studios","email":"astier.jules@gmail.com"},"repository":{"url":"git+https://github.com/Jules-Astier/agent-context.git","type":"git","directory":"packages/ui"},"_npmVersion":"10.9.8","description":"React assistant UI kit and devtools for kernl.","directories":{},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"22.23.1","dependencies":{"remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0","@baguette-studios/kernl-react":"0.1.2","@baguette-studios/kernl-ui-core":"0.1.2","@baguette-studios/kernl-telemetry":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.8.3","@types/react":"^18.3.23","@types/react-dom":"^18.3.7"},"peerDependencies":{"react":"^18.3.0 || ^19.0.0","react-dom":"^18.3.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kernl-ui_0.1.2_1784114038700_0.41854828005265166","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@baguette-studios/kernl-ui","version":"0.2.0","type":"module","private":false,"description":"React assistant UI kit and devtools for kernl.","license":"ISC","repository":{"type":"git","url":"git+https://github.com/Jules-Astier/agent-context.git","directory":"packages/ui"},"homepage":"https://github.com/Jules-Astier/agent-context#readme","bugs":{"url":"https://github.com/Jules-Astier/agent-context/issues"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","browser":"./dist/index.browser.js","import":"./dist/index.js","default":"./dist/index.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js","default":"./dist/theme.js"},"./preferences-extension":{"types":"./dist/preferences-extension.d.ts","browser":"./dist/preferences-extension.js","import":"./dist/preferences-extension.js","default":"./dist/preferences-extension.js"},"./web-component":{"types":"./dist/web-component.d.ts","browser":"./dist/web-component.js","import":"./dist/web-component.js","default":"./dist/web-component.js"},"./styles.css":"./dist/styles.css","./theme.css":"./dist/theme.css","./tailwind.css":"./dist/tailwind.css"},"sideEffects":["*.css","**/*.css"],"scripts":{"build":"tsc -p tsconfig.json && cp src/styles.css src/theme.css src/tailwind.css dist/","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run --config vitest.config.ts"},"dependencies":{"@baguette-studios/kernl-react":"0.2.0","@baguette-studios/kernl-telemetry":"0.2.0","@baguette-studios/kernl-ui-core":"0.2.0","lucide-react":"^0.468.0","react-markdown":"^10.1.0","remark-gfm":"^4.0.1"},"peerDependencies":{"react":"^18.3.0 || ^19.0.0","react-dom":"^18.3.0 || ^19.0.0"},"devDependencies":{"@types/react":"^18.3.23","@types/react-dom":"^18.3.7","typescript":"^5.8.3","vitest":"^4.1.9"},"_id":"@baguette-studios/kernl-ui@0.2.0","gitHead":"d8fc5415769275ee958ad9ede38126edaba34a91","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-bi5WwHclMrGaO7rGVmcI7Hz67w+8DrQveD2bGZrr457lAvtbfGlEc6IFAIOHsiplvTUt2P2B6fv6/2T8CnNkPg==","shasum":"14bf62feabf7fb8c61c5b251c2e1d3cd8faebbe8","tarball":"https://registry.npmjs.org/@baguette-studios/kernl-ui/-/kernl-ui-0.2.0.tgz","fileCount":72,"unpackedSize":207167,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDBzL5dTMg2XrOhcqYAge1JaUoz62PAAkmpubN3Zx4cMAiBQ0/iO0ik/By90xclofFaQwKNFfIeCS8BjzY8BHb43hQ=="}]},"_npmUser":{"name":"baguette-studios","email":"astier.jules@gmail.com"},"directories":{},"maintainers":[{"name":"baguette-studios","email":"astier.jules@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kernl-ui_0.2.0_1784736192487_0.08557244288188226"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-14T22:07:49.424Z","modified":"2026-07-22T16:03:12.833Z","0.1.0":"2026-07-14T22:07:49.836Z","0.1.1":"2026-07-15T08:31:14.323Z","0.1.2":"2026-07-15T11:13:58.830Z","0.2.0":"2026-07-22T16:03:12.661Z"},"bugs":{"url":"https://github.com/Jules-Astier/agent-context/issues"},"license":"ISC","homepage":"https://github.com/Jules-Astier/agent-context#readme","repository":{"type":"git","url":"git+https://github.com/Jules-Astier/agent-context.git","directory":"packages/ui"},"description":"React assistant UI kit and devtools for kernl.","maintainers":[{"name":"baguette-studios","email":"astier.jules@gmail.com"}],"readme":"# @baguette-studios/kernl-ui\n\nReact assistant UI components for Kernl, including the bubble launcher, dock, command bar, approvals, activity timeline, and devtools.\n\n```bash\nnpm install @baguette-studios/kernl-react @baguette-studios/kernl-ui\n```\n\nImport the component styles once in the application entry point:\n\n```tsx\nimport { AgentBubbleLauncher } from \"@baguette-studios/kernl-ui\";\nimport \"@baguette-studios/kernl-ui/styles.css\";\n\n<AgentBubbleLauncher title=\"Assistant\" />;\n```\n\nVite and other browser-aware bundlers retain the package's automatic style loading, while Node ESM and SSR tooling receive a CSS-free JavaScript entry point. Keep the explicit `styles.css` import shown above as the stable styling contract; bundlers deduplicate the repeated CSS module.\n\nComponents read runtime state from the nearest `AgentProvider` supplied by `@baguette-studios/kernl-react`. React 18 and 19 are supported.\n\nTo make the collapsed launcher movable, configure the provider with `ui={{ launcherDraggable: true }}`. A drag stays within the viewport and snaps to its nearest edge; regular clicks continue to open the agent.\n\n## Optional shared preferences\n\n`AgentBubbleLauncher`, `AgentDock`, and `useAgentPanelPreferences` accept an\noptional `AgentUiPreferencesStore`. With no store, behavior remains synchronous\nand origin-local. An asynchronous store initially renders the local/default\nvalue and updates when the store connects.\n\nThe Chromium extension integration is an explicit, browser-only import:\n\n```tsx\nimport { AgentBubbleLauncher } from \"@baguette-studios/kernl-ui\";\nimport { createExtensionAgentUiPreferencesStore } from \"@baguette-studios/kernl-ui/preferences-extension\";\n\nconst preferencesStore = createExtensionAgentUiPreferencesStore();\n<AgentBubbleLauncher preferencesStore={preferencesStore} />;\n```\n\nCalling the factory is the host application's opt-in. The extension separately\nrequires the user to approve that exact origin. A missing, denied, outdated, or\ntimed-out extension transparently uses origin-local storage.\n\nPrecedence is: application-enforced component/provider props, extension-managed\nuser preferences, origin-local user preferences, then Kernl defaults. Host\nplacement and other product decisions remain component props and are never\nwritten to the shared preference document. To lock one of the three user-owned\nfields, wrap the store with `createEnforcedAgentUiPreferencesStore` from\n`@baguette-studios/kernl-ui-core/preferences` and omit or disable the\ncorresponding host settings control. The wrapper does not write host policy into\nthe extension profile.\n\n## Opt-in universal renderer\n\nApplications standardizing on the Web Component renderer can import\n`KernlAgentWebComponent` from `@baguette-studios/kernl-ui/web-component`. The\nhost must separately import `@kernl/web/kernl-agent` once; this wrapper has no\nruntime dependency on `@kernl/web`. It assigns the shared `AgentUiController`\nas an element property and bridges ready, open, screen, and error events.\n\nProvider-owned presentation is an explicit render-port boundary: pass\n`renderers` callbacks that close over the provider context and return cleanup\nfunctions for any React roots they mount. Provider children are not implicitly\nteleported into the Web Component shadow root.\n","readmeFilename":"README.md"}