Development & Runtime

dsh-forge

zhn1100/dsh-forge · ★ 4

zhn1100

Reproducible DeepSeek Harness plugin development environment

README body is shown in Chinese.

License
MIT
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:zhn1100/dsh-forge

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: zh · Read Chinese README

Table of contents
  1. DSH Forge
  2. 能做什么
  3. 安装
  4. 启动
  5. 工作区边界
  6. 常用命令
  7. 开发验证
  8. License

DSH Forge

面向 DeepSeek Harness 的独立插件开发环境。它把源码参考、运行时检查、实验记录、验证和正式化流程收进一个可复现的 Forge Profile,同时避免污染日常使用的 DSH 环境。

当前版本针对 @deepseek-ai/dsh@0.1.0-rc.6,参考源码固定在官方提交 47f943859bef60e4160492346772ded9b24f765a。本项目不是 DeepSeek 官方项目。

能做什么

  • 建立独立的 ~/.dsh-forge Home、forge Profile 和开发者 Agent Preset。
  • 本地索引 Harness 文档、源码符号、Service、事件、工具、Config 和示例。
  • 管理可恢复的插件实验、验证状态与 Promotion scaffold。
  • 提供受限的 quick、package、full 验证流程。
  • 每次启动安全同步普通 ~/.dsh 中的用户配置,同时保护 Forge 本地修改。
  • 每次启动镜像普通 ~/.dsh 各 Profile 通过 cordis.patch.yml insert 声明的 out-of-tree 插件(包目录 + Forge Profile 注册),让主线的插件在 Forge 环境同样可用。
  • 使用 SHA-256 内容寻址 tarball 安装自身,避免复用旧包缓存。
  • 将 Cordis、System Prompt 和 Tools 保持为宿主提供的可选 peer,避免 Profile 内重复运行时破坏 Symbol 身份。
  • 升级时先由 DSH 正常移除旧 Forge 依赖再安装新工件,避免 lockfile 保留旧 peer 绑定。

安装

需要 Node.js ^22.19.0 或 >=24,以及 pnpm。

git clone https://github.com/zhn1100/dsh-forge.git
cd dsh-forge
pnpm install
pnpm run verify
node lib/cli.js install

安装程序不会写入普通 ~/.dsh,默认目标为 ~/.dsh-forge。

启动

在需要开发插件的工作区运行:

DSH_HOME="$HOME/.dsh-forge" npx @deepseek-ai/dsh@0.1.0-rc.6 --profile forge

Forge Profile 默认监听 127.0.0.1:3188(与主线 dsh 的 3080 错开,可同时运行);需要其他端口时用 --port <端口> 覆盖。

打开 Web UI 后选择 DSH Forge 开发者 Preset。

工作区边界

Forge 启动时同步的是 ~/.dsh → ~/.dsh-forge 的用户态数据,不同步当前工作文件夹的源码。

  • 从工作区 A 切换到工作区 B,不会复制 A 的代码到 B。
  • A、B 的修改互不影响,但共享同一个 Forge 配置和控制面。
  • forge/、profiles/、.agent-presets/ 和 cordis.patch.yml 永不参与 Home 同步(唯一例外:主线 Profile 通过 insert 声明的 out-of-tree 插件会镜像到 ~/.dsh-forge/profiles/node_modules/ 并在 Forge Profile 的 cordis.patch.yml 注册)。
  • Forge 侧已修改或删除的文件不会被覆盖;源端删除也不会传播。

同步基线保存在 ~/.dsh-forge/forge/home-sync-manifest.json。如需使用其他上游 Home,可显式设置 DSH_FORGE_SOURCE_HOME。

常用命令

# 环境检查
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js doctor

# 重建指定 Harness revision 的知识索引
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js sync --revision <commit>

# 搜索本地索引
DSH_HOME="$HOME/.dsh-forge" node lib/cli.js search "Service.init"

# 验证当前插件项目
node lib/cli.js verify --root . --level full

完整设计和安全边界见 任务书。

开发验证

pnpm run verify

验证包括类型检查、测试、构建和包结构检查。动态 Cordis Package 仍属于显式信任边界;Forge 提供隔离和恢复能力,但不将其包装成强安全沙箱。

License

MIT