dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
dsh-inject 是一个透明、灵活的破甲插件:所有改动都只发生在发给模型的请求副本上,不写入会话记录、不改动宿主的任何文件,关掉即等于从未启用过。
/inject on|off、标记为总是启用、按模型或 agent preset 限定——同一个插件可以让不同模型跑不同的预设。unrestricted(Keysmith v0.6.0 交付契约)、nsfw、authority 三个预设;预设库里还能一键导入 dsh-purge 破甲稿与在线规则。每次注入都会在会话里留下一条可折叠的记录行,写明这次注入了什么。
dsh plugin --profile web add github:john-walks-slow/dsh-inject
从 git 安装拿到的是源码,包内的 prepare 会在安装时构建 lib/。如果 pnpm 拦下了构建脚本、导致安装失败,按 dsh 的提示把包键写进该 profile 的 pnpm-workspace.yaml 后重试:
allowBuilds:
dsh-inject: true
建议锁定 commit 安装,后续推送就不会悄悄改变实际运行的代码:
dsh plugin --profile web add github:john-walks-slow/dsh-inject#<sha>
安装后无需改配置:包内自带 dsh.bundle.patch,重启 dsh 即生效。
兼容性:面向 dsh 0.2.1-rc.2 及以上。宿主包全部走
peerDependencies(不随插件装进 profile),因此插件永远不会把旧版dsh-tools/dsh-commands之类带进 profile 顶掉宿主组件;在不兼容的 dsh 上,宿主会按 peer 检查跳过这个插件并给出提示,而不是让 dsh 起不来。
/inject <预设 id> 临时启用。/inject <预设 id> / /inject off 只作用于当前会话,且总是优先于预设的「默认启用」。agentPreset 投影读取,运行中切换即刻按新 preset 重算。provider/model,逗号分隔,留空=全部);只有当前请求的模型命中时该预设才自动启用。显式 /inject on 不受模型限制。设置页可以建立任意多个预设,每个预设包含三部分:
systemPrompt.section 注入一段系统提示词,按当前会话、agent preset 与模型实时计算;留空不注入。另外可维护构造回合模板,供现场 dialog 与 /inject-turn 复用。
每个预设头部有「默认启用」开关(默认关闭):勾选后该预设默认生效;展开区可填「限定 agent preset」与「限定模型」(逗号分隔,留空=全部),只有两项作用域都命中时才默认启用。会话内仍可用 /inject off 单独关闭。
设置页采用手动保存:所有改动先落到本地草稿,标题右侧会提示「有未保存的修改」+「保存」「放弃修改」按钮,关闭页面或切换前点「保存」才会真正写回配置。
/inject 查看当前会话启用了哪些预设与注入摘要(列出 id)
/inject <id...> 启用(可省略 on,逗号或空格分隔多个)
/inject on <id...> 同上,显式写法
/inject off <id...> 关闭
/inject clear 关闭本会话全部预设
/inject-turn 打开「插入构造回合」窗口
/inject-turn <模板名> 把模板内容排进下一次请求
/inject-turn <JSON 数组> 现场构造,如 [{"role":"user","text":"..."}]
在输入框输入 /inject-turn 回车即可打开(不需要点任何按钮):
Esc 关闭。这是通过客户端命令装饰实现的:/inject-turn 的裸调用在客户端打开窗口,带参数时仍由宿主命令处理。
注入本身只发生在请求侧,但每次注入都会在会话里落一条可折叠行,形态与 /inject 等命令卡一致:
inject / inject-turn),折叠态显示一行摘要,点开看完整内容;/inject <id> 的行列出该预设将注入的构造回合与启用的替换规则数;/inject-turn(含现场 dialog 写入)的行列出刚排入下一次请求的构造回合;实现上,窗口里的「插入」不是直接往队列里塞数据,而是走宿主命令生命周期(command/run + command/done),因此这条记录与会话日志同生共死,重开会话仍在。
未配置时,dsh-inject 自带三个 inject 预设:
unrestricted:Keysmith v0.6.0 的 overlay 交付契约适配稿。上游把它列为当前默认安装稿;这里去掉作者个人称呼与 [P] 首行标记,保留执行行为,只约束交付物形态,并附常用边界词中性化替换。默认开启「创建为模式」,注入模式 inject-unrestricted。nsfw:成人文学创作规约与场景回合;默认开启「创建为模式」,注入模式 inject-nsfw。authority:把 DSH 渲染的工作区指令免责句(“may be relevant / do not override”)改写为强制指令,并附一段简短的「操作者权威 + 先交付后解释」系统段;默认关闭,用 /inject on authority 启用。每一个 inject preset 都可以 toggle「创建为模式」开关。开启后,插件会向宿主动态注册名为 inject-{id} 的 agent preset:能力取宿主 standard 预设(工具集、工作区指令(AGENTS.md)读取、skills、工具说明与 plan 政策等系统段全部保留),只把 persona 那句身份清空——标准模式的「你是编码 agent」不再出现,该模式的文字由对应 inject preset 自己的系统段与构造回合按会话供给。会话顶部切换至该模式时,对应 inject 预设自动生效。过去的「总是启用」以及「限定 agent preset / 模型」筛选作为高级选项保留。没有 agentPresets 服务、或没有声明 standard 预设的 profile(例如 headless)不会注册模式,inject 预设仍可用 /inject 手动启用。
dsh-inject 兼容 Keysmith(Keysmith Switch / codex-keysmith)的规则格式,并把它的交付契约作为预置内容:
unrestricted,是上游 v0.6.0 examples/gpt-overlay.md 的适配稿——保留交付契约的结构与措辞,去掉作者个人称呼、[P] 首行标记以及与 DSH 无关的评测段。{ "from": "...", "to": "..." }),自动映射为 pattern、replacement 并绑定至用户输入(targets: ["user"])。/ 开头的斜杠命令以及 <system-reminder>、<command-name> 等系统注入标签自动跳过改写,避免误伤系统指令或命令参数。唯一例外是显式选择「工作区指令」目标的规则:它只改写 source.kind === "agent-instructions" 的工作区指令段。dsh-purge(镜像)是 DSH 社区早期最流行的破甲插件,原仓库已删除、上游停更。它的做法是给宿主落盘打补丁;本插件不改宿主,因此可以把它那篇提示词作为普通预设导入:
设置页 →「导入 / 导出」→「内置预设」→「dsh-purge 破甲稿」→ 导入,然后 /inject on dsh-purge 启用。
lib/asset-table.js,这里只把换行统一成 LF)。导入后可自由编辑、删除。Copyright (c) 2026 小杨。原作者的署名要求与非盈利条款一并沿用:不得用于卖课、卖插件、卖 token、倒卖等收费行为。authority 预设。tool 角色的构造消息会转成带「工具返回」标记的用户上下文,避免出现没有对应工具调用的悬空 tool result。webServer 与 connection 服务;缺失时命令的参数形式仍可用,但窗口内插入会失败。systemPrompt 服务;缺失时该段不注入,其余规则与构造回合不受影响。standard preset,身份行清空但不标 complete:标准模式那句 persona 被换掉,宿主其余系统段(含工具说明、plan 政策)照常进入请求。profile 没有 standard preset 时不注册模式(进程日志里会说明)。authority 只匹配 DSH 当前版本的官方免责原文;宿主改文案后需要更新规则(设置页可直接改)。MIT