dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH 复合代码开发流水线插件:Sol/Opus/DeepSeek 分阶段协作、独立验收、进度浮窗、逐环节模型与推理等级设置、中英双语
这是挂载在 DSH Host 的代码任务工具与路由提示。新会话接到明确要求修改代码的指令时,默认调用 code_pipeline;讨论、解释和只读审查不调用。会话内在输入框发送人类命令即可切换(不消耗模型 token,按会话保存到 ~/.dsh/code-pipeline/session-modes.json,重启后保留):/pipeline off 关闭(不注入任何提示)、/pipeline auto 自动判断(默认)、/pipeline always 每轮都用、/pipeline manual 待启动(只讨论,明确说开始后才执行)、/pipeline status 查看当前模式、/pipeline routes 逐条检查各阶段模型线路能否在模型目录中解析(不发起模型调用)。面板上的滑块改的是全局默认(存 ~/.dsh/code-pipeline/default-mode.json,三档:关闭 / 自动判断 / 每次都用),/pipeline 是对单个会话的覆盖。也可指定 mode=auto|simple|complex:simple 不调用定向/规划/设计;complex 强制 Opus 规划;auto 先由 Sol 定向分类。模型路由在 cordis.patch.yml 中配置,latest-opus 在每次调用时从 Anthropic 当前模型目录挑选 ID 字典序最后的 claude-opus-*。DeepSeek 的“1017”是 UI 标签,实际模型 ID 是 deepseek-flash。
需要一个已装好的 DeepSeek Harness(桌面版或 web 版 profile,DSH ≥ 0.2.1-rc.2),以及你在 DSH 里配置好的模型线路。
git clone https://github.com/DDTomTom/dsh-code-pipeline.git。plugin_manager → action: install_bundle → target: /绝对路径/dsh-code-pipeline。 也可以把它当普通 bundle 放进 profile 的依赖后重启 DSH。
shell.overlay)出现在窗口右下角。若首次装好没看到浮窗,重启一次 DSH 桌面版。依赖:Node.js 18+(测试用内置 node:test),本包无第三方 npm 依赖。卸载:用插件管理器移除 @local/dsh-code-pipeline,并删除 ~/.dsh/code-pipeline/ 下你自己的配置与状态文件。
git diff --check 并记录退出码;若用户原始任务明确包含 node --test 等支持的测试命令,可将其传给 checkCommand,可选 checkWorkdir 必须在原始任务中明确出现。未指定时仅检查 Git 差异空白问题,不替代功能测试。执行后、复核前,总控还会在 checkWorkdir(未给则会话目录)采集 git status --porcelain -uall、git diff --stat HEAD 与 HEAD 提交,作为可信事实交给只读复核者,用于核对“不新增文件 / 不提交 / 只改某文件”这类它自己无法执行命令确认的约束;非 Git 目录会如实注明无法提供。escalation=fable|astra:常规返工失败后才由 Fable(anthropic/latest-fable)或 Astra(openai/gpt-6-astra)做只读诊断,再交 DeepSeek 最后返工一次并独立验收;该线路不可用时如实返回 not_verified。用户明确给出的测试命令若独立复跑失败,会计入同一次有限返工。所有阶段是 DSH 原生 spawn 子会话。各阶段的会话日志留在 DSH;工具结果只返回有界摘要和子会话 ID,不复制长日志。插件不读取、不存储 API 密钥。模型路由通过 DSH 已配置的 adapter 和凭据。当前执行线路是用户选择的 deepseek-account/deepseek-flash;它依赖 DSH 中的 DeepSeek 账号登录,而非 DeepSeek API Key。审批策略为 never 时,不请求提权;受宿主策略阻断的操作不会由插件改道执行。
DSH 窗口内有一个白底浮窗(shell.overlay),数据来自 Host 路由 GET /dsh-code-pipeline/state(运行时每秒轮询,空闲每 5 秒,页面隐藏时暂停):
latest-* 显示解析后的真实模型 ID)、耗时;本地的“采集仓库事实 / 独立检查”也单独成行。POST /dsh-code-pipeline/health)。~/.dsh/code-pipeline/history.json(最多 50 条,按时间倒序,重复 id 覆盖)。GET /dsh-code-pipeline/history?id= 拉取,避免每秒轮询携带大文本)。POST /dsh-code-pipeline/history/clear。summarize 线路,默认 deepseek-account/deepseek-flash,可换成更强的模型并调节推理等级)。ctx.llm.stream 直连模型,不新建子会话;结果按 runId 缓存在面板里,切走再回来仍在。POST /dsh-code-pipeline/summarize {runId}。标题栏“⚙”打开设置视图(“↩”返回运行进度;点标题文字同样可以切换),从上到下依次是八个环节,每行右侧是该环节的模型下拉框(按提供方分组,列出当前目录里检测到的模型)、紧邻的推理等级滑块和当前等级名:
GET /dsh-code-pipeline/settings 返回环节、已选模型、该模型支持的推理等级(来自模型能力元数据)与目录快照;目录缓存 60 秒。POST /dsh-code-pipeline/settings 写入 ~/.dsh/code-pipeline/routes.json 并立即生效,无需重启:校验环节名、提供方是否注册、模型是否在目录中、该模型是否真的支持这个推理等级;任一不通过就整体拒绝并显示原因,不会半应用。只提交改动过的环节,没动过的环节继续跟随 cordis.patch.yml 的默认值;保存的映射逐字段覆盖默认线路,重启后仍在。agentOptions.reasoningEffort 传给真实请求;模型没有可调等级时滑块位置显示“—”,只有一个等级时显示“固定”。进度视图底部、“功能状态”上方有一条滑块,三档从左到右:关闭 / 自动判断 / 每次都用——关闭 = 不给会话注入任何路由提示;自动判断 = 只对“要改代码”的请求启动;每次都用 = 每一轮(含提问)都走流水线。拖动即 POST /dsh-code-pipeline/mode 生效并写入 ~/.dsh/code-pipeline/default-mode.json,是所有会话的默认值;/pipeline 命令可按会话覆盖。面板只改默认值,不会改动已有的会话覆盖。
齿轮左侧是地球图标(经典语言/断网标志的那几条经线),点开是自绘下拉列表(白底、黑字,选中项蓝色加粗),目前有 中文 和 English:
dsh-code-pipeline:lang),首次访问按 navigator.language 决定(en* → English,其余 → 中文)。off/low/medium/high/xhigh/max)属于模型词汇,两种语言下都保持一致。client.js 的 LANGS 数组加一项,并在 I18N 里加一份同键字典,下拉框会自动列出。ops_bash 本身仍能执行任意命令,因此这不是可靠的路径或网络安全沙箱。请用宿主的工作区、权限与沙箱约束执行范围。只读阶段原生呈现工具并以子会话私有 guard 阻止写工具和 shell;执行器运行仓库测试脚本仍可能产生副作用,无法静态保证。reviewed_with_check 表示只读审查者的成功文件读取在子会话日志中得到核对,且总控独立检查的退出码为 0;若未提供明确测试命令,默认的 git diff --check 不代表功能测试通过。若缺少机器证据则返回 reviewed_unverified,不能宣称验收完成。执行器声称运行的测试仍需到子会话日志核对。依赖:Node.js 18+(使用内置 node:test);在此包目录执行 npm test。无需额外 npm 依赖。安装使用当前 DSH 的 bundle 管理器,安装目标为这个目录;安装结果决定是否即时生效。新会话验证默认路由提示与工具。