Skip to content

oranleads

Verified

@oranlens/oranleads · v0.8.0 · UNLICENSED · Web UI

橙客 OranLeads:社媒评论区 AI 获客工作台(DSH 插件)

Install

dsh plugin add @oranlens/oranleads

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

橙客 OranLeads · DSH 插件

社媒评论区 AI 获客工作台。用户在 DSH 中填写 npm 包名 @oranlens/oranleads 安装。模型默认使用 DeepSeek Flash;免费体验一次任务,年卡最多授权两台设备。

实现

  • Rust 核心负责 SQLite 数据库、行业画像与提示词、预筛、评分与客户合并、授权、导出、备份和数据清理。
  • Node Host 负责接入 DSH、浏览器采集、模型调用和任务调度;界面使用 JavaScript。
  • 原生模块是必需组件,缺失或加载失败时停止启动。
  • 客户端只显示「今天」「客户」「设置」。首次体验引导暂时隐藏;无生意信息时进入设置。
  • 切入橙客工作台时自动收起 DSH 左侧栏;已经收起时保持不变,使用期间仍可通过 DSH 原有按钮或快捷键手动展开。宿主没有布局接口时正常打开工作台。
  • 失败任务显示原始原因和“AI智能寻客”重试入口,不再作为暂停任务提供“继续”;暂停任务仍可从断点恢复。关键词格式错误时向模型纠正格式并最多重试一次,不绕过任务授权。
  • 行业、卖什么、服务地区、客单价、同行五项匿名统计接入商城后端,见 匿名统计与设备授权。

本分支按未发布的新产品维护,不导入旧数据库、旧授权文件或此前实验目录。Node 版本的 main 已保存为 Git 标签 v0.7.0-node。

开发与验证

需要 Node.js 22.19+、Rust 1.95.0 和平台编译工具。原生构建支持 macOS arm64/x64、Windows arm64/x64。

npm ci
npm run build:native
npm run typecheck
npm test
npm run test:native
npm run build -- --production
npm run pack:smoke

Node 测试验证采集、RPC、模型调用、任务编排和原生接口;Rust 测试验证实际授权、SQLite、流水线、去重与恢复。测试不使用真实平台评论或付费模型。

维护和损坏库恢复见 Rust 维护说明。

本地安装

先构建当前平台的原生模块,再运行 ./install.sh。桌面版在 DSH「插件 → 安装第三方插件」中填写本目录路径,安装后重启 DSH。

本地调试(不用反复重装)

  1. npm run build:native:开发用原生模块,不要加 --js-integrity。带完整性校验的模块会拒绝改过的 JS,npm run dev 启动时会检查并提示。
  2. 在 DSH「插件 → 添加插件 → 安装第三方插件」填写本目录的绝对路径,只需装一次。pnpm 会把它记成 link:,插件直接从本目录加载。装过打包版(.tgz)的要先卸载。浏览器版用 ./install.sh --dev。
  3. 改完代码后构建,有三种方式:
    • 手动跑 npm run build。
    • 用 npm run dev 监听改动,自动重新构建。
    • 由 Claude Code 修改代码时,scripts/autobuild.sh 作为 PostToolUse hook 运行:源码比构建产物新时才构建,配置在仓库根目录的 .claude/settings.local.json,不进 git。
  • ui/、client/adapter.js、plugin.json 改动:重建 client/bundle.js,DSH 自带的 client-hmr 约 0.5 秒内把插件替换进页面,不用刷新。插件内的界面状态会重置,会话和数据不受影响。
  • src/host/ 改动:重建 host/index.js,完全退出 DSH(Cmd+Q)后重新打开生效。
  • native/ 改动:重新运行 npm run build:native,再重启 DSH。

npm run dev 生成的是开发构建,不压缩。发布前仍按下面「打包」一节执行生产构建。

普通用户使用官网三步教程:DeepSeek 账号及余额 → 下载并登录 DSH → 通过 npm 包名安装橙客。

打包

npm pack 构建生产版并检查当前平台安装包。npm publish 还会检查 macOS arm64/x64 和 Windows arm64/x64 四套 release 模块,避免发布缺少原生核心的包。

发布构建带 JS 宿主完整性校验:先 npm run build -- --production,再 npm run build:native -- --js-integrity,把当时 host/client 的 SHA256 编进原生模块;会话打开时 Rust 自定位包目录校验这两个文件,包内 JS 被篡改即拒绝启动(core-integrity-invalid)。开发构建不加 --js-integrity,不影响本地迭代。CI 已按此顺序执行。

GitHub Actions 工作流 Build native npm package 在各平台分别编译和测试,再合并 native/bin/<platform>-<arch>,生成完整 npm 包。包内包含 Host、客户端、浏览器适配资源和原生模块;不包含 Rust 源码、模板源文件、调试符号。

在 Actions 中运行此工作流,完成后下载 oranleads-package 附件,包含 .tgz、体积报告和 SHA256SUMS。工作流支持手动运行,以及 main / feat/client-hardening-ab 分支的相关代码推送;PR 也会验证。附件保留 14 天,不自动发布到 npm。

在 macOS 本机可使用 npm run build:native:all 顺序构建四个平台,或 npm run build:native -- --target win32-arm64 构建指定平台。先通过 rustup target add aarch64-apple-darwin x86_64-apple-darwin x86_64-pc-windows-msvc aarch64-pc-windows-msvc 安装目标。Windows 交叉编译需要 cargo install cargo-xwin --locked、PATH 中的 clang-cl、lld-link、llvm-lib(LLVM);cargo-xwin 首次下载 Microsoft CRT / Windows SDK。每次编译限制为两个并行作业。

四个平台完成后运行 npm run build -- --production、npm run pack:smoke -- --all-targets、node scripts/package-report.mjs,在 native/package/ 生成完整安装包与体积报告。交叉编译不替代 Windows 真机验收。

CloakBrowser 优先使用内置包,否则先从 CDN 下载:https://ui-cdn.ginlongoss.com/cloak-browser;失败后自动切换原 OSS 直连地址:https://ginlong-product.oss-cn-shanghai.aliyuncs.com/oranlens/cloak-browser。每个地址使用独立安装进程,压缩包与 SHA256SUMS 均从同一地址获取,切换时重新下载并重置进度。使用绑定的业务域名访问 CDN,不直接使用 .w.kunluncan.com 的 CNAME 调度地址。可用 CLOAKBROWSER_DOWNLOAD_URL 覆盖基址;显式配置自定义镜像后只使用该镜像,失败时报告错误。下载进程在导入 CloakBrowser 前接收镜像配置,避免依赖提前固定为官方源。镜像与离线打包工具为 scripts/vendor-cloak.mjs,浏览器二进制不进入 Git。

进入插件时检查采集浏览器,缺失则弹窗提示下载安装;浏览器就绪后才可从界面发起寻客。下载弹窗和设置页均显示真实下载字节、总大小、百分比与平均速度;无 Content-Length 时显示已下载量,不伪造百分比。Windows x64 当前版本压缩包约 536 MiB(562 MB),各平台大小不同。下载、校验、解压和就绪分阶段展示,以安装进程成功结束并验证可执行文件为完成依据。进度通过独立安装进程传回,Windows 同步解压不会阻塞 Host RPC。

下载弹窗显示安装目录,桌面版可用“选择文件夹”打开 DSH 原生目录选择器,也可手动输入绝对路径。所选位置自动补上 CloakBrowser 文件夹,例如选择 E:\ 后实际安装到 E:\CloakBrowser,选择已有的 CloakBrowser 或 .cloakbrowser 文件夹时不重复添加。界面显示最终安装目录,保存、下载、启动和重启检测均使用该目录;安装或运行期间不能更改。默认缓存目录和此前保存的安装位置保持沿用,选择新目录不会移动或删除旧目录的文件。

目录保存前会实际创建、写入并清理临时文件来检查权限,已存在的目录不会重复创建。校验失败时保留所选路径并显示错误码,不会自动改用默认目录下载。浏览器安装完成后,设置页“平台账号”卡片仅显示“采集浏览器:已就绪”,不展示目录、下载进度或更改目录按钮。

安装完成后弹窗显示“开始使用”,不再显示无需操作的“应用安装目录”。只有手动修改已就绪浏览器的路径后才显示“保存目录”,保存成功会明确提示。

每个下载地址连续 60 秒收不到数据时中止该次尝试,解压超过 3 分钟或单次安装超过 10 分钟也会报错;CDN 失败会尝试 OSS 备用地址,两个地址都失败才提示重试。下载期间可以后台查看已有客户及编辑设置,平台登录暂时禁用;后台浏览器请求等待同一个安装 Promise。读取进度遇到临时 RPC 错误会提示并继续重连。

首次发起 AI 智能寻客、继续既有任务或开启每天自动找时,需阅读并主动勾选同意“AI 自动采集使用声明与风险提示”。不同意、关闭弹窗或同意记录保存失败均不会启动任务。本地保存声明版本及同意时间,相同版本不重复确认,声明更新后需再次同意。任务引擎和定时器同样检查同意记录,Agent 调用及重启恢复也不能绕过确认。声明正文维护于 src/host/task/consent.ts,涵盖个人学习研究用途、平台授权与规则、隐私和内容权利、账号及费用风险、AI 结果局限、依法保留的责任。

目录

native/src/              Rust 业务核心
native/assets/           唯一数据库 schema、模板与测试样例
native/bin/              各平台原生模块及校验清单(构建生成)
src/host/native/         原生加载、接口类型与 DSH 适配
src/host/collector/      浏览器与平台采集
src/host/ai/             模型调用、关键词编排、类型与任务预估
src/host/task/           任务、进度、节奏和调度
src/host/rpc/            客户端接口
ui/                     客户端界面
test/                   Node 编排、采集及原生接口测试
host/index.js           Host 构建产物
client/bundle.js        客户端构建产物

当前验证范围

本地验证环境为 macOS arm64。macOS x64、Windows arm64/x64 的原生模块、真实 DSH 加载与生产 Keygen 全流程仍需在对应环境验收。

数据库与备份使用普通 SQLite,不加密。授权凭据由数据目录里的设备密钥文件加密保护(2026-10-27 起不再使用系统钥匙串)设备密钥存于 core/device.key,年卡凭据 core/license.sealed 与体验/时钟记录 core/ledger.sealed 用它加密;文件只对当前系统用户可读。删除数据目录会重置免费体验。应用内备份恢复仅支持同一设备和系统用户。此前开发版的 SQLCipher 文件不会被覆盖,但需先转换后才能使用。