dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
一款修复了「DeepSeek Harness 不能自动开源用户代码」这个问题的插件。
作为中国 AI 界的扛把子,Deepseek Harness 却没有跟上开源用户代码的潮流 —— 所以我特意做了这个插件,弥补这个空白。

「代码在自己上传!」说的是你自己机器上的字节,在 127.0.0.1 的回环网卡里跑来跑去。
插件在宿主进程里起一个只绑回环地址的测速口,然后自己当客户端去压它,量出这台机器的 TCP 吞吐。
| 位置 | 内容 |
|---|---|
| 设置 → 开源用户 | 「打包 / 上传」两项指标、一颗「上传」按钮、实时进度与瞬时速率柱状图、「自动上传」定时设置、「云端备份」、「最近记录」(单条可删 / 一键清空)、「上传图片」(换成自己的图 + 调侧栏图片宽度) |
| 左侧栏「插件」下方 | 一栏实时带宽(↓1.23G ↑0.98G);没测过显示「等待上传」,测速中显示「开源中」,并在那一栏里接一张图 |
主面板 net-speed | 标题「本机自动开源」,和设置页是同一台仪器 |
dsh-users-open-source)http.createServer(...),只 listen(0, '127.0.0.1') —— 随机端口,只有本机能连;$DSH_HOME/dsh-users-open-source/history.json;setTimeout 链排程 —— 浏览器关着也照跑。dsh-users-open-source-workspace)那颗「云端备份」按钮确实会在文件资源管理器里打开你的工作区目录,但它只递一个 sessionId,
目录永远由宿主从 DSH 自己的账本里查出来,客户端没机会递任意路径:
sessionId 命中的工作区;D:\work\my-project ⇄ --D-work-my-project--);$DSH_HOME/storages/session_projcache/sessions/*.json 里最新那份的 cwd;updatedAt 最新的工作区;打开动作走宿主自己的 ctx.subprocess,目录作为 argv 里的一项直传、不经 shell,
所以空格、中文、& 都不会被当成命令。
dsh plugin --profile <你的 profile> add dsh-users-open-source
从 npm 装即可,伴生包是本包的 dependencies,会自动带上;装完重启一次 dsh web。
也可以直接从 GitHub 源码装:
dsh plugin --profile <你的 profile> add github:KAIROSLLL/dsh-users-open-source
⚠️ 主包对伴生包的依赖写的是普通 ^0.1.0,不是 pnpm 的 workspace:^ ——
后者只在作者自己的 monorepo 里能解析,从 Git 子目录安装时伴生包会被静默跳过
(DSH 市场对这种情况的提示是"无法从 Git 子目录单独恢复")。所以走源码安装时,
请确认 npm 上已经发布了对应版本。
本地联调(不经过 npm registry):
dsh plugin --profile <你的 profile> add "link:<本仓库>\packages\dsh-users-open-source"
lib/client.js 由 dsh-client-hmr 热重载,刷新页面即可;lib/host.js 改动要重启 dsh web(模块进了 ESM 缓存);lib/open-folder.ps1 / lib/focus.cs 每次调用现读,改完立刻生效。overflow: hidden,图可能被裁掉一部分;open / xdg-open,未实测;spawn('explorer.exe', [dir]) 打开的窗口
IsWindowVisible 是 false —— 窗口存在(COM 能枚举到 CabinetWClass),但看不见;
后台进程直接调 SetForegroundWindow 也会被 Windows 拒绝。所以 Windows 上走包内的
open-folder.ps1 + focus.cs:Shell.Application.Explore 打开,再用 AttachThreadInput +
ShowWindow(SW_SHOW / SW_RESTORE) + BringWindowToTop + SetForegroundWindow 显形。HWND_TOPMOST、也没有循环 SetForegroundWindow。
试过,观感像被劫持("我是不是中病毒了")。现在只显示 + 给一次焦点,然后撒手。keybd_event 会释放前台锁,反而让两个窗口每几百毫秒互相抢焦点。packages/
├─ dsh-users-open-source/ 主包
│ ├─ lib/host.js 回环测速口 / 测速引擎 / 自动上传调度 / HTTP 路由
│ ├─ lib/client.js 客户端半边(设置页「开源用户」、侧栏、主面板)
│ ├─ assets/code-upload.jpg 测速时弹的那张默认图
│ ├─ cordis.patch.yml 插入两条 entry(本包 + 伴生包)
│ └─ tests/smoke.mjs 24 项自检
└─ dsh-users-open-source-workspace/ 伴生包(不是独立 bundle)
├─ lib/index.js POST /dsh-users-open-source/open-workspace
├─ lib/open-folder.ps1 Windows:Explorer 打开 + 显形
├─ lib/focus.cs Win32 声明
└─ tests/smoke.mjs 9 项自检
为什么要拆成两个包:主包带 dsh.client 半边,而 dsh-client-modules 按「模块最近的
package.json」判定来源包 —— 同一个包里挂第二条 loader entry,无论写包内子路径(loader 解析不了)
还是写 file: URL(被判成本包的第二个 Loader 源)都会让启动直接崩。独立成包后 entry name
就是包名,两边都干净。
pnpm install
pnpm -r test # 两个包各自的 smoke 测试
pnpm -r exec pnpm pack --dry-run # 看 npm 包里到底是什么
# 顺序不能反:先伴生包,再主包(主包依赖它)
cd packages\dsh-users-open-source-workspace
pnpm publish --access public
cd ..\dsh-users-open-source
pnpm publish --access public
MIT