{"_id":"@bdky/chat-pilot-kit-vue3","_rev":"4-d58f3803addca29138c5189fb80c9f40","name":"@bdky/chat-pilot-kit-vue3","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.4":{"name":"@bdky/chat-pilot-kit-vue3","version":"1.0.4","keywords":["vue3","vue-composables","composition-api","chat","ai-assistant","chatbot","baidu","百度","客悦"],"author":{"name":"Baidu Keyue Team","email":"zhangwenxi@baidu.com"},"license":"MIT","_id":"@bdky/chat-pilot-kit-vue3@1.0.4","maintainers":[{"name":"zhangwx616","email":"bdwenxi@gmail.com"},{"name":"berwin0415","email":"hanbw@sina.cn"},{"name":"patrickli147","email":"patrick_li_147@foxmail.com"}],"contributors":[{"name":"zhangwenxi","email":"zhangwenxi@baidu.com"}],"dist":{"shasum":"5a1949d686fbdec7729a7add29bf4efd8e81d5d6","tarball":"https://registry.npmjs.org/@bdky/chat-pilot-kit-vue3/-/chat-pilot-kit-vue3-1.0.4.tgz","fileCount":89,"integrity":"sha512-eMrooc8sO6u7K93YYilrTx/Ipfes7w/go6l2e/ljfTLdHT/UTsM+Uab9wvCydSzEc4uXF+5BhIbwVWEHdGxxgQ==","signatures":[{"sig":"MEYCIQD/a0wjhh75unw8LR36FXzwEtDC+1g1PpvLhPBnEGPzeQIhAOHN3VGuhEFADbm4KDJ6W+6Pu9Kfklu6NAxSrbYd9t4s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1398304},"main":"./dist/ky-chat-pilot-kit-vue3.cjs.js","module":"./dist/ky-chat-pilot-kit-vue3.esm.js","exports":{".":{"types":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","import":"./dist/ky-chat-pilot-kit-vue3.esm.js","require":"./dist/ky-chat-pilot-kit-vue3.cjs.js"},"./styles":"./dist/index.css","./styles.css":"./dist/index.css"},"gitHead":"d1faf46730ba4dc21b571433c8ed5bbc8659b61a","scripts":{"dev":"npx rsbuild dev --open","build":"npx rslib build","analyze":"RSDOCTOR=true npx rslib build"},"typings":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","_npmUser":{"name":"zhangwx616","email":"bdwenxi@gmail.com"},"_npmVersion":"11.9.0","description":"chat-pilot-kit 的 Vue3 封装，提供 Provider、Composables 和 VueNodeViewRenderer","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@bdky/chat-pilot-kit":"^1.0.4","@bdky/vue3-streamdown":"workspace:*","@bdky/vue3-streamdown-cjk":"workspace:*","@bdky/vue3-streamdown-code":"workspace:*","@bdky/vue3-streamdown-math":"workspace:*","@bdky/vue3-streamdown-table":"workspace:*","@bdky/vue3-streamdown-mermaid":"workspace:*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ky":"^1.14.0","vue":"^3.5.24","emittery":"^1.2.0","happy-dom":"^17.4.4","inversify":"^7.10.4","@vue/tsconfig":"^0.7.0","@vue/test-utils":"^2.4.6","eslint-plugin-vue":"^10.4.0","vue-eslint-parser":"^10.2.0","@vitejs/plugin-vue":"^5.2.1","@rsbuild/plugin-vue":"^1.2.0","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-pilot-kit-vue3_1.0.4_1778120062238_0.8878246878673506","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bdky/chat-pilot-kit-vue3","version":"1.0.5","keywords":["vue3","vue-composables","composition-api","chat","ai-assistant","chatbot","baidu","百度","客悦"],"author":{"name":"Baidu Keyue Team","email":"zhangwenxi@baidu.com"},"license":"MIT","_id":"@bdky/chat-pilot-kit-vue3@1.0.5","maintainers":[{"name":"zhangwx616","email":"bdwenxi@gmail.com"},{"name":"berwin0415","email":"hanbw@sina.cn"},{"name":"patrickli147","email":"patrick_li_147@foxmail.com"}],"contributors":[{"name":"zhangwenxi","email":"zhangwenxi@baidu.com"}],"dist":{"shasum":"02d316aee66921e0afc48b0a0a1eaeb8ba86631f","tarball":"https://registry.npmjs.org/@bdky/chat-pilot-kit-vue3/-/chat-pilot-kit-vue3-1.0.5.tgz","fileCount":89,"integrity":"sha512-ERgQQulGPfD1B63DbGMjvtMSu8xpG7S6fsAPslbQPmVEPe+TBp1aEDUlnHAFJ5ymC/cob6FNac2drs2LQfJDZA==","signatures":[{"sig":"MEQCIBjAvndhvt7514NZRGd1BG9crlJdib6nxypYH3JaxqO/AiAY5H70eQK59Dv3U7moELnP8VFr5Rwt0sM8IQLwRlDFnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1398304},"main":"./dist/ky-chat-pilot-kit-vue3.cjs.js","module":"./dist/ky-chat-pilot-kit-vue3.esm.js","exports":{".":{"types":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","import":"./dist/ky-chat-pilot-kit-vue3.esm.js","require":"./dist/ky-chat-pilot-kit-vue3.cjs.js"},"./styles":"./dist/index.css","./styles.css":"./dist/index.css"},"gitHead":"d0ff6ade4c6c7a7515c640841f7a94acaa699d08","scripts":{"dev":"npx rsbuild dev --open","build":"npx rslib build","analyze":"RSDOCTOR=true npx rslib build"},"typings":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","_npmUser":{"name":"zhangwx616","email":"bdwenxi@gmail.com"},"_npmVersion":"11.9.0","description":"chat-pilot-kit 的 Vue3 封装，提供 Provider、Composables 和 VueNodeViewRenderer","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@bdky/chat-pilot-kit":"^1.0.5","@bdky/vue3-streamdown":"workspace:*","@bdky/vue3-streamdown-cjk":"workspace:*","@bdky/vue3-streamdown-code":"workspace:*","@bdky/vue3-streamdown-math":"workspace:*","@bdky/vue3-streamdown-table":"workspace:*","@bdky/vue3-streamdown-mermaid":"workspace:*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ky":"^1.14.0","vue":"^3.5.24","emittery":"^1.2.0","happy-dom":"^17.4.4","inversify":"^7.10.4","@vue/tsconfig":"^0.7.0","@vue/test-utils":"^2.4.6","eslint-plugin-vue":"^10.4.0","vue-eslint-parser":"^10.2.0","@vitejs/plugin-vue":"^5.2.1","@rsbuild/plugin-vue":"^1.2.0","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-pilot-kit-vue3_1.0.5_1778297039723_0.6170746706694037","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bdky/chat-pilot-kit-vue3","version":"1.1.0","keywords":["vue3","vue-composables","composition-api","chat","ai-assistant","chatbot","baidu","百度","客悦"],"author":{"name":"Baidu Keyue Team","email":"zhangwenxi@baidu.com"},"license":"MIT","_id":"@bdky/chat-pilot-kit-vue3@1.1.0","maintainers":[{"name":"zhangwx616","email":"bdwenxi@gmail.com"},{"name":"berwin0415","email":"hanbw@sina.cn"},{"name":"patrickli147","email":"patrick_li_147@foxmail.com"}],"contributors":[{"name":"zhangwenxi","email":"zhangwenxi@baidu.com"}],"dist":{"shasum":"4a45be3a703dbd1830fda1258d1b6371142d998b","tarball":"https://registry.npmjs.org/@bdky/chat-pilot-kit-vue3/-/chat-pilot-kit-vue3-1.1.0.tgz","fileCount":98,"integrity":"sha512-DeqbSAErLrNthcXH0OLHMP1YugoR40TEhjkvIYnB8O1Z1KSvcK2JAuNleajA8I/pDJB3I2aFST79BytJlwlhPg==","signatures":[{"sig":"MEUCIQCQgckJqTQk9H8M8RAbc5kanJjapCaMhTTb8eTGX+VzUgIgc/L1aSLS+vsFzNNq+Zmhzi6d9huE+h4Fp/0by4kRp6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1426982},"main":"./dist/ky-chat-pilot-kit-vue3.cjs.js","module":"./dist/ky-chat-pilot-kit-vue3.esm.js","exports":{".":{"types":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","import":"./dist/ky-chat-pilot-kit-vue3.esm.js","require":"./dist/ky-chat-pilot-kit-vue3.cjs.js"},"./styles":"./dist/index.css","./styles.css":"./dist/index.css"},"gitHead":"218bb05a87a9763a96bc90d335827fe6645c9f3d","scripts":{"dev":"npx rsbuild dev --open","build":"npx rslib build","analyze":"RSDOCTOR=true npx rslib build"},"typings":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","_npmUser":{"name":"zhangwx616","email":"bdwenxi@gmail.com"},"_npmVersion":"11.9.0","description":"chat-pilot-kit 的 Vue3 封装，提供 Provider、Composables 和 VueNodeViewRenderer","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@bdky/chat-pilot-kit":"^1.1.0","@bdky/vue3-streamdown":"workspace:*","@bdky/vue3-streamdown-cjk":"workspace:*","@bdky/vue3-streamdown-code":"workspace:*","@bdky/vue3-streamdown-math":"workspace:*","@bdky/vue3-streamdown-table":"workspace:*","@bdky/vue3-streamdown-mermaid":"workspace:*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ky":"^1.14.0","vue":"^3.5.24","zod":"^4.4.3","emittery":"^1.2.0","happy-dom":"^17.4.4","inversify":"^7.10.4","@vue/tsconfig":"^0.7.0","@vue/test-utils":"^2.4.6","eslint-plugin-vue":"^10.4.0","vue-eslint-parser":"^10.2.0","@vitejs/plugin-vue":"^5.2.1","@rsbuild/plugin-vue":"^1.2.0","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":">=3.0.0","zod":">=3.24.0"},"peerDependenciesMeta":{"zod":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-pilot-kit-vue3_1.1.0_1782213199010_0.030563926866223223","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bdky/chat-pilot-kit-vue3","version":"1.1.1","description":"chat-pilot-kit 的 Vue3 封装，提供 Provider、Composables 和 VueNodeViewRenderer","keywords":["vue3","vue-composables","composition-api","chat","ai-assistant","chatbot","baidu","百度","客悦"],"license":"MIT","author":{"name":"Baidu Keyue Team","email":"zhangwenxi@baidu.com"},"contributors":[{"name":"zhangwenxi","email":"zhangwenxi@baidu.com"}],"main":"./dist/ky-chat-pilot-kit-vue3.cjs.js","module":"./dist/ky-chat-pilot-kit-vue3.esm.js","typings":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","exports":{".":{"types":"./dist/libs/chat-pilot-kit-vue3/src/index.d.ts","import":"./dist/ky-chat-pilot-kit-vue3.esm.js","require":"./dist/ky-chat-pilot-kit-vue3.cjs.js"},"./styles.css":"./dist/index.css","./styles":"./dist/index.css"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"build":"npx rslib build","dev":"npx rsbuild dev --open","analyze":"RSDOCTOR=true npx rslib build"},"dependencies":{"@bdky/chat-pilot-kit":"^1.2.0","@bdky/vue3-streamdown":"workspace:*","@bdky/vue3-streamdown-cjk":"workspace:*","@bdky/vue3-streamdown-code":"workspace:*","@bdky/vue3-streamdown-math":"workspace:*","@bdky/vue3-streamdown-mermaid":"workspace:*","@bdky/vue3-streamdown-table":"workspace:*"},"devDependencies":{"@rsbuild/plugin-vue":"^1.2.0","@vitejs/plugin-vue":"^5.2.1","@vue/eslint-config-typescript":"^14.6.0","@vue/test-utils":"^2.4.6","@vue/tsconfig":"^0.7.0","emittery":"^1.2.0","eslint-plugin-vue":"^10.4.0","happy-dom":"^17.4.4","inversify":"^7.10.4","ky":"^1.14.0","vue":"^3.5.24","vue-eslint-parser":"^10.2.0","zod":"^4.4.3"},"peerDependencies":{"vue":">=3.0.0","zod":">=3.24.0"},"peerDependenciesMeta":{"zod":{"optional":true}},"gitHead":"3d476f70e95200f3b20aea47ba3fea528640b3e9","_id":"@bdky/chat-pilot-kit-vue3@1.1.1","_nodeVersion":"22.15.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-HyHrGnu184Nr0Opu7+/0y4qcA4lJ7SrN+yLHAirGaVOVYJ/UDCfP6zI+gPUWw5vsnNu361PWdc4OMkSU481qSw==","shasum":"762c60ee6d1fd353b18894486aaa38c2a736f33c","tarball":"https://registry.npmjs.org/@bdky/chat-pilot-kit-vue3/-/chat-pilot-kit-vue3-1.1.1.tgz","fileCount":98,"unpackedSize":1426985,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHizQkTVUhzoJwnUluAPje9f3hj5y5TvUe9F+BdxrsF0AiBbYjFfvb4a2VIqACGXCsBTdzt22IpZfp/l9yMZocxYpQ=="}]},"_npmUser":{"name":"zhangwx616","email":"bdwenxi@gmail.com"},"directories":{},"maintainers":[{"name":"zhangwx616","email":"bdwenxi@gmail.com"},{"name":"berwin0415","email":"hanbw@sina.cn"},{"name":"patrickli147","email":"patrick_li_147@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat-pilot-kit-vue3_1.1.1_1784620314412_0.4403455912173797"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T02:14:22.146Z","modified":"2026-07-21T07:51:54.706Z","1.0.4":"2026-05-07T02:14:22.426Z","1.0.5":"2026-05-09T03:23:59.937Z","1.1.0":"2026-06-23T11:13:19.176Z","1.1.1":"2026-07-21T07:51:54.551Z"},"author":{"name":"Baidu Keyue Team","email":"zhangwenxi@baidu.com"},"license":"MIT","keywords":["vue3","vue-composables","composition-api","chat","ai-assistant","chatbot","baidu","百度","客悦"],"description":"chat-pilot-kit 的 Vue3 封装，提供 Provider、Composables 和 VueNodeViewRenderer","contributors":[{"name":"zhangwenxi","email":"zhangwenxi@baidu.com"}],"maintainers":[{"name":"zhangwx616","email":"bdwenxi@gmail.com"},{"name":"berwin0415","email":"hanbw@sina.cn"},{"name":"patrickli147","email":"patrick_li_147@foxmail.com"}],"readme":"# @bdky/chat-pilot-kit-vue3\n\n[![npm version](https://img.shields.io/npm/v/@bdky/chat-pilot-kit-vue3.svg)](https://www.npmjs.com/package/@bdky/chat-pilot-kit-vue3)\n[![license](https://img.shields.io/npm/l/@bdky/chat-pilot-kit-vue3.svg)](./LICENSE)\n\n`@bdky/chat-pilot-kit` 的 Vue3 适配层，提供 Provider、Composables 和 VueNodeViewRenderer，Markdown 渲染使用 [markstream-vue](https://github.com/markstream/markstream-vue)，NodeView 样式采用 GitHub 风格设计。\n\n## 特性\n\n- **Provider/Inject 模式** — `provideChatPilotKit` / `injectChatPilotKit`，与 Vue3 依赖注入无缝集成\n- **4 个 Composables** — `useChatPilotKit`、`useChatPilotKitEvents`、`useConversations`、`useNodeInteraction`\n- **VueNodeViewRenderer** — 将 Vue SFC 注册为 NodeView，与 React 版 API 对称\n- **8 个默认 NodeView 组件** — Text、Markdown（流式）、ThinkingBlock、ToolCall、Image、File、Audio、Video\n- **GitHub 风格样式** — 基于 GitHub Primer 色板，支持亮色/暗色模式\n\n## 安装\n\n```bash\nnpm install @bdky/chat-pilot-kit-vue3\n# or\nyarn add @bdky/chat-pilot-kit-vue3\n```\n\n引入样式：\n\n```typescript\nimport '@bdky/chat-pilot-kit-vue3/styles.css';\n```\n\n## 快速开始\n\n### 1. 创建 controller 并注入\n\n```vue\n<!-- App.vue -->\n<script setup lang=\"ts\">\nimport {createChatPilotKit, provideChatPilotKit} from '@bdky/chat-pilot-kit-vue3';\nimport {MyAgentService} from './services/MyAgentService';\nimport ChatApp from './components/ChatApp.vue';\n\nconst controller = createChatPilotKit({\n    agentService: new MyAgentService(),\n});\n\nprovideChatPilotKit(controller);\n</script>\n\n<template>\n    <ChatApp />\n</template>\n```\n\n### 2. 在子组件中使用 Composables\n\n```vue\n<!-- ChatApp.vue -->\n<script setup lang=\"ts\">\nimport {\n    useChatPilotKit,\n    useConversations,\n    useChatPilotKitEvents,\n    getDefaultVueExtensions,\n} from '@bdky/chat-pilot-kit-vue3';\nimport NodeRenderer from '@bdky/chat-pilot-kit-vue3';\n\nconst {controller} = useChatPilotKit();\nconst conversations = useConversations();\n\nuseChatPilotKitEvents({\n    onConversationAdd: (conv) => {\n        console.log('新会话', conv.id);\n    },\n    onNodeAdd: (node) => {\n        console.log('新节点', node.id);\n    },\n});\n\nconst extensions = getDefaultVueExtensions();\n\nconst sendMessage = async () => {\n    await controller.conversationService.sendMessage({\n        content: 'Hello',\n        role: 'user',\n    });\n};\n</script>\n\n<template>\n    <div class=\"chat-container\">\n        <div\n            v-for=\"conv in conversations\"\n            :key=\"conv.id\"\n            class=\"conversation\"\n        >\n            <div\n                v-for=\"node in conv.nodes\"\n                :key=\"node.id\"\n            >\n                <NodeRenderer\n                    :node=\"node\"\n                    :extensions=\"extensions\"\n                />\n            </div>\n        </div>\n        <button @click=\"sendMessage\">发送</button>\n    </div>\n</template>\n```\n\n### 3. 自定义 NodeView\n\n```typescript\nimport {VueNodeViewRenderer, MessageExtension} from '@bdky/chat-pilot-kit-vue3';\nimport MyCustomView from './MyCustomView.vue';\n\nconst MyExtension = MessageExtension.extend({\n    name: 'my-node',\n    addNodeView() {\n        return VueNodeViewRenderer(MyCustomView);\n    },\n});\n```\n\n`MyCustomView.vue` 接收的 props 类型为 `NodeViewProps`：\n\n```vue\n<script setup lang=\"ts\">\nimport type {NodeViewProps} from '@bdky/chat-pilot-kit-vue3';\n\nconst props = defineProps<NodeViewProps>();\n</script>\n```\n\n## API 文档\n\n### Provider\n\n| 函数 | 说明 |\n|------|------|\n| `provideChatPilotKit(controller)` | 在父组件中注入 controller |\n| `injectChatPilotKit()` | 在子组件中获取注入的 context，未注入时抛错 |\n| `ChatPilotKitProviderKey` | InjectionKey Symbol |\n\n### Composables\n\n#### `useChatPilotKit()`\n\n返回 `{ controller }`，controller 为 `createChatPilotKit()` 创建的实例。\n\n#### `useChatPilotKitEvents(props)`\n\n监听 emitter 事件，组件卸载时自动清理。\n\n| 回调 | 触发时机 |\n|------|----------|\n| `onConversationAdd` | 新会话创建 |\n| `onConversationChange` | 会话状态变更 |\n| `onNodeAdd` | 新节点添加 |\n| `onNodeUpdate` | 节点内容更新 |\n| `onNodeInteraction` | 节点交互事件 |\n| `onHistoryImport` | 历史记录导入 |\n| `onClear` | 会话清空 |\n| `onError` | 错误事件 |\n| `onStart` | 开始生成 |\n| `onStop` | 停止生成 |\n| `onComplete` | 生成完成 |\n\n#### `useConversations()`\n\n返回 `ShallowRef<IConversationItem[]>`，响应式跟踪所有会话及其节点。\n\n#### `useNodeInteraction(props)`\n\n```typescript\nconst {sendCommand} = useNodeInteraction({\n    filter: (payload) => payload.nodeId === targetId,\n    onInteraction: (payload) => { /* ... */ },\n});\n\n// 向节点发送命令\nsendCommand(nodeId, 'copy', {});\n```\n\n### NodeView\n\n| 导出 | 说明 |\n|------|------|\n| `VueNodeViewRenderer(Component)` | 将 Vue SFC 包装为 NodeView factory |\n| `extractVueComponent(factory)` | 从 factory 中提取 Vue 组件 |\n| `NodeRenderer` | 核心渲染组件，自动选择 Vue/DOM 渲染路径 |\n| `DomNodeRenderer` | 非 Vue NodeView 的 DOM 挂载组件 |\n\n### 默认扩展\n\n```typescript\nimport {getDefaultVueExtensions} from '@bdky/chat-pilot-kit-vue3';\n\n// 获取全部 8 个默认扩展\nconst extensions = getDefaultVueExtensions();\n```\n\n也可单独引用：\n\n```typescript\nimport {\n    VueTextExtension,\n    VueMarkdownExtension,\n    VueThinkingBlockExtension,\n    VueToolCallExtension,\n    VueImageExtension,\n    VueFileExtension,\n    VueAudioExtension,\n    VueVideoExtension,\n} from '@bdky/chat-pilot-kit-vue3';\n```\n\n## 样式定制\n\n通过 CSS 变量覆盖 GitHub Primer 色板：\n\n```css\n:root {\n    --cpk-node-accent: #your-brand-color;\n    --cpk-node-surface: #your-surface-color;\n    --cpk-node-border: #your-border-color;\n}\n```\n\n支持 `[data-theme=\"dark\"]` 属性切换暗色模式：\n\n```javascript\ndocument.documentElement.setAttribute('data-theme', 'dark');\n```\n\n## 与 React 版对比\n\n| 特性 | React 版 (`chat-pilot-kit-react`) | Vue3 版 (`chat-pilot-kit-vue3`) |\n|------|----------------------------------|--------------------------------|\n| Provider | `<ChatPilotKitProvider>` 组件 | `provideChatPilotKit()` 函数 |\n| 获取 context | `useChatPilotKit()` hook | `useChatPilotKit()` composable |\n| 事件监听 | `useChatPilotKitEvents()` hook | `useChatPilotKitEvents()` composable |\n| 会话列表 | `useConversations()` hook | `useConversations()` composable |\n| NodeView 注册 | `ReactNodeViewRenderer` | `VueNodeViewRenderer` |\n| Markdown 渲染 | streamdown | markstream-vue |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}