MonshinYu/dsh-bun-compat-patch0

dsh-bun-compat-patch

DSH 插件:在 Bun 1.3.14 上运行 DeepSeek Harness 的 Node API 兼容层

AI 分析

通过预加载影子副本和转换导入,使 DSH 能在 Bun 运行时中顺利启动。适合追求极速启动、希望用 Bun 替代 Node 运行 DSH 的开发者。

包名
dsh-bun-compat-patch
版本
0.1.0
最近更新
2026年8月18日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

DSH Bun Compatibility Patch(TypeScript 版)

这是一个可构建、可打包的 TypeScript 版本,用于在 Bun 1.3.14 上运行 DeepSeek Harness。它不会修改 Bun,也不会修改已安装的 DSH 包;启动时会创建依赖影子副本并仅转换需要兼容的导入。

构建

cd dsh-bun-compat-patch
bun run build

构建结果位于 dist/。Bun 入口与 Node helper 都会编译成 ESM JavaScript,并生成 sourcemap。

测试与检查

bun run test
bun run check

测试包括 TypeScript 位置保持剥离、workerData、parentPort、stdout、stderr、ELU、Node 原生 worker 内存限制,以及真实 DSH code-runtime 执行。

启动 DSH

在项目根目录执行:

bun --preload ./dsh-bun-compat-patch/dist/preload.js \
  node_modules/@deepseek-ai/dsh/lib/bin.js web

如果默认端口被占用,可以指定端口:

bun --preload ./dsh-bun-compat-patch/dist/preload.js \
  node_modules/@deepseek-ai/dsh/lib/bin.js web --port 39876

制作 npm 包

cd dsh-bun-compat-patch
bun run pack

prepack 会自动重新构建,生成的 tarball 只包含 dist/README.md 和包清单。

兼容性说明

  • stripTypeScriptTypes:同步调用系统 Node 的真实实现,保持源码位置。
  • Worker:由 Bun facade 和 Node worker_threads.Worker 子进程桥接组成。
  • resourceLimits:由 Node worker 原生执行。
  • stdout/stderr:通过控制协议转发为 EventEmitter 形状。
  • ELU:采集目标 worker 的数据并向 Bun 主进程提供缓存采样。
  • 服务端 profile/config HMR:Bun 1.3.14 缺少 Cordis 所需的 Node 私有 ESM loader,因此兼容模式下禁用;修改配置后需重启 DSH。