Skip to main content
R

dsh-mate

revolutionla/dsh-mate

DSH Mate(求索伴侣)电脑端桥插件:为鸿蒙 App 提供配对、移动 REST API 与事件推送,远程查看与操作 DeepSeek Harness。

Install

dsh plugin --profile web add github:revolutionla/dsh-mate

README

📱 DSH Mate · 求索伴侣

DeepSeek Harness 的鸿蒙手机远程伴侣 — 电脑端 DSH 插件 × 鸿蒙 App

扫码配对后,即可在手机上实时查看 AI 任务进展发送消息审批操作中止任务,并在需要决策或任务完成时收到推送通知


License Protocol TypeScript ArkTS Node HarmonyOS

零账号 零登录 零信息收集


✨ 功能亮点

🚀 能力说明
📶 扫码即配对电脑终端显示二维码 / 6 位短码,App 扫码完成 HMAC-SHA256 挑战应答
💬 会话列表 + 详情查看所有 DSH 会话,实时流式渲染 AI 回复与工具调用
🎯 决策卡片审批(允许/拒绝)、回答问题、计划审阅,一键操作
🔔 任务通知任务完成 / 等待决策时实时推送(WebSocket;v1.1 可选华为 Push Kit)
🛠 设备管理查看已配对设备、重命名、吊销
🌐 局域网优先默认 LAN 直连;跨网复用用户自建隧道,无账号依赖

🏗 架构

flowchart LR
    subgraph Phone["📱 鸿蒙手机"]
        A["DSH Mate App<br/>(ArkTS · HarmonyOS NEXT)"]
    end
    subgraph PC["🖥 电脑 (dsh web 进程)"]
        B["dsh-mate 桥插件<br/>(Node.js · Cordis)"]
        C["DSH 宿主<br/>(DeepSeek Harness)"]
    end
    A <-->|REST / WebSocket| B
    B <-->|Cordis 事件与服务| C
    B --- B1["配对服务 (QR/HMAC)"]
    B --- B2["HTTP :3082 REST API"]
    B --- B3["WebSocket 事件推送"]
    B --- B4["信任层 (限流/封禁)"]
    B --- B5["可选推送中继 (v1.1)"]
手机 App ◄──REST/WS──► dsh-mate 桥插件 ◄──Cordis──► DSH 宿主
                         ├─ 配对服务 (QR/HMAC)
                         ├─ HTTP :3082 REST API
                         ├─ WebSocket 事件推送
                         ├─ 信任层 (限速/封禁/会话)
                         └─ 可选推送中继 (v1.1)

💡 图表在支持 Mermaid 的 GitHub 渲染;否则展示上方 ASCII 版。


📂 目录结构

dsh-mate/
├── 📦 packages/dsh-mate/      # 电脑端 DSH 插件(TypeScript · Cordis)
│   ├── src/
│   │   ├── index.ts           # 插件入口(装配 + 终端二维码)
│   │   ├── config.ts          # 配置归一化与安全校验
│   │   ├── server/            # HTTP + WebSocket 服务器 + 信任层
│   │   ├── pairing/           # QR/HMAC 配对 + 设备注册表
│   │   ├── bridge/            # 宿主桥(会话/交互/作业/goal/设备/事件)
│   │   ├── push/              # 可选推送中继(v1.1)
│   │   ├── tools.ts           # 会话内工具 mate_qr / mate_devices
│   │   └── types.ts           # 类型定义
│   ├── cordis.patch.yml       # 插件装载行 + 默认配置
│   └── package.json
├── 📱 harmony-app/            # 鸿蒙 App(HarmonyOS NEXT · ArkTS 严格模式)
│   └── entry/src/main/ets/
│       ├── pages/             # 页面(配对/会话列表/详情/通知/设备/设置)
│       ├── net/               # 网络层(RestClient/EventStream/TokenStore/PairingClient)
│       ├── model/             # 数据模型
│       ├── store/             # 全局状态(AppStore 单例)
│       ├── common/            # 常量 + 工具函数
│       └── entryability/      # Ability 入口
├── 🔗 shared/protocol/        # 跨端契约(schema.json 为单一来源)
├── 🛠 scripts/                # 开发辅助脚本
├── 📖 docs/                   # 设计文档(01–10)
└── README.md

🚀 快速开始

前置要求

组件版本
🟢 Node.js≥ 20
🤖 DSH (DeepSeek Harness)已安装并运行
🧩 DevEco Studio6.1+(仅鸿蒙 App 开发需要)

安装

git clone https://github.com/RevolutionLA/dsh-mate.git
cd dsh-mate
npm install

🔌 电脑端插件

# 从 npm 安装
dsh plugin --profile web add dsh-mate

# 或从源码构建后安装
cd packages/dsh-mate
npm run build
dsh plugin --profile web add file:/path/to/dsh-mate/packages/dsh-mate

# 配置 — 在 ~/.dsh/profiles/web/cordis.patch.yml 追加:
#   见 cordis.patch.yml 示例

# 启动
dsh web    # 终端出现配对二维码

📱 鸿蒙 App

  1. 用 DevEco Studio 打开 harmony-app/ 目录
  2. 配置签名(Build → Edit Signing Config)
  3. 连接鸿蒙真机或启动模拟器(API ≥ 23)
  4. Run → 运行到设备

🧪 离线开发:无需真实桥,用 Mock 桥即可开发 App:

npm run mock:bridge   # 启动 localhost:3082 模拟桥

🔐 协议与安全

配对协议(docs/03)

sequenceDiagram
    participant App as 📱 鸿蒙 App
    participant Bridge as 🖥 桥插件
    App->>Bridge: ① 扫码 / 短码
    Bridge-->>App: ② challenge (nonce + ts)
    App->>App: ③ proof = HMAC-SHA256(secret, sid|nonce|ts)
    App->>Bridge: ④ POST /verify (proof)
    Bridge-->>App: ⑤ deviceId + sessionToken
    Note over App,Bridge: ⑥ 请求携带 Bearer / HttpOnly Cookie

🛡 安全措施

措施说明
🔑 HMAC-SHA256 挑战应答CryptoArchitectureKit 实现,一次性 nonce
🧩 双通道认证Bearer Token + HttpOnly Secure Cookie
📊 IP 级限速300 req/min + 认证失败封禁(10 次 → 5min ban)
配对载荷 TTL5 分钟,一次性
🚧 强制配对非回环绑定必须启用配对,否则拒绝启动
🔁 断线重连WebSocket ACK 协议 + 指数退避

🧰 开发

常用脚本

命令说明
npm run build🏗 构建电脑端插件
npm run mock:bridge🧪 启动 Mock 桥(App 离线开发)
npm run dev:qr📶 终端二维码预览
npm run check:consistency🔍 协议一致性校验(docs vs schema vs types)
npm run test:project✅ 项目冒烟检查

插件开发

cd packages/dsh-mate
npm run build      # tsc → lib/
npm run typecheck  # 类型检查
npm run watch      # 增量编译

鸿蒙 App 开发

📱 SDKHarmonyOS NEXT 6.1.1(24),兼容 6.1.0(23)
📝 语言ArkTS 严格模式
🧱 架构分层解耦 — model → net → store → pages
🗃 状态管理AppStore 单例 + 多播回调数组
🌐 网络RestClient (HTTP) + EventStream (WS) + PairingClient + TokenStore

关键设计决策见 docs/10-鸿蒙App开发实施文档.md

协议变更流程

  1. 修改 shared/protocol/schema.json
  2. 同步 docs/04-移动端桥协议.md
  3. 递增 protocolVersion
  4. App 根据 GET /mate/v1/info 提示升级

运行一致性校验:npm run check:consistency


⚙️ 配置参考

插件配置写入 cordis.patch.ymlconfig 段:

字段默认值说明
host0.0.0.0监听地址
port3082监听端口
publicUrlnull公网隧道 URL(写入二维码)
pairing.enabledtrue是否启用配对(非回环绑定强制 true)
pairing.ttlMs300000配对载荷 TTL(5 分钟)
pairing.sessionMaxAgeDays30会话最长寿命
pairing.deviceIdleExpiryDays90设备闲置回收
rateLimit.max300IP 限速(请求数/窗口)
rateLimit.windowMs60000限速窗口
authFailure.max10认证失败封禁阈值
authFailure.windowMs300000认证失败窗口
authFailure.banMs300000封禁时长
push.providernone推送通道(none / huawei-pushkit / webhook)
push.webhookUrlwebhook 通道 URL

完整说明见 docs/05-内网穿透与部署.md


📡 REST API 速览

方法路径说明
🟢 GET/mate/v1/info协议版本 + 能力
🟢 GET/mate/pair/challenge?sid=获取配对质询
🟠 POST/mate/pair/verify提交配对证明
🟢 GET/mate/v1/sessions会话列表
🟢 GET/mate/v1/sessions/:id会话快照
🟠 POST/mate/v1/sessions/:id/messages发送消息
🟠 POST/mate/v1/sessions/:id/abort中止会话
🟠 POST/mate/v1/sessions/:id/markRead标记已读
🟠 POST/mate/v1/answers回答问题
🟠 POST/mate/v1/approvals/:id/decide审批决策
🟢 GET/mate/v1/jobs作业列表
🟠 POST/mate/v1/jobs/:id/kill终止作业
🟢 GET/mate/v1/devices设备列表
🟠 POST/mate/v1/devices/:id/rename重命名设备
🔴 DELETE/mate/v1/devices/:id吊销设备
🟠 POST/mate/v1/me/forget注销本设备
🔵 WS/mate/v1/events事件流(WebSocket)

完整契约见 docs/04-移动端桥协议.mdshared/protocol/schema.json


🧩 技术栈

组件技术
🖥 电脑端插件TypeScript · Node.js · ws · Cordis
📱 鸿蒙 AppArkTS · ArkUI · HarmonyOS NEXT SDK
🔑 配对安全CryptoArchitectureKit (HMAC-SHA256)
🌐 协议REST + WebSocket 事件流
🔔 推送 (v1.1)华为 Push Kit / Webhook

🗺 Roadmap

  • v1.0 电脑端桥插件(配对 / REST / WS / 信任层)
  • v1.0 鸿蒙 App(配对 / 会话 / 通知 / 设备 / 设置)
  • v1.1 华为 Push Kit 推送中继
  • v1.1 Webhook 推送通道
  • v1.1 通知设置持久化
  • v1.1 会话内图片 / 文件预览

📄 License

MIT © 2026 DSH Mate Contributors

Made with ❤️ for DeepSeek Harness × HarmonyOS

⭐ If this project helps you, give it a star!

Related plugins