{"_id":"@ain-framework/remote-chat-sdk","_rev":"3-2c792314b539a488b5fd6eb8f64ba487","name":"@ain-framework/remote-chat-sdk","dist-tags":{"latest":"1.0.1"},"versions":{"0.1.0":{"name":"@ain-framework/remote-chat-sdk","version":"0.1.0","_id":"@ain-framework/remote-chat-sdk@0.1.0","maintainers":[{"name":"kkim_officenpm","email":"jmjiangkim@163.com"}],"dist":{"shasum":"a8f697dc5f6673f32f6795428977e98cefbb4657","tarball":"https://registry.npmjs.org/@ain-framework/remote-chat-sdk/-/remote-chat-sdk-0.1.0.tgz","fileCount":26,"integrity":"sha512-ZFlIw0Udw7Xan0j1mDDGAwqTc6OQ1mqv6yJ100SN0MfKTn0q/YIc5Uio9M4CP/q0Pbdsf9+97KPO9n4u0lgmkA==","signatures":[{"sig":"MEYCIQCOcGHmy7YsGwAkOamIh4uDOO2WpiVYuCwxlpah55DCMgIhAPkqibE6RfGnkHnXnzGJdIsMXRMIJo8YoWuCo7H69P68","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237448},"main":"./dist/index.js","type":"module","_from":"file:ain-framework-remote-chat-sdk-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/styles.css"},"private":false,"scripts":{"build":"vite build && tsc -p tsconfig.build.json","clean":"rimraf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kkim_officenpm","email":"jmjiangkim@163.com"},"_resolved":"/private/var/folders/30/vw2gklsx10nfq1vmbjpmhs780000gn/T/603313da7824df3362c45bbcc338cd4d/ain-framework-remote-chat-sdk-0.1.0.tgz","_integrity":"sha512-ZFlIw0Udw7Xan0j1mDDGAwqTc6OQ1mqv6yJ100SN0MfKTn0q/YIc5Uio9M4CP/q0Pbdsf9+97KPO9n4u0lgmkA==","_npmVersion":"10.9.3","description":"Vue 3 Remote Chat UI components.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"dompurify":"^3.1.5","markdown-it":"^14.1.0","tdesign-vue-next":"^1.20.2","@tdesign-vue-next/chat":"^0.5.2","tdesign-icons-vue-next":"^0.4.4","@ain-framework/web-mcp-sdk":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.29","vite":"^5.3.1","rimraf":"^6.0.1","typescript":"^5.8.3","@types/markdown-it":"^14.1.2","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/remote-chat-sdk_0.1.0_1784436343137_0.049713054072514584","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ain-framework/remote-chat-sdk","version":"1.0.0","_id":"@ain-framework/remote-chat-sdk@1.0.0","maintainers":[{"name":"kkim_officenpm","email":"jmjiangkim@163.com"}],"dist":{"shasum":"dc2f7be8d3f82a58419e1fb33136ab83687598ba","tarball":"https://registry.npmjs.org/@ain-framework/remote-chat-sdk/-/remote-chat-sdk-1.0.0.tgz","fileCount":68,"integrity":"sha512-1dOE8ou3Tc42YDrZ9feMg/CrfX/3XTMpKwxfPT1nLB6dtK/ksoyquCo22tsSG5QtCfh16yG1GBsd0lJ0OgN2lA==","signatures":[{"sig":"MEQCIHyhdlNz3NX2cGkXgRVBrlsDT2HRLC+m7LmrKMlu7yqOAiBGCVwtso1N/qZv9pnZms+IiADYhx88jzY4q/1n8dtO0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2277164},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/styles.css"},"gitHead":"7244be6aa33fbc52e5e4eba281587694167e382d","private":false,"scripts":{"build":"vite build && tsc -p tsconfig.build.json","clean":"rimraf dist","test:day4":"tsx scripts/day4-smoke.ts","test:day7":"tsx scripts/day7-smoke.ts","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"kkim_officenpm","email":"jmjiangkim@163.com"},"_npmVersion":"10.9.2","description":"Presentational AI conversation SDK for Vue3 (migrated from @business-template/ai-chat-sdk). Renders only, owns no data state.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"katex":"^0.18.4","dompurify":"^3.1.5","markdown-it":"^14.1.0","highlight.js":"^11.12.0","@types/markdown-it":"^14.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.37","tsx":"^4.22.4","vue":"^3.4.29","vite":"^5.3.1","rimraf":"^6.0.1","postcss":"^8.4.0","typescript":"^5.8.3","tailwindcss":"^3.4.0","autoprefixer":"^10.4.0","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"ai":"^6.0.37","vue":"^3.4.29"},"_npmOperationalInternal":{"tmp":"tmp/remote-chat-sdk_1.0.0_1786697639703_0.5223769738179744","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ain-framework/remote-chat-sdk","version":"1.0.1","private":false,"type":"module","description":"Presentational AI conversation SDK for Vue3 (migrated from @business-template/ai-chat-sdk). Renders only, owns no data state.","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/styles.css"},"scripts":{"clean":"rimraf dist","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test:day4":"tsx scripts/day4-smoke.ts","test:day7":"tsx scripts/day7-smoke.ts","prepublishOnly":"pnpm run build"},"publishConfig":{"access":"public"},"dependencies":{"@types/markdown-it":"^14.1.0","dompurify":"^3.1.5","highlight.js":"^11.12.0","katex":"^0.18.4","markdown-it":"^14.1.0"},"peerDependencies":{"ai":"^6.0.37","vue":"^3.4.29"},"devDependencies":{"@vitejs/plugin-vue":"^5.0.5","ai":"^6.0.37","autoprefixer":"^10.4.0","postcss":"^8.4.0","rimraf":"^6.0.1","tailwindcss":"^3.4.0","tsx":"^4.22.4","typescript":"^5.8.3","vite":"^5.3.1","vue":"^3.4.29"},"_id":"@ain-framework/remote-chat-sdk@1.0.1","gitHead":"4717d5bd5b097161c25f1be00e9b9b23092788ad","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-KuxlAktef8+TkczWI4a4Ro0oeL0zpvTdV+B89HwbTuCB3ctW4tLRBEPNvc/2F+eav+PAaDhyXojZrXSS1zp/0w==","shasum":"d4e67911fe68fb03d068f0c449e1610bd4424815","tarball":"https://registry.npmjs.org/@ain-framework/remote-chat-sdk/-/remote-chat-sdk-1.0.1.tgz","fileCount":68,"unpackedSize":2277584,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICnh3cbszJxFhCZ8VhQRxzLDa2VDfLSAN8E8CSUl8PDVAiEA2EgwdGTL05Qwm9C94DTt+9vPHgER6iUVpOWVgQGErvw="}]},"_npmUser":{"name":"kkim_officenpm","email":"jmjiangkim@163.com"},"directories":{},"maintainers":[{"name":"kkim_officenpm","email":"jmjiangkim@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/remote-chat-sdk_1.0.1_1786952357479_0.18363140234347175"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T04:45:42.997Z","modified":"2026-08-17T07:39:17.883Z","0.1.0":"2026-07-19T04:45:43.289Z","1.0.0":"2026-08-14T08:53:59.910Z","1.0.1":"2026-08-17T07:39:17.685Z"},"description":"Presentational AI conversation SDK for Vue3 (migrated from @business-template/ai-chat-sdk). Renders only, owns no data state.","maintainers":[{"name":"kkim_officenpm","email":"jmjiangkim@163.com"}],"readme":"# @ain-framework/remote-chat-sdk\n\nVue 3 AI 对话展示 SDK（由 `@business-template/ai-chat-sdk` 迁移而来）。\n设计原则：**只渲染，不持真相** —— 消息 / 会话 / 流式状态全部由业务系统持有，SDK 仅提供展示组件、类型契约与可插拔 Runtime。\n\n## Install\n\n```bash\npnpm add @ain-framework/remote-chat-sdk ai vue\n```\n\n## Usage\n\n```ts\nimport { ChatProvider, MessageList, PromptInput, createMockSseRuntime } from \"@ain-framework/remote-chat-sdk\";\nimport \"@ain-framework/remote-chat-sdk/style.css\";\n```\n\n### 最小示例（Mock 流）\n\n```ts\nconst runtime = createMockSseRuntime();\n```\n\n然后在模板中：\n\n```vue\n<ChatProvider :runtime=\"runtime\">\n  <MessageList />\n  <PromptInput />\n</ChatProvider>\n```\n\n### 接入真实后端\n\n使用 `createStreamingRuntime` 连接 SSE 服务端，或实现 `ChatRuntime` 接口（消息、状态、send/stop/regenerate/setMessages）。\n\n## 组件与 API\n\n- 组件：`ChatProvider`、`MessageList`、`Message`、`MessageContent`、`PromptInput`、`SessionList`、`AttachmentPicker`、`FilePart`、`Reasoning`、`Sources`、`Tool`、`TypewriterText`、`CodeBlock`、`MessageActions`、`TokenIndicator`\n- Composables：`useChatRuntime`、`useChatDraft`、`useAttachment`、`useChatSessions`、`useStickToBottom`\n- 流式：`createStreamingRuntime`、`createMockSseRuntime`、`parseSseChunk`、`readSseStream`、`normalizeUiMessageEvent`、`reduceStreamEvent`、`useTypewriter`\n- 工具：`renderMarkdown`、`highlightCode`、`copyText`、`extractMessageText`、`splitMarkdownBlocks`、文件工具（`classifyFile` / `formatFileSize` / `toFileUIPart` 等）\n- 类型：`ChatMessage`、`ChatMessagePart`、`ChatRuntime`、`ChatProviderProps`、`ChatSession`、`ChatStreamEvent`、`DynamicToolPart`，以及从 `ai` 包 re-export 的 `UIMessage` / `ChatStatus` / `TextUIPart` 等\n\n## 样式\n\n```bash\nimport \"@ain-framework/remote-chat-sdk/style.css\";\n```\n\n`dist/styles.css` 已内置 Tailwind 基础样式、highlight.js 代码高亮与 KaTeX 公式样式（字体资源位于 `dist/assets/`）。\n\n## Peer Dependencies\n\n- `vue`（^3.4.29）\n- `ai`（^6.0.37，仅类型引用，SDK 产物不含 `ai` 运行时代码）\n\n## Dev\n\n```bash\npnpm typecheck\npnpm build\npnpm test:day4   # SSE 解析 / 状态机 smoke\npnpm test:day7   # 会话 CRUD smoke\n```","readmeFilename":"README.md"}