{"_id":"@agentup-inksen/web-chat-app","_rev":"7-bde84502887eb23a850c216d3eef7433","name":"@agentup-inksen/web-chat-app","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"@agentup-inksen/web-chat-app","version":"0.0.1","license":"PROPRIETARY","_id":"@agentup-inksen/web-chat-app@0.0.1","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"dist":{"shasum":"8414d706dbc8860495c30f89fa0d34462a5a4a83","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.1.tgz","fileCount":10,"integrity":"sha512-MgJUHuFi43qIROsf4Klf1HWlSHt712cUsH+Ttr7rS3a2zlaFDUHvhE93MdYdITvmpsZf+6dW2c61W7wBNgL6ag==","signatures":[{"sig":"MEUCIQCp4ZTqwLuD4evSGeH2Pq8zaOp2LcLMvxQsfKgAxMwSBAIgLRsP5aCFjTm88gIxAfaKE+zoUvA0cXBesUpPwO/Dfjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1874390},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./iife":"./dist/agentup-chat-app.iife.js","./style.css":"./dist/style.css"},"gitHead":"dcf29d0440a4e61f050b19eb263b5b7934f47f17","scripts":{"dev":"vite","lint":"tsc --noEmit","build":"npm run build --prefix ../core && tsup && vite build","clean":"rimraf dist","build:iife":"vite build","build:tsup":"tsup"},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"_npmVersion":"10.8.2","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","directories":{},"_nodeVersion":"20.20.2","dependencies":{"lit":"^3.1.0","marked":"^15.0.7","dompurify":"^3.2.4","@agentup-inksen/web-chat-core":"0.0.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","rimraf":"^5.0.5","typescript":"^5.3.0","@types/dompurify":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/web-chat-app_0.0.1_1777980325125_0.5949975093639932","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@agentup-inksen/web-chat-app","version":"0.0.2","license":"PROPRIETARY","_id":"@agentup-inksen/web-chat-app@0.0.2","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"dist":{"shasum":"63055a85ea77a7d8fcac26977e188f8a89eaad46","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.2.tgz","fileCount":10,"integrity":"sha512-ZYnByVFgqgbvezXk9BgtJ6c5kakU1r2ddq8/GUsebmabyfEgJXVzbx4R6IG9+kohLcjqozz83GR1Klx1mO6mVA==","signatures":[{"sig":"MEYCIQC3f7U0ydipkOdsYF9I7jambkkcFlizyRir8xLk9xex4AIhALNnUYbVZg+PziFeWv18Tu4252x7AJx/j/OsyJUz/cn8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1874390},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./iife":"./dist/agentup-chat-app.iife.js","./style.css":"./dist/style.css"},"gitHead":"e28c2b265cf0b186eddf0192688c643655e70345","scripts":{"dev":"vite","lint":"tsc --noEmit","build":"npm run build --prefix ../core && tsup && vite build","clean":"rimraf dist","build:iife":"vite build","build:tsup":"tsup"},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"_npmVersion":"10.8.2","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","directories":{},"_nodeVersion":"20.20.2","dependencies":{"lit":"^3.1.0","marked":"^15.0.7","dompurify":"^3.2.4","@agentup-inksen/web-chat-core":"0.0.2"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","rimraf":"^5.0.5","typescript":"^5.3.0","@types/dompurify":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/web-chat-app_0.0.2_1778254480851_0.16847918308339271","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@agentup-inksen/web-chat-app","version":"0.0.3","license":"PROPRIETARY","_id":"@agentup-inksen/web-chat-app@0.0.3","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"dist":{"shasum":"537cc4b95a0534c0f2548645b0e8eb0ef6be367c","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.3.tgz","fileCount":10,"integrity":"sha512-ZK+OtVdMguiYdurbiU2k0sluBU0DtbbxFBjcWb+caeD0FXkLJCaZcm+LN9lqqvde4fEoaRhMQGZDNOHbzBU8XQ==","signatures":[{"sig":"MEUCIAr7Cw5UmDXYO/OCY0ZAjebHiMt7EEz/sP1xhmY+Fl8wAiEA4SKwjBfYmyb/jg18aqKqyTCLZc8RRYnJ3ENtj2XqEHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1877214},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./iife":"./dist/agentup-chat-app.iife.js","./style.css":"./dist/style.css"},"gitHead":"799bf762d7282636c9d283acdd128aff87c4b349","scripts":{"dev":"vite","lint":"tsc --noEmit","build":"npm run build --prefix ../core && tsup && vite build","clean":"rimraf dist","build:iife":"vite build","build:tsup":"tsup"},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"_npmVersion":"10.8.2","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","directories":{},"_nodeVersion":"20.20.2","dependencies":{"lit":"^3.1.0","marked":"^15.0.7","dompurify":"^3.2.4","@agentup-inksen/web-chat-core":"0.0.3"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","rimraf":"^5.0.5","typescript":"^5.3.0","@types/dompurify":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/web-chat-app_0.0.3_1778269812820_0.03812283783951598","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@agentup-inksen/web-chat-app","version":"0.0.4","license":"PROPRIETARY","_id":"@agentup-inksen/web-chat-app@0.0.4","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"dist":{"shasum":"25844057a76afa242cbdec84ad396515a5d656c0","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.4.tgz","fileCount":10,"integrity":"sha512-dtw0Ux+jjeVkuONK+tcmexoCHGY9IkqXWqg5oIKK3qgV63m5vE0/B48zHpjUbiU7wS67jKNzCY8NgxzkgI5P9Q==","signatures":[{"sig":"MEUCIQCXep5Fzlr4hbCTXmo5xGl6Q6q+4jKksIQ2XyB0kweRZgIgXeJCtR4/N+y7NOes9h2S5Ye4KGWEjF7YHJFRuymxoZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2031006},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./iife":"./dist/agentup-chat-app.iife.js","./style.css":"./dist/style.css"},"gitHead":"399e8509cad3fc23b9c1bab2b57e128f911215ae","scripts":{"dev":"vite","lint":"tsc --noEmit","build":"npm run build --prefix ../core && tsup && vite build","clean":"rimraf dist","build:iife":"vite build","build:tsup":"tsup"},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"_npmVersion":"10.8.2","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","directories":{},"_nodeVersion":"20.20.2","dependencies":{"lit":"^3.1.0","marked":"^15.0.7","dompurify":"^3.2.4","@agentup-inksen/web-chat-core":"0.0.4"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","rimraf":"^5.0.5","typescript":"^5.3.0","@types/dompurify":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/web-chat-app_0.0.4_1778930167350_0.2993991641771365","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@agentup-inksen/web-chat-app","version":"0.0.5","license":"PROPRIETARY","_id":"@agentup-inksen/web-chat-app@0.0.5","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"dist":{"shasum":"51ddf078c46950d8ae4ba071c4323823894c3502","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.5.tgz","fileCount":10,"integrity":"sha512-gl3n9Nzgz39hCAGkjBAkUeFCTlCVFWZ7gKMZtwacF8Y4H1XhIbWNG6ETie+wLkZZf28Lf2yD+eRkRBJev1KMnQ==","signatures":[{"sig":"MEYCIQDp/xBmY5zK5p0ryQRsLEzPuRJ6So1bpdoDLC2Pw0gy4gIhANTsj/wGwByfM+8Ork0yT6HJ9drEcz6yALAxK2uSyu6b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2043001},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./iife":"./dist/agentup-chat-app.iife.js","./style.css":"./dist/style.css"},"gitHead":"07011129aa4e179150a19930384de0fd0eaec7f7","scripts":{"dev":"vite","lint":"tsc --noEmit","build":"npm run build --prefix ../core && tsup && vite build","clean":"rimraf dist","build:iife":"vite build","build:tsup":"tsup"},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"_npmVersion":"10.8.2","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","directories":{},"_nodeVersion":"20.20.2","dependencies":{"lit":"^3.1.0","marked":"^15.0.7","dompurify":"^3.2.4","@agentup-inksen/web-chat-core":"0.0.5"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","rimraf":"^5.0.5","typescript":"^5.3.0","@types/dompurify":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/web-chat-app_0.0.5_1778964499996_0.8516163263014629","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@agentup-inksen/web-chat-app","version":"0.0.6","license":"PROPRIETARY","_id":"@agentup-inksen/web-chat-app@0.0.6","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"dist":{"shasum":"36dce1248928ad2b64911f56e75afa2cb4e0fc0b","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.6.tgz","fileCount":10,"integrity":"sha512-Hzbr7B4VfYzlwOHYxncAkKuGBkFS5EeZimCxvroUp3DwnvU07aSoXlLUOQaEAmdSIqn4ngjWW1qNBc4LwinJVQ==","signatures":[{"sig":"MEYCIQCjRhNwW8EP40zPFqA+kFTNhbFZXuScqQUU4kgXshz2TwIhAKFObMkMksshboJTOoM0+2TOctfuEsfmGiIqq38h4qBg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2043007},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./iife":"./dist/agentup-chat-app.iife.js","./style.css":"./dist/style.css"},"gitHead":"bca564ee105259056c9843876ff7599e4fe5f074","scripts":{"dev":"vite","lint":"tsc --noEmit","build":"npm run build --prefix ../core && tsup && vite build","clean":"rimraf dist","build:iife":"vite build","build:tsup":"tsup"},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"_npmVersion":"10.8.2","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","directories":{},"_nodeVersion":"20.20.2","dependencies":{"lit":"^3.1.0","marked":"^15.0.7","dompurify":"^3.2.4","@agentup-inksen/web-chat-core":"0.0.6"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","rimraf":"^5.0.5","typescript":"^5.3.0","@types/dompurify":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/web-chat-app_0.0.6_1779043229387_0.11498679600935136","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@agentup-inksen/web-chat-app","version":"0.0.7","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","license":"PROPRIETARY","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./style.css":"./dist/style.css","./iife":"./dist/agentup-chat-app.iife.js"},"scripts":{"build":"npm run build --prefix ../core && tsup && vite build","build:tsup":"tsup","build:iife":"vite build","dev":"vite","clean":"rimraf dist","lint":"tsc --noEmit"},"dependencies":{"@agentup-inksen/web-chat-core":"0.0.7","dompurify":"^3.2.4","lit":"^3.1.0","marked":"^15.0.7"},"devDependencies":{"@types/dompurify":"^3.0.5","rimraf":"^5.0.5","tsup":"^8.0.0","typescript":"^5.3.0","vite":"^5.0.0"},"publishConfig":{"access":"restricted"},"_id":"@agentup-inksen/web-chat-app@0.0.7","gitHead":"0e9037d099c0b3ba7478a679a1bf89c50cbfaecd","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-rkrtRvx5QDJ85Lhfp5oApGZ3EYB1IodLrehPpq/EqZfn/kbcRvlLXlCoTU83h4kt1lUt+gZnSxqIw3hPvjdlTw==","shasum":"7f417ff5cc28f96b53cb8ecc80cb05d7832ab1c3","tarball":"https://registry.npmjs.org/@agentup-inksen/web-chat-app/-/web-chat-app-0.0.7.tgz","fileCount":10,"unpackedSize":2043007,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzDjnyMxEg3INzEL9BxiPa3fnEjMonSayR7hExo+zkHAIgeg1RcHsI7yr4OhF5v6RWnQgutMToO12zTNsRLoWbLss="}]},"_npmUser":{"name":"inksentech","email":"oktay.kaymanli@inksen.com"},"directories":{},"maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/web-chat-app_0.0.7_1779438434613_0.39269800008192357"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-05T11:25:25.054Z","modified":"2026-05-22T08:27:14.921Z","0.0.1":"2026-05-05T11:25:25.334Z","0.0.2":"2026-05-08T15:34:41.044Z","0.0.3":"2026-05-08T19:50:12.972Z","0.0.4":"2026-05-16T11:16:07.538Z","0.0.5":"2026-05-16T20:48:20.147Z","0.0.6":"2026-05-17T18:40:29.618Z","0.0.7":"2026-05-22T08:27:14.798Z"},"license":"PROPRIETARY","description":"Embeddable full-screen chat app web component (<agentup-chat-app>) for AgentUp","maintainers":[{"name":"inksentech","email":"oktay.kaymanli@inksen.com"}],"readme":"# @agentup-inksen/web-chat-app\r\n\r\nEmbeddable full-screen chat application for AgentUp, distributed as the `<agentup-chat-app>` web component (built on Lit). Designed for **3rd party host applications** that already authenticate their users (Host SSO).\r\n\r\n## Layout\r\n\r\n```\r\n┌──────────────────────────────────────────────┐\r\n│  Sidebar (agents + conversations) │  Chat    │\r\n│                                   │  pane    │\r\n│                                   │          │\r\n└──────────────────────────────────────────────┘\r\n```\r\n\r\nBelow ~720px container width the sidebar collapses into a slide-over.\r\n\r\n## Quick start (npm)\r\n\r\n```bash\r\nnpm install @agentup-inksen/web-chat-app lit\r\n```\r\n\r\n```ts\r\nimport '@agentup-inksen/web-chat-app';\r\n```\r\n\r\n```html\r\n<agentup-chat-app\r\n  api-url=\"https://api.agentup.example\"\r\n  tenant-id=\"acme\"\r\n  visitor-token=\"<JWT minted server-side>\"\r\n  lang=\"en\">\r\n</agentup-chat-app>\r\n```\r\n\r\n### Drop-in (no bundler)\r\n\r\n```html\r\n<script src=\"https://cdn.example.com/agentup-chat-app.iife.js\"></script>\r\n<agentup-chat-app\r\n  api-url=\"https://api.agentup.example\"\r\n  tenant-id=\"acme\"\r\n  visitor-token=\"...\"></agentup-chat-app>\r\n```\r\n\r\n## Visitor token (Host SSO)\r\n\r\nThe visitor token is **minted by your backend**, never the browser. Your host server proves itself with the tenant's widget API key:\r\n\r\n```bash\r\ncurl -X POST https://api.agentup.example/api/webchat/visitor-tokens \\\r\n  -H 'X-Tenant-Id: acme' \\\r\n  -H 'X-Widget-Api-Key: <secret-from-dashboard>' \\\r\n  -H 'Content-Type: application/json' \\\r\n  -d '{\r\n    \"externalUserId\": \"host-user-123\",\r\n    \"name\": \"Demo User\",\r\n    \"email\": \"demo@example.com\"\r\n  }'\r\n```\r\n\r\nResponse:\r\n\r\n```json\r\n{\r\n  \"visitorToken\": \"eyJhbGciOi...\",\r\n  \"expiresAt\": \"2026-04-30T17:30:00Z\",\r\n  \"visitorId\": \"...\"\r\n}\r\n```\r\n\r\nShip `visitorToken` to the browser (cookie/inline `<script>`) and pass it to the component. When it expires, listen for `agentup-auth-error`, refresh from your backend, and assign the new value:\r\n\r\n```ts\r\nconst el = document.querySelector('agentup-chat-app')!;\r\nel.addEventListener('agentup-auth-error', async () => {\r\n  el.visitorToken = await fetch('/api/host/refresh-agentup-token').then(r => r.text());\r\n});\r\n```\r\n\r\n## Theming\r\n\r\nSet CSS custom properties on the host element:\r\n\r\n```css\r\nagentup-chat-app {\r\n  --agentup-bg: #0f172a;\r\n  --agentup-surface: #1e293b;\r\n  --agentup-surface-2: #334155;\r\n  --agentup-border: #475569;\r\n  --agentup-text: #e2e8f0;\r\n  --agentup-muted: #94a3b8;\r\n  --agentup-primary: #6366f1;\r\n  --agentup-primary-contrast: #ffffff;\r\n  --agentup-radius: 16px;\r\n  --agentup-sidebar-width: 320px;\r\n  --agentup-font: 'Inter', sans-serif;\r\n}\r\n```\r\n\r\n## Slots\r\n\r\n| Slot | Purpose |\r\n| --- | --- |\r\n| `header` | Replaces the default header text (e.g. logo) |\r\n| `empty-state` | Replaces the default empty state |\r\n\r\n## Events\r\n\r\n| Event | Detail | Description |\r\n| --- | --- | --- |\r\n| `agentup-auth-error` | – | Visitor token expired/invalid. Refresh and re-assign `visitorToken`. |\r\n| `agentup-conversation-changed` | `{ conversationId }` | Active conversation changed. |\r\n\r\n## i18n\r\n\r\n`lang=\"tr\"` or `lang=\"en\"` switches between bundled strings. The component also tries to load tenant-managed translations from `GET /api/translations/language/{lang}` (best-effort) and merges them on top. Or pass a static dictionary:\r\n\r\n```ts\r\nel.translations = { 'web_chat_app.title': 'Müşteri Destek' };\r\n```\r\n\r\n## Build\r\n\r\n```bash\r\ncd packages/app\r\nnpm run build       # tsup (esm+cjs+dts) + vite (iife+css)\r\nnpm run dev         # vite dev server pointing at demo/index.html\r\n```\r\n\r\n## Roadmap\r\n\r\n- Search inside the conversations list.\r\n- File upload (already exposed via `POST /api/webchat/upload`).\r\n- Sub-elements (`<agentup-agent-list>`, `<agentup-chat-pane>`) extracted for advanced custom layouts.\r\n","readmeFilename":"README.md"}