{"_id":"@clouddreamai/collector","name":"@clouddreamai/collector","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@clouddreamai/collector","version":"1.0.0","description":"CloudDreamAI 本地 AI 工具数据采集 CLI","main":"dist/cli.js","bin":{"clouddreamai-collector":"bin/collector.js"},"scripts":{"build":"tsc","dev":"ts-node src/cli.ts","start":"node dist/cli.js","prepublishOnly":"npm run build","lint":"tsc --noEmit"},"engines":{"node":">=18.0.0"},"keywords":["clouddreamai","collector","cli","ai-data"],"license":"UNLICENSED","dependencies":{"axios":"^1.13.6","chalk":"^4.1.2","commander":"^11.1.0","form-data":"^4.0.5","inquirer":"^8.2.7","ora":"^5.4.1"},"devDependencies":{"@types/inquirer":"^8.2.12","@types/node":"^20.19.37","ts-node":"^10.9.2","typescript":"^5.9.3"},"_id":"@clouddreamai/collector@1.0.0","gitHead":"85d9588611e76f3e466b6ce8aca9ad184727001d","types":"./dist/cli.d.ts","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-oR/hREyebZ1addRptOaQLRF0pD5QjnhYw60MKnoC7kWSZyXobvk6EttBORAFMr3DSmJ++2ey1fFCZXlJ8PWaNQ==","shasum":"4e7b31b95e4e7502bed3bb3eecbb499f18878c8c","tarball":"https://registry.npmjs.org/@clouddreamai/collector/-/collector-1.0.0.tgz","fileCount":42,"unpackedSize":83892,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFVR7kMaXs/IrP9yI9Gj5iaeo5xLLWKVQpKTD7LPgLltAiEA+G6FFaPcrXe9/dyRvU1f/yeroCodkMXdUBJ0LRhvN5I="}]},"_npmUser":{"name":"clouddreamai","email":"tangxue@clouddreamai.com"},"directories":{},"maintainers":[{"name":"clouddreamai","email":"tangxue@clouddreamai.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/collector_1.0.0_1774439989496_0.8237801440413306"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-25T11:59:49.328Z","1.0.0":"2026-03-25T11:59:50.894Z","modified":"2026-03-25T11:59:51.481Z"},"maintainers":[{"name":"clouddreamai","email":"tangxue@clouddreamai.com"}],"description":"CloudDreamAI 本地 AI 工具数据采集 CLI","keywords":["clouddreamai","collector","cli","ai-data"],"license":"UNLICENSED","readme":"# @clouddreamai/collector\n\nCloudDreamAI 本地 AI 工具数据采集 CLI — 一行命令将本地 Claude Code 会话数据增量上传到 CloudDreamAI 平台。\n\n## 快速开始\n\n```bash\nnpx @clouddreamai/collector\n```\n\n首次运行会引导你配置服务器地址和登录信息，后续运行直接增量上传。\n\n## 全局安装\n\n```bash\nnpm install -g @clouddreamai/collector\nclouddreamai-collector\n```\n\n## 命令\n\n| 命令 | 说明 |\n|------|------|\n| `clouddreamai-collector` | 默认：首次引导配置，后续增量上传 |\n| `clouddreamai-collector login` | 登录（切换账号或重新认证） |\n| `clouddreamai-collector upload` | 扫描并增量上传 |\n| `clouddreamai-collector status` | 查看本地统计（总数/已上传/待上传） |\n| `clouddreamai-collector logout` | 清除本地凭据 |\n\n## 认证方式\n\n支持三种登录方式：\n\n- **账号密码** — 用户名/邮箱/手机号 + 密码\n- **手机验证码** — 输入手机号，接收验证码登录\n- **飞书登录** — 自动打开浏览器完成飞书 OAuth 授权\n\n## 支持的数据源\n\n| 数据源 | 状态 | 说明 |\n|--------|------|------|\n| Claude Code Sessions | ✅ 已支持 | 扫描 `~/.claude/projects/` 下的 `.jsonl` 文件 |\n| Cursor | 🔜 计划中 | — |\n| Windsurf | 🔜 计划中 | — |\n| GitHub Copilot | 🔜 计划中 | — |\n\n## 工作原理\n\n1. **扫描** — 遍历 `~/.claude/projects/` 下所有项目目录，发现 `.jsonl` 会话文件\n2. **增量检测** — 计算文件 SHA-256 hash，与本地已上传记录对比，跳过已上传的文件\n3. **批量上传** — 每批最多 20 个文件上传到后端 `/api/upload/files`\n4. **双重去重** — CLI 本地去重 + 后端 SHA-256 去重，防止重复上传\n\n## 配置文件\n\n配置存储在 `~/.clouddreamai/` 目录下：\n\n```\n~/.clouddreamai/\n├── config.json      # 服务器地址、认证 token、用户信息\n└── uploaded.json    # 已上传文件的 SHA-256 hash 记录\n```\n\n## 开发\n\n```bash\ngit clone https://gitlab.clouddreamai.com/clouddreamai-tools-public/upload-session-history.git\ncd upload-session-history\nnpm install\nnpm run dev          # 开发模式运行\nnpm run build        # 编译 TypeScript\nnpm run lint         # 类型检查\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-37aaef749caf2ff6ea91b9c5125ce00b"}