DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

DDTomTom /

DDTomTom/dsh-code-pipeline

Verified

DSH 复合代码开发流水线插件:Sol/Opus/DeepSeek 分阶段协作、独立验收、进度浮窗、逐环节模型与推理等级设置、中英双语

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@5b73837f

代码开发复合 Agent(实验版)

这是挂载在 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 里配置好的模型线路。

  1. 取到本目录:git clone https://github.com/DDTomTom/dsh-code-pipeline.git。
  2. 在 DSH 会话里让模型用插件管理器安装这个目录(bundle 安装,目标填绝对路径),例如: plugin_manager → action: install_bundle → target: /绝对路径/dsh-code-pipeline。 也可以把它当普通 bundle 放进 profile 的依赖后重启 DSH。
  3. 装完刷新页面;浮窗(shell.overlay)出现在窗口右下角。若首次装好没看到浮窗,重启一次 DSH 桌面版。
  4. 打开浮窗齿轮,把八个环节的模型改成你自己账号能用的(默认是 OpenAI / Anthropic / DeepSeek 账号线路)。

依赖:Node.js 18+(测试用内置 node:test),本包无第三方 npm 依赖。卸载:用插件管理器移除 @local/dsh-code-pipeline,并删除 ~/.dsh/code-pipeline/ 下你自己的配置与状态文件。

流程

  1. Sol 整理原始目标、完成标准、风险和歧义;重大歧义则停止问用户。
  2. 复杂任务:Opus 只读规划 → Sol 只读设计。
  3. DeepSeek Flash 执行、运行合适的检查;原始合同不会由执行器重写。
  4. 简单/中风险任务 Sol 复核,高风险或复杂任务 Opus 复核;审查者只能用只读文件工具,须实际读取文件且提交证据。总控另以原有工具策略运行 git diff --check 并记录退出码;若用户原始任务明确包含 node --test 等支持的测试命令,可将其传给 checkCommand,可选 checkWorkdir 必须在原始任务中明确出现。未指定时仅检查 Git 差异空白问题,不替代功能测试。执行后、复核前,总控还会在 checkWorkdir(未给则会话目录)采集 git status --porcelain -uall、git diff --stat HEAD 与 HEAD 提交,作为可信事实交给只读复核者,用于核对“不新增文件 / 不提交 / 只改某文件”这类它自己无法执行命令确认的约束;非 Git 目录会如实注明无法提供。
  5. 一次局部返工后仍不通过则停止,留下各阶段会话 ID。若用户显式要求,调用时传 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)、耗时;本地的“采集仓库事实 / 独立检查”也单独成行。
  • 结束后显示最终状态(通过 / 未经机器验证 / 未通过 / 中断 / 线路被账号拒绝 / 需要配置凭据)与一句原因。
  • 底栏“功能状态”:插件加载后 3 秒、此后每 10 分钟,在模型目录中解析一次各线路(不发起模型调用),并检查工具是否已注册。目录能解析只说明模型存在,不代表账号能用:因此还会参考最近一次运行的结论——若上次运行被账号拒绝(余额/配额/密钥)或缺少凭据,直接判为红色异常;上次中断判为黄色。绿色=正常;黄色=升级线路不可用或上次中断;红色=核心线路不可用、工具未注册、上次被账号拒绝,或宿主无响应。点底栏可看明细,“重新检测”立即复查(POST /dsh-code-pipeline/health)。
  • 标题栏可拖动(位置记在浏览器 localStorage,并会按当前窗口大小夹回可视区域内,窗口变小也不会跑到看不见的地方);双击标题栏回到默认位置;“–”收成小胶囊(显示当前步骤与模型),“×”关闭到下一次运行开始。

点步骤看结论

  • 每个阶段行可点击:展开后显示该阶段的结论——定向的目标/完成标准、规划的方案、设计的实施路径、执行的报告、复核的证据与问题;本地的“采集仓库事实”“独立检查”会显示实际命令与输出尾部。数据来自该阶段子会话的最终文本与结构化结果,上限 2400 字符。
  • 运行结束后内容保留在面板里,直到下一次运行开始、或 DSH 重启才从“当前”位置让位。

历史记录(☰)

  • 标题栏“☰”打开历史视图;每运行完一次都会自动存一份到 ~/.dsh/code-pipeline/history.json(最多 50 条,按时间倒序,重复 id 覆盖)。
  • 列表每行显示:结论、任务摘要、开始时间、步数;点一行展开完整步骤,步骤同样可点开看结论(详细文本按需向 GET /dsh-code-pipeline/history?id=<runId> 拉取,避免每秒轮询携带大文本)。
  • “清空记录”是两步确认(第一次变成“再点一次清空”),只删历史 JSON,不影响任何会话或运行;清空后 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:

  • 选择即生效,无需重启;语言记在浏览器 localStorage(dsh-code-pipeline:lang),首次访问按 navigator.language 决定(en* → English,其余 → 中文)。
  • 面板里所有文字(标题、状态、健康度、设置页、环节名、按钮、提示、明细行)都随语言切换;模型 ID 与推理等级名(off/low/medium/high/xhigh/max)属于模型词汇,两种语言下都保持一致。
  • 要加第三种语言:在 client.js 的 LANGS 数组加一项,并在 I18N 里加一份同键字典,下拉框会自动列出。

限制与安全边界

  • 目前是实验版:未实现任务级预算、真正的跨重启检查点、原生 UI 面板;Fable/Astra 只在显式参数下参与,不自动触发。长任务单次调用最长 20 分钟。
  • 执行器仅显示代码开发所需工具(文件、shell、只读资料等),阻止其调用私信、插件管理和其它无关工具;但 ops_bash 本身仍能执行任意命令,因此这不是可靠的路径或网络安全沙箱。请用宿主的工作区、权限与沙箱约束执行范围。只读阶段原生呈现工具并以子会话私有 guard 阻止写工具和 shell;执行器运行仓库测试脚本仍可能产生副作用,无法静态保证。
  • 状态 reviewed_with_check 表示只读审查者的成功文件读取在子会话日志中得到核对,且总控独立检查的退出码为 0;若未提供明确测试命令,默认的 git diff --check 不代表功能测试通过。若缺少机器证据则返回 reviewed_unverified,不能宣称验收完成。执行器声称运行的测试仍需到子会话日志核对。
  • 用户输入的附件不自动传入子会话;请先给文件路径。模型目录能解析路由不等于凭据可用,第一次实际请求仍可能失败。

开发验证

依赖:Node.js 18+(使用内置 node:test);在此包目录执行 npm test。无需额外 npm 依赖。安装使用当前 DSH 的 bundle 管理器,安装目标为这个目录;安装结果决定是否即时生效。新会话验证默认路由提示与工具。

—/ 5

No ratings yet

Verified DSH bundle

Commit 5b73837f4db2

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout