跳到主要内容

dsh-workspace-enhancement

已验证

dsh-workspace-enhancement · v0.1.0 · MIT · Web 界面

Unified SSH remote-execution plugin for DeepSeek Harness — ProxyJump chain, SFTP filesystem, subprocess and PTY over ssh2

安装

dsh plugin add dsh-workspace-enhancement

dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南

源码

标签

作者

说明文档

dsh-workspace-enhancement

English | 中文

npm 版本 许可证 Node 版本 dsh-plugin

一个 DeepSeek Harness 工作区增强插件:把本地和远程(SSH)工作区放到一个包里统一管理。一个会话可以挂多个工作区(主工作区 + 副目录),每个副目录独立授权;机器、TOFU 指纹与钥匙串都存在你本机的 ~/.dsh 下。底层用 ssh2

功能

功能 说明
远程工作区 ctx.subprocess + ctx.fs 透明远程 provider:一条 SSH(多级跳板)跑 bash / 文件 / PTY / 目录浏览,走这两条缝的工具不用改就切到远程
多工作区会话 会话标题栏「⊕ 工作区」按钮:一个会话可挂一个或多个副工作区(本地目录 / 远程机器目录),各自独立权限(fs: 只读/读写 + exec: 开/关);模型能看到清单并直接操作
添加工作区流程 连接侧栏(已保存机器、~/.ssh/config 别名、本机)+ 目录浏览器(面包屑、系统选择器、新建文件夹);远程「连接并打开」直接在服务器上建会话
机器设置页 机器增删改 / 测试 / 设当前 / 忘指纹;OS 钥匙串存密码;TOFU 主机指纹(默认 accept-new)
会话感知 会话栏远程标识 + 未知/活跃/离线三态 + 重连;每会话自动注入远程/副工作区上下文(含权限标记)
模型工具 sw_statussw_connectsave:false=临时)、sw_pick_workspace

工作原理

flowchart LR
    subgraph local["本机"]
        agent["agent loop<br/>编排 · 记忆 · LLM 调用"] --> seam["本插件<br/>ctx.subprocess · ctx.fs"]
    end
    subgraph remote["远程主机"]
        run["bash · 文件 · PTY(终端)"]
    end
    seam -- "一条 SSH(可多级跳板)" --> run

远程不用装 DSH:模型在本地编排,命令在远程跑,结果再回本地进上下文。

设计要点(实现机制,非用户功能):

  • 注册表与路由remote-workspaces/machines.json 是单一事实源;ssh://<id>/<path>(以及本地 dsw-routes 占位树)把每个操作路由到对应机器;能识别 ~/.ssh/config 别名。
  • 安全:TOFU 主机指纹(accept-new / verify / off);按机器存 OS 钥匙串(DPAPI / security / secret-tool);错误消息里脱敏凭据。
  • 工作区权限:在引擎接缝处强制(ctx.subprocess / ctx.fs 是本插件的唯一实现):只读副工作区拒绝写入;exec: off 拒绝在该副工作区下启动进程;不解析命令文本(文档化边界)。

安装

# 从 npm 安装(v0.1.0+)
dsh plugin --profile web add dsh-workspace-enhancement
# 源码安装:先 npm run build(宿主加载 lib/)
dsh plugin --profile web add <本仓库路径>

DSH 供应链 pnpm 首次安装须知:原生构建脚本默认被拦截。先在 profile 的 pnpm-workspace.yaml(非严格 allowBuilds)放行 ssh2cpu-featureskoffinode-ptydsh-subprocess-local,再执行 dsh plugin --profile web install; 否则首次 add 会以非 0 退出(ERR_PNPM_IGNORED_BUILDS)且 bundle 不会被追加。

路线图

当前进度与剩余里程碑:见 docs/ROADMAP.md

参考项目

  • dsh-ssh:远程执行引擎(ctx.subprocess / ctx.fs provider、跳板链、PTY、directory-picker 接缝、session.route 占位)。
  • dsh-remote:工作区助手(machines 注册表、TOFU、OS 钥匙串、Web UI 与设置页)。

License

MIT