Files
chat/AGENTS.md
2026-04-25 16:36:34 +08:00

3.4 KiB
Raw Permalink Blame History

Sales Chat 插件项目说明

项目信息

  • 类型: Tailchat 插件 + Flutter 移动端
  • 位置: /Users/sion/Desktop/projects/tailchat-sales/
  • 插件目录: server/plugins/com.msgbyte.saleschat/
  • 推荐 Node 版本: 18Dockerfile 基础镜像 node:18.18.0-alpine
  • 推荐 pnpm 版本: 8通过 corepack 或 npm install -g pnpm@8

项目结构

tailchat-sales/
├── server/                              # 后端服务Tailchat
│   ├── plugins/com.msgbyte.saleschat/   # 销售聊天插件
│   ├── admin/                           # 管理后台(独立前端)
│   └── packages/sdk/                    # Tailchat Server SDK
├── client/
│   ├── web/                             # Web 前端Tailchat 聊天界面)
│   ├── flutter/                         # Flutter 移动端(独立应用)
│   └── shared/                          # 前端共享代码
├── Dockerfile                           # 生产构建Node 18
└── docker-compose.yml                   # 全套服务编排

启动方式

方式一Docker推荐

docker-compose up -d          # 启动全部服务
docker-compose logs -f tailchat  # 查看日志
docker-compose down           # 停止服务
  • 后端 + 前端: http://localhost:3000
  • MinIO Console: http://localhost:9001
  • 管理员: tailchat / com.msgbyte.tailchat

方式二:本地开发(需要 Node 18

npx pnpm@8 install
DISABLE_REPL=true TS_NODE_TRANSPILE_ONLY=true npx pnpm@8 --filter tailchat-server dev:main   # 后端
NODE_OPTIONS='--no-experimental-strip-types' npx pnpm@8 --filter tailchat-web dev             # 前端
  • 后端: http://localhost:11000
  • 前端: http://localhost:11011

注意: 本地开发需要先启动 MongoDB、Redis、MinIO可用 docker-compose up -d mongo redis minio

环境变量

开发环境server/.env

PORT=11000
SECRET=dev-secret-key
MONGO_URL=mongodb://tailchat:tailchat_secret@127.0.0.1:27017/tailchat?authSource=admin
REDIS_URL=redis://127.0.0.1:6379/
MINIO_URL=127.0.0.1:9000
MINIO_USER=tailchat
MINIO_PASS=tailchat_secret
ADMIN_USER=tailchat
ADMIN_PASS=com.msgbyte.tailchat
DISABLE_TRACING=true

Docker 环境docker-compose.yml

已内置配置,无需额外 .env 文件。

插件开发

插件结构

server/plugins/com.msgbyte.saleschat/
├── package.json
├── services/
│   ├── invite.service.ts    # 邀请管理
│   ├── stats.service.ts     # 数据统计
│   └── admin.service.ts     # 管理功能
├── models/
│   ├── invite.model.ts
│   └── stats.model.ts
└── test/
    └── integration.spec.ts

构建 & 测试

cd server/plugins/com.msgbyte.saleschat
pnpm build
pnpm test

Flutter 移动端

cd client/flutter
flutter pub get
flutter run

已知问题

Node 23 不兼容

本项目依赖 moleculer 0.14、typegoose 9、ts-node 10与 Node 23 不兼容:

  • performance.now() this 上下文问题
  • ts-node ESM 模块解析冲突
  • typegoose 装饰器类型推断失败

解决方案: 使用 Node 18Docker 已内置),或用 fnm 管理多版本:

fnm install 18 && fnm use 18

pnpm 版本

lockfile 是 v6 格式pnpm 8pnpm 10 不兼容。用 npx pnpm@8corepack 管理。