← 返回列表
未验证
可安装的插件包。 dsh-show-diff 是 diff-viewer…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/15 · 已提供中文文档
为编辑/写入工具扩展的彩色编码差异工具卡片——DeepSeek Harness 客户端插件,支持按文件显示行号
综合分
26.9
GitHub 分
26.9
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add kaiarvin/dsh-show-diff该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
- 是什么
- dsh 原生插件 · tool
- 装得上吗
- 本站尚未做安装检查
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 更新放缓:最近一次提交在 41 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-test-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-tool@deepseek-ai/dsh-invariants用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-show-diff 可安装的插件包。 dsh-show-diff 是 diff-viewer 客户端插件的独立可安装包名。它的正式上游归属地在 deepseek-harness monorepo 的 packages/client/ui-diff-viewer/(在那里以 @deepseek-ai/dsh-client-ui-diff-viewer 发布);本仓库是它在 dsh-show-diff 名下的独立可安装副本。 展开式彩色 diff 工具卡片,浏览器端:把 edit 和 write 两个 wire 名称注册进 ui-tool 的 keyed tool.call.toolview slot。每一次文件修改都会在对话流中直接渲染成一张展开的 diff 卡片——头部标明修改动作(Edit/Write)及其路径,正文通过本包的行对齐 DiffLines 表面绘制被应用的 hunk,以错误/成功颜色分别呈现删除侧和新增侧,逐行显示旧文件与新文件的行号(以每个 hunk 的起始行为基准重定基,因此是真实的文件坐标),长正文按高度上限折叠,并提供复制与 └ +A -R · N file(s) 底部统计。 新旧两侧按行做有界 LCS 对齐,因此每一行在两侧一致时同时显示旧文件行号与新文件行号,删除行显示旧行号,新增行显示新行号——与 GitHub 风格 diff 的阅读体验一致。工具的结果视图携带每个 hunk 在文件中的起始行(FileDiff 契约上的 oldStart/newStart);调用时视图与旧数据没有这些字段时,退回在 hunk 内从第 1 行编号。 出厂自带的 file-mutation-toolview 行也会渲染同样的 hunk,但放在默认折叠的展开体内,且对话流里最多显示 8 行。本包接管这两个 key,让改动一览无余:卡片默认展开,并可通过头部开关收起整张卡片。注册一个出厂组合已覆盖的 key 会替换该占用者——这些行以 -1 优先级注册,遮蔽出厂单元格(同 key 同优先级会抛错);移除本 bundle 即可恢复出厂行。 数据来源 该行的 hunk 与生命周期只派生自 ui-tool 提供的冻结的工具调用/工具结果切片,绝不读取文件系统: - 已结算:当 block.resultView 的 card 为 'diff' 时,它携带 edit/write 工具返回的已应用上下文 hunk(edit 的真实前后文、create 的整文件 diff)。这是权威数据,并取代调用时的视图。 - 运行中:当 block.callView 的 card 为 'diff' 时,它携带仅由参数派生的预期改动(覆盖写的 oldText 为 null)。 - 畸形或缺失:card: 'diff' 视图的 diffs 不是良构 hunk 数组时,卡片落入空态;失败的修改把面向模型的错误文本留在输出表面,而不是显示 diff。 回放保持稳定:hunk 存于持久化的调用/结果视图上,因此窗口或会话重载会重绘同一处改动。 安装 这是 DeepSeek Harness web 部署的附加客户端插件,不是独立应用:它通过接管 edit/write 工具卡片来扩展已有的 DSH web 表面,因此你需要先有一个正在运行的 DSH 部署(它提供 bundle 导入的平台模块,如 @deepseek-ai/dsh-client-ui-primitives)。 为什么插件不能独立安装。 @deepseek-ai/ 包声明为 peer 依赖——它们由你的 DSH 部署提供,不由本包安装。发布到 npm 的早期 rc 包依赖树不完整(例如 dsh-client-runtime@0.0.1-rc.1 引用了一个 registry 里不存在的包),因此你不应自行安装它们;请把本插件安装进一个已满足这些 peer 的部署,你的包管理器就绝不会从 npm 拉取 @deepseek-ai 平台。 包名是 dsh-show-diff(无 scope,任何人都能安装)。两种安装途径: 方式 A——从本 git 仓库安装(无需发布 npm) 把本仓库加为你 DSH 部署的依赖,然后加插件行。以 pnpm 为例: 在你的部署 package.json 里,或通过 pnpm add: pnpm add dsh-show-diff@git+https://github.com/kaiarvin/dsh-show-diff.git 然后在 web 表面的 cordis.patch.yml(或任何更晚的 patch 层)加一行: - id: ui-diff-viewer name: 'dsh-show-diff' 方式 B——发布到 npm 后安装 一次,在本仓库内,用你的 npm 凭据: npm publish 然后在任意 DSH 部署: pnpm add dsh-show-diff …并加上与上面相同的 cordis.patch.yml 行。 前置条件与说明 - 构建产物 lib/ 随仓库提交。 lib/client.js 浏览器 bundle 是 DSH 实际加载的部分,已提交到本仓库(从 deepseek-harness monorepo 的上游 @deepseek-ai/dsh-client-ui-diff-viewer 包构建,使用独立包 id)。因此 git 安装开箱即用。要从源码重建,请在 deepseek-harness checkout 内构建:pnpm --filter @deepseek-ai/dsh-client-ui-diff-viewer run bundle,然后把 lib/ 以 dsh-show-diff 为 id 复制回来。 - node 半边是空 apply,使插件出现在 host 组合中;浏览器半边经由 exports["./client"] 提供,由 package.json 里的 dsh.client 声明发现。 - 是替换而非叠加。 以 -1 优先级注册 edit/write,遮蔽出厂 file-mutation-toolview 单元格;移除该行(或依赖)即恢复出厂卡片。 - 运行时平台包是 peer 依赖。 @deepseek-ai/ 均为 peer 依赖:你的 DSH 部署已提供它们,无需自行安装。 - 加完行后重启 web 进程,让新的 dsh.client 包被扫描进 boot manifest。 行为 - 状态:运行中的调用提示「正在应用修改」;失败显示错误首行与错误状态;中断的调用使用警告状态。仅颜色的提示都附带视觉隐藏的状态文字。 - 路径:修改的 file_path 渲染为可点击的链接(工作区根路径相对会话 cwd 显示)。 - 收起:整张卡片可通过开关收起到只剩头部;DiffLines 对超长 diff 保留自己的高度上限。 - 查看详情:可用时提供标准的执行轨迹 Inspect 入口。 模型体验 本包纯粹是客户端呈现表面:不注册任何工具,不发任何会话事件,不增加任何 token 或模型可见上下文。面向模型的 edit/write 工具及其结果文本不变;只是它们的调用在对话流中的呈现方式不同。 已知限制与暂缓事项 - 仅含工具结果的 history 页使用通用行:键控分派要求配对的工具调用位于运行时窗口内;分页将工具调用留在窗口外时,工具结果没有工具身份,这项呈现功能不会为恢复该身份而扩展 history 协议约定。 - 数据缺少文件坐标时行号是 hunk 内的相对行号:调用时视图与较早持久化的结果不带 oldStart/newStart,因此这些 hunk 在 hunk 内从第 1 行编号,而非文件行号;当前工具产生的结果视图携带真实文件行号。 - 接管而非叠加:占用 edit/write 会替换同名下的出厂 file-mutation-toolview。移除 bundle 即恢复出厂行为;没有共存模式。