wenbin-wb/dsh-bridge
wenbin-wb/dsh-bridgeDeepSeek Harness 远程与移动端接入插件:提供局域网扫码直连、Cloudflare 与自建公网隧道,以及微信、QQ、飞书、Telegram 机器人交互,内置安全认证与访问控制。
远程控制:把 ask / 审批 / 会话结束事件推送到外部通道 webhook,可用 token 鉴权在手机上回答问题、批准请求、查询状态或继续会话(npm: `dsh-my-remote`)。
dsh-my-remote:离开电脑后依然可以掌控 DSH——ask / approval / 会话结束事件实时下发到外部通道(手机 / IM),在手机上回答 ask、批准 approval、查询会话状态、继续任务。
ask(提问等待回答)/ approval(等待批准)/ end(会话结束)实时下行到外部通道(HTTP webhook / 中转服务 / IM 机器人网关),帧含会话标题、问题文本与选项、审批原因与工具名。这三个是本插件下行帧的 `kind`(不是宿主事件名):宿主侧监听 agent/status(idle 且顶层 agent ⇒ end)/ tools/execute(⇒ ask)/ approval/request(⇒ approval)。allowed-once)或拒绝(rejected),approval 等待方立即决议,工具放行或拦截。continue 指令唤醒或继续对应会话。apiToken 鉴权(写指令带 x-remote-token 头)+ 指令白名单 + 操作审计。设置 → 插件 → 远程控制 可视化编辑 4 项配置(token 掩码、两个超时、webhook 列表增删改),保存即生效。# npm 安装(推荐)
dsh plugin --profile web add dsh-my-remote
# 或从本仓库 link 安装
git clone https://github.com/baosfeng/my-dsh-plugins.git
dsh plugin --profile web add link:<仓库路径>/plugins/dsh-my-remote设置 → 插件 → 远程控制 面板可视化编辑 4 项配置,保存即生效(写回 profile 层 cordis.patch.yml 的 remote 行):
项 · 说明 apiToken · 密码型输入框;已配置时提示「留空则不修改」,不回显原文 askTimeoutMs / approvalTimeoutMs · 毫秒,0 = 无限等待 webhooks · 列表编辑器:增 / 改 / 删 / 启停(名称、URL、事件多选)
两处刻意的边界:webhook 的自定义 `headers` 与 `end`/`ask`/`approval` 事件开关不在面板里,仍需在 yml 手写;面板保存会先读该行已有配置再合并,不会覆盖这些手写项。
cordis.patch.yml 中插件行的 config: 字段,全部可选:
config:
apiToken: 'your-token' # 写指令鉴权;留空则仅靠 loopback 围栏
askTimeoutMs: 0 # 远程回答等待超时(0=无限;>0 超时返回空 answers 由模型自行决策)
approvalTimeoutMs: 0 # 远程批准等待超时(0=无限;>0 超时 fail-closed 拒绝)
webhooks:
- name: '我的中转服务'
url: 'https://relay.example.com/hook'
events: ['ask', 'approval', 'end'] # 缺省 = 全部
enabled: true
headers: # 自定义请求头(中转服务鉴权等);设置页不暴露,保存时按名称保留
Authorization: 'Bearer xxx'外部中转服务/IM 机器人收到下行事件帧(JSON,POST)后,可调用这些端点应答:
端点 · 说明 GET /remote/api/info · 插件开关信息 GET /remote/api/status · 活动会话 / 待回答 ask / 待批准 approval 快照 GET /remote/api/audit · 操作审计日志(指令留痕) POST /remote/api/command · 远程指令统一入口(x-remote-token 头鉴权)
command 动作:answer(按问题 id 选项或自由文本回答)、approve(outcome 为 allowed-once 或 rejected)、continue(经 agent.steer 注入用户消息继续会话)。
远程调用(非本机)需把 DSH 的trustedHosts配置为你的中转服务域名,并用apiToken鉴权。详见 docs/远程控制/概述.md。
→ 远程控制概述 · CHANGELOG
dsh-my-notify;ask 拦截/steer 参考 dsh-task-reliability;approval 决议契约来自 DSH dsh-user-approval('allowed-once' 是唯一批准)。dsh-shared(isTrustedApiRequest / readJsonBody / writeJson)。