{"_id":"@coco-box/ai-vue-2","name":"@coco-box/ai-vue-2","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@coco-box/ai-vue-2","version":"0.0.1","description":"基于 Vue 2.6+ 和 Composition API 的 AI Chat 绑定与工具","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"dependencies":{"@coco-box/ai":"0.0.1"},"peerDependencies":{"@vue/composition-api":">=1.6.0","vue":">=2.6.0"},"devDependencies":{"@vue/composition-api":"1.7.1","vue":"2.6.14","@types/node":"^20.11.5","@types/vue":"^2.0.0","rimraf":"^5.0.5","typescript":"^5.7.3","vite":"^5.0.12","vite-plugin-dts":"^4.0.0","vitest":"^1.2.2","eslint":"^9.33.0","@coco-box/ai-eslint-config":"0.0.1"},"scripts":{"dev":"vite build --watch","build":"vite build","type-check":"tsc --noEmit","lint":"eslint . --ext .js,.cjs,.mjs,.ts,.tsx,.vue --fix --ignore-path .gitignore","test":"vitest","clean":"rimraf dist"},"_id":"@coco-box/ai-vue-2@0.0.1","_integrity":"sha512-0NFlx0nJw52Y+KNsoGBlsCQObZBorTSWpE7R18J8DWSICLwaG0141jvSIcC+4nJJ0UB0dBIDFfiUWCK+UAVQ+A==","_resolved":"/private/var/folders/p_/77g0gmx14x9b1kw2y8yr_lpw0000gn/T/0c6d347f93eceabef4eecb3c0aa80562/coco-box-ai-vue-2-0.0.1.tgz","_from":"file:coco-box-ai-vue-2-0.0.1.tgz","_nodeVersion":"20.19.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-0NFlx0nJw52Y+KNsoGBlsCQObZBorTSWpE7R18J8DWSICLwaG0141jvSIcC+4nJJ0UB0dBIDFfiUWCK+UAVQ+A==","shasum":"d28d46072b54e70dc0919258b7b5cba24ae7aad8","tarball":"https://registry.npmjs.org/@coco-box/ai-vue-2/-/ai-vue-2-0.0.1.tgz","fileCount":6,"unpackedSize":41931,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDW0HPVcKpgjdPqOi+8Yb4xi3KQ0gswed79iAN5zIeTugIgacLPuLTkdlOVdGelNqhBeK2zNTJU4cyitMdGpXNVyec="}]},"_npmUser":{"name":"evelance","email":"evelancey@gmail.com"},"directories":{},"maintainers":[{"name":"evelance","email":"evelancey@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-vue-2_0.0.1_1780164595977_0.48405577031224634"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T18:09:55.804Z","0.0.1":"2026-05-30T18:09:56.107Z","modified":"2026-05-30T18:09:56.360Z"},"maintainers":[{"name":"evelance","email":"evelancey@gmail.com"}],"description":"基于 Vue 2.6+ 和 Composition API 的 AI Chat 绑定与工具","readme":"# @coco-box/ai-vue-2\n\nVue2.6+ 和 Composition API 版本的 `@coco-box/ai` 抽象类实现。使用方式可参考：<https://ai-sdk.dev/docs/getting-started/nuxt#wire-up-the-ui>\n\n## 安装\n\n```bash\nnpm install @coco-box/ai @coco-box/ai-ag-ui-adapter @coco-box/ai-vue-2\n```\n\n## 使用\n\n### 非 ag-ui 协议用法\n\n```ts\nimport { Chat } from '@coco-box/ai-vue-2';\n\nconst chat = new Chat({});\n```\n\n### ag-ui 协议用法\n\n```ts\nimport { Chat } from '@coco-box/ai-vue-2';\nimport { AgUiHttpTransport } from \"@coco-box/ai-ag-ui-adapter\";\n\nconst chat = new Chat({\n  transport: new AgUiHttpTransport({\n    api: '',\n    headers: {\n      'Content-Type': 'application/json',\n      Authorization: 'Bearer mock-token',\n    },\n    prepareSendMessagesRequest: (({ messages, trigger, body }) => {\n      const api = 'api/start';\n      switch (trigger) {\n        case 'submit-message': {\n          const lastMessage = messages[messages.length - 1];\n\n          // 只向服务器发送最后一条消息以限制请求大小:\n          return {\n            body: {\n              ...body,\n              user_id: aiConfig.userInfo.id,\n              query: lastMessage.parts[0]?.text,\n              inputs: {},\n            },\n            api,\n          };\n        }\n        default:\n          return { body: {}, api };\n      }\n    }),\n    onUpdate: () => {\n      tryAutoScroll(false, 'auto');\n    },\n  }),\n  onFinish: async ({ messages }) => {\n    console.log('onFinish', messages);\n  }\n});\n```\n","readmeFilename":"README.md","_rev":"1-cf40d75bba4b85ee7dacfd5a6c225165"}