# @agent\_forge/forge-dsh 中文文档

规范地址：https://npmcn.com/package/%40agent_forge/forge-dsh/

版本：1\.84\.5
npm 元数据更新时间：2026-10-25T13:02:40.261Z
中文译文更新时间：2026-11-06T15:48:00.317Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40agent_forge/forge-dsh
原文对照：https://npmcn.com/package/%40agent_forge/forge-dsh/?lang=original
项目主页：https://github.com/MjxUpUp/Forge/tree/main/plugins/forge-dsh
源码仓库：https://github.com/MjxUpUp/Forge

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：104 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：1 个
- 首次发布：2026-08-20T10:37:19.313Z
- 最新版本发布：2026-10-25T13:02:39.860Z
- 近 30 天下载量：2837（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：75（近 12 个月 75 个）

## 中文简介

为 DeepSeek Harness (dsh) 伪造质量门:任务门,读取前编辑,击打危险截取和质量评分,由伪造的CLI通过DSH的打出截取点来驱动.

## 安装

```sh
npm install @agent_forge/forge-dsh
```

也可以使用：`pnpm add @agent_forge/forge-dsh`、`yarn add @agent_forge/forge-dsh`、`bun add @agent_forge/forge-dsh`

## README

# @ agent forge/ forge-dsh (英语)

伪造质量门 **深层空间( dsh)** 任务门 编辑前读取, 在DSH会话中执行撞击危险截取和质量评分 绳子的打出截取点.

[福尔吉](https://github.com/MjxUpUp/Forge) 是一个AI码质量门引擎。 这个 插件是一个细的 Cordis 包装器: 它将 DSH 工具/会话事件转发到 `forge` CLI 并翻译出 伪造的判决 回DSH决定。 所有门逻辑都存在 伪造二进制——插件本身有 **没有第三方运行时间依赖关系** (qq;它唯一的依赖是被钉住) `@agent_forge/forge` 软件包 二进制(见下文要求).

## 如何运作

> 下面的映射表和本次README结束时的失败打开的合同 这是 **双面桥梁合同**,在 [`contract.json`](https://npmcn.com/package/%40agent_forge/forge-dsh/contract.json) 并用伪造的相容快照执行 (表层) `bridges`) (中文(简体) ). 将所有三个一起改变 : `contract.json`这个读取, 和两边的试验.

| DSH 拦截点 | 伪造钩子事件 | 伪造块变成 |
| --- | --- | --- |
| `tools/pre-execute` | `PreToolUse` | `{kind:'deny', reason}` |
| `tools/post-execute` | `PostToolUse` | `{kind:'block', feedback}` (错误结果) |
| `agent/pre-step` | `UserPromptSubmit` | `{kind:'reject'}` |
| `agent/session-start` | `SessionStart`1个 | 上下文已排队,随下一条一起交付 `agent/pre-step`2个 |
| `agent/turn-stopping` | `Stop` | `agent.steer(reason)` - 另一步 - 别走 |

1个 `source:'compact'` 此外,火 伪造 `PostCompact` 组 - 预览 建筑没有暴露专用的收缩点.

2个 `agent.inject()` 在会话开始时观察到会默默地放下上下文,所以它们会骑着 改为: `startWaitMs` (默认1500) 会话启动运行,一个被拒绝的步骤会保留下一场的队列.

Claude 代码名称上的 DSH 工具名称地图 (单位:千美元)`write/edit/str_replace_editor→Write/Edit`, (中文(简体) ), `bash/pwsh→Bash`, (中文(简体) ), `read/read_image→Read`, (中文(简体) ), `skill→Skill`; 未放大的工具通过ungated. 有线钩子的花名册镜 伪造的光谱( a)`lib/spec.json`被福尔格号的GO测试保护 (repo)——冻结护卫,任务护卫,断言检查,编辑前读取,出击护卫, 危险防护、自动编译、工作流程测试防护、档案测试、工具跟踪、, 测试- 冲动、 故障轨道( 后工具使用失败) , 子剂轨道( 子剂停止) , 任务核查、审查-停止、技能触发、doc-lint、公约-写作、门-立方体、, 任务驱动、恢复-注入、紧凑-再接、常规文本和 届会启动组. 失败轨迹/ 增生- 轨迹在光谱中反射, 而在 DSH 之前是惰性 曝光相应的事件点( 预览所构建的没有) .

## 所需资源

-   这个 `forge` CLI(英语:CLI). 插件取决于 `@agent_forge/forge` (按插件键) ),因此通过DSH安装来安装伪造并解码去除 - 没什么 `PATH`。捆绑的二进制没有打开 `PATH`因此,在会议上 启动代理 `forge …` 命令使用。 覆盖 与 `forgeBin`,或 `FORGE_BIN`,使用不同的伪造。 项目还需要 `forge init` 用于任务门有状态执行.
-   深搜索策略 `0.1.0-rc.7` – 说吧 – `0.2.1-rc.2`,节点.js 18. 桥梁合同是 被钉住 `0.1.0-rc.7` (单位:千美元)[`contract.json`](https://npmcn.com/package/%40agent_forge/forge-dsh/contract.json)(三); `0.2.1-rc.2` 这是 桌面构建此插件运行于( 预工具截取已校验存在; a) 跨范围的全面五事回归仍有待解决.
-   Windows在框外工作:捆绑的二进制是 `forge.exe`,则a `forge.cmd` 来自全局 npm 安装的 shim 是通过 `cmd.exe` (裸出产卵不能) 执行它; 超时杀死整个孩子树通过 `taskkill /T`。 。 。 .

## 安装

`<profile>` 是实际运行的 dsh 配置文件 . **桌面应用程序运行 `desktop` 配置文件** ——安装到任何其他配置文件(例如:. `web`)成功,但成绩 插件从不装入应用程序 。 列出您的配置 `~/.dsh/profiles/`。 。 。 .

```sh
# from npm
dsh plugin --profile <profile> add @agent_forge/forge-dsh

# or straight from the Forge repo (subdirectory install)
dsh plugin --profile <profile> add "github:MjxUpUp/Forge#main&path:/plugins/forge-dsh"

# local development (run from this directory; `link:.` works on Windows too)
dsh plugin --profile <profile> add "link:."
```

插件热入运行中的 dsh — 添加或删除捆绑重装 简介。 如果给定的构建不取出,则重新启动主机一次. 开始新的 切换会话开始上下文,并检查桥的状态 `/forge-status` (检测结果,有线组织,最近的判决). 要卸载 : `dsh plugin --profile <profile> remove @agent_forge/forge-dsh` - 捆绑的伪造物走了 用它,或用它,或用它安放,或用它安放,或用它安放 `enabled:false`。 。 。 .

## 配置

密钥在档案的捆绑条目上 `cordis.patch.yml` ——用户编辑器 补丁层。 不编辑生成的 `cordis.yml`: 加载器重写根于 每个靴子,所以任何写在那里的东西都会丢失(桌面应用程序管理自己的配置) 下级 `~/.dsh/profiles/<profile>/`:

```yaml
# ~/.dsh/profiles/<profile>/cordis.patch.yml
- id: forge-quality
  name: "@agent_forge/forge-dsh"
  config:
    forgeBin: forge      # binary name/path. Precedence: this key > FORGE_BIN > bundled forge > PATH `forge`
    timeoutMs: 30000     # per-hook ceiling; timeout kills and FAILS OPEN
    startWaitMs: 1500    # first pre-step waits this long for session-start contexts
    welcome: true        # one first-turn line telling the user Forge is active (false = silent)
    checkLatest: true    # /forge-status compares the plugin version with the registry's latest (false = never ask)
    locale: auto         # language of the plugin's own messages: en | zh | auto (env FORGE_DSH_LOCALE, then system)
    batch: auto          # one forge process per matcher group: auto (default, needs a forge of the plugin's own version) | true | false
    enabled: true        # false unwires every listener
    debug: false         # log fail-open hook errors to console.error
```

## 未履行的合同

块从伪造的 Stdout JSON 读取(`decision:"block"`),从未从 退出代码:判决理由及其 `additionalContext` 只存在于JSON, 并伪造2号出口的再利用 也用于硬错误 每一次基础设施故障(forge) 缺失、 产卵出错、 无法分割输出、 超时) **无法打开**: 伪造废品 永远不要将代理从自己的工具中锁出. 这样的钩跑失败是沉默的 设计;用 `/forge-status` 或者说 `debug:true`。 。 。 .

一个不见了 `forge` 二进制是沉默的一个例外:每次会话开始 探测器 `forge --version` 一次(直到一个探测器成功——答案随后被缓存) 当探测器失败时, 排入一个可见的通知 (以第一个步骤交付) 命名已配置 `forgeBin`。没有它,一个未安装的CLI 将完全看起来 像一个健康的插件 咬什么。 通知是信息,不是开关 当二进制缺失时,每一次钩子尝试都会自己打开,所以门是 无论探测器是否运行, 均不活动 。 安装伪造不需要重新启动主机: 接下来的会话再次探测,并恢复吉特.

二常分而可知. 匹配组可运行为 **一个** `forge hook batch` 进程 (forge按顺序运行该组的钩子,并在第一个区块停止)而不是一个进程 每个钩子——在测得的PreTooLuses/Bash组(716ms vs 1720ms)上约快2.4× (原始内容存档于2018-10-21). Dev machine. 默认 `batch: auto` 只有探测器显示有伪造的 插件自己的版本: 批量要求用插件的匹配字符串来选择组, 以及一个伪造 或静静地运行着 空组,所以任何其他的伪造都停留在每头路径上,这只取决于钩名. `batch: true` 部队批量 **并给予保护** (使用不匹配的伪造组可以空出,而无需 任何错误);只使用您知道匹配的伪造. `false` 部队每小时。 无论模式如何,一个失败的批次从不被视为 允许: 该组为调用而每钩重运行( 按已运行的批次可能再次运行 ); 仅限观察者通过伪造来消除重复。 连续三次故障 切换批次; 批次 那个 **时间流出** 保持每只鲸鱼的组 十分钟,然后再试一次,因为批量给 整个第一组 `timeoutMs` 一只被吊起的钩子 就会把后面的大门饿死 这个 三失分数为每组. `/forge-status` 显示 这一切。 和合法超过 `timeoutMs` (例如:. `auto-compile` 大块块块 project profile past 30s)默默地丢失了运行的反馈以失败打开(可见于 `/forge-status`) (中文(简体) ). 提升 `timeoutMs` 在大型项目.

门一直开不通的会话 看上去很健康 却一无所获 之后 插件在一个会话中三次打开失败运行 **一次**,在下一个停止,这不是 已经引导到一个真正的块 : 有多少运行丢失了反馈, 在哪里查看 (单位:千美元)`/forge-status`和如何筹取`timeoutMs`) (中文(简体) ). 这是咨询,没有任何东西受到阻碍。 这批货 至每小时降级不计数 : 运行仍然执行它的门.

插件提供桥梁和(作为一个依赖)伪造的CLI, **不是技能库** DSH 读取自 `~/.agents/skills`。当该目录不具有技能时,首轮登入会添加 一行提供 `forge skills install --global --target agents`; 模型运行到 用户同意,因为它会写主目录。 提议是每个主机程序发出一次,所以 每次新会话都不再询问拒绝的用户。 恢复、子剂和 `welcome: false` 疗程没有报价.

是否要求每个项目一次伪造接管一个项目——每个东道主都一样。 福尔吉 不推断“ 插件已安装” 是否同意(`init-suggest`是因为 `takeover` 偏好为 因此 DSH 安装像 Claude 代码插件安装在这里; 模型中继 从伪造本身的问题 `init-suggest` 咨询,下面的接收过滤器永远不会下降.

只有状况的收据,在无话可说时伪造指纹(`no weakening detected`, (中文(简体) ), `all skills SAFE`, (中文(简体) ), `no .mcp.json` )在注射前被丢出——主机会转动每一个允许的 上下文输入合成用户消息,这些消息没有指示。 其他一切,包括: 注意插件从未见过,通过.

`/forge-status` 以 `plugin: <installed> latest: <registry>` - 一个旧的安装继续工作,但 默默地错过了修正,而这是用户在发现某些东西时所看到的一个地方. 是个单身汉 仅在命令运行时( 从未在装入或会话中) 有3秒超时读取请求 ; 离线、 私人注册或奇数答案显示 `unknown`,以及 `checkLatest: false` 从不问. 它还报告a `dispatch:` 线条(批或每节)和探测线 页眉 : `probe: ok (forge version …)`, (中文(简体) ), `probe: FAILED — gates inactive (…)`,或 `not run yet` 在进程第一次会话开始之前。 上面还列出每次拦截的墙壁时间 点(运行,平均,最大)和每个最近的运行时间.

## 已知的监视项目( dsh 预览)

-   **没有止步环护** 在预览构建中 (`0.1.0-rc.7` – 说吧 – `0.2.1-rc.2`(b) —— 每站边界处都有一个永久起伏的停车门。 伪造的城门 他们的门一过就会自我限制 但一个被卡住的门会转弯.
-   **会话启动上下文在第一个步骤上**: 正在等待解开运行 多数 `startWaitMs`;其第一步比跑步快完成的会话 获得下一个步骤的背景,而不是第一个步骤.
-   DSH 是开发者预览; 将此插件的版本与您的 dsh 版本并列 .

## 发展

```sh
npm install --no-package-lock   # @deepseek-ai/cordis for the wiring tests (+ the bundled forge, unused by them)
npm test      # mapping, runner (incl. cross-OS planSpawn units), decision folding, real-cordis wiring
```

`test/doubles/fake-forge.mjs` 代表伪造二进制; 接线套件 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}用脚踏实的绳索运行时间 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}并声称调度命令 短路语义, 有效载荷形状, 和每个决定映射.

## 常见问题

### @agent\_forge/forge-dsh 是什么？

为 DeepSeek Harness \(dsh\) 伪造质量门:任务门,读取前编辑,击打危险截取和质量评分,由伪造的CLI通过DSH的打出截取点来驱动\.

### 如何安装 @agent\_forge/forge-dsh？

在项目目录运行 npm install @agent\_forge/forge-dsh，或使用 pnpm add / yarn add / bun add。

### @agent\_forge/forge-dsh 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/agent\_forge\_\_forge-dsh 是否存在。

### @agent\_forge/forge-dsh 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @agent\_forge/forge-dsh 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @agent\_forge/forge-dsh 可以商用吗？

@agent\_forge/forge-dsh 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @agent\_forge/forge-dsh 的下载量有多少？

根据 npm 官方下载统计，@agent\_forge/forge-dsh 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,837 次，日均约 95 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @agent\_forge/forge-dsh 还在维护吗？

最新版本 1\.84\.5 发布于 2026/10/25（13 天前）；至今共发布 75 个版本，其中过去 12 个月发布了 75 个；首次发布于 2026/08/20。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

