dsh-archive-sidebar:在 DSH 右侧边栏里直接浏览和编辑压缩包

前言

平时在 DeepSeek Harness(DSH)里处理压缩包,常见做法是先解压到某个目录,再在 Files 里翻找,改完文本还要手动打回。dsh-archive-sidebar 把这个流程收进了右侧边栏:不解压就打开子文件,改完原地写回压缩包。它是客户端类插件,维护者 gejx-gejingxuan,定位是 DSH Web UI 右侧边栏里的压缩包管理器。

下面介绍它提供的能力、安装方式、典型流程和已知限制。

这是什么

一句话:在 DSH Web UI 的右侧边栏新增一个「压缩包」标签页,像原生解压软件一样浏览 zip / rar / 7z / tar / gz / bz2 / xz,预览并直接编辑其中的文本文件,把未解压的子文件开成侧边栏标签页,也可以交给系统默认程序打开。需要时再让当前会话的 AI 通过插件自带的 archive_* 工具代为修改。

插件是一个 DSH bundle(Host 插件 + Web 客户端插件),无需构建:client.js 是手写的 __ModuleLoader__ bundle,Host 侧是纯 Node ESM。代码使用 MIT License,当前版本 1.0.0。

核心功能

  • 侧边栏内解析:新增「压缩包」标签页;可以从侧边栏向导打开,也可以在 Files 标签里直接点一个 .zip / .rar / .7z 等文件,由插件接管解析。
  • 浏览:列出全部条目(目录优先,可展开/折叠),显示名称与解压后大小,顶部可按名称筛选。
  • 原生解压软件的用法:双击条目 = 解出到系统临时目录并用默认程序打开(Word / PDF 阅读器 / 看图工具等);单击 = 在侧边栏标签页里预览该子文件。工具栏提供「用默认程序打开」「解压此条目」「在文件夹中显示」。
  • 子文件直开:点任意条目会在右侧边栏新开一个标签页显示这个未解压的子文件。文本带行号预览/编辑,图片直接预览;doc/docx/xls/xlsx/ppt/pptx/pdf 等文档类型给出一键「用默认程序打开」,不在侧边栏里模拟 Office。
  • 原地编辑:子文件标签里可切换预览/编辑;编辑器带同步行号、等宽字体、Tab 缩进、Ctrl+S 保存、换行开关、脏标记与还原,保存即原地写回压缩包。
  • 直接修改:文本条目保存回原压缩包(原地更新,不另存副本);也支持新增条目、重命名条目、删除条目、从磁盘添加文件。
  • AI 辅助修改:收在面板底部的折叠入口「请求 AI 修改…」里,写一句需求发送给当前会话,AI 通过本插件的 archive_* 工具完成修改。日常操作用面板本身即可,不需要 AI。
  • 解压 / 新建:整个压缩包或某个子条目解压到指定目录;把目录打包成 zip / 7z / tar / gz / bz2 / xz。

面板按 Harness 原生右侧边栏组件绘制,使用主题 token,自动跟随明暗主题。

安装与启用

插件不需要 dsh plugin add 这类命令,通过 Plugins 页或 plugin_manager 安装 bundle。

  1. Plugins 页添加(推荐):打开 Harness 设置 → Plugins → 添加插件,选择本仓库目录(本地 clone)或填入 git 地址:
https://github.com/gejx-gejingxuan/dsh-archive-sidebar
  1. 让 Agent 安装:让 Agent 调用 plugin_manager 工具的 install_bundle,target 填 clone 后的绝对目录或上面的 git 地址(需要 full-access 权限或审批)。
plugin_manager install_bundle --target https://github.com/gejx-gejingxuan/dsh-archive-sidebar
  1. 安装后如页面未自动更新,刷新一次页面;卸载在 Plugins 页删除该 bundle。

运行要求:Node.js ≥ 20。Windows 上想要 rar 读写请安装 WinRAR(默认路径 C:\Program Files\WinRAR\)。

打开压缩包

三种入口:

  1. 侧边栏顶部的「+」→ 向导里的压缩包卡片。
  2. 右侧边栏 Files 标签中点击任意压缩包文件。
  3. 在「压缩包」标签页里直接输入压缩包的绝对路径,例如:
D:\data\site.zip

支持的格式

格式 浏览 / 读取 原地修改 引擎
zip / zipx ✅ ✅ 随包 7-Zip (bin/7za.exe)
7z ✅ ✅ 随包 7-Zip
tar / gz / tgz / bz2 / xz / cab / iso / lzh / zst ✅(读取/解压) ❌ 随包 7-Zip
rar / rar5 ✅(读取/解压) ✅(写入需 WinRAR 的 Rar.exe) 本机 WinRAR (UnRAR.exe / Rar.exe)

RAR 解包与写入依赖本机 WinRAR。未安装时 RAR 仍可能用 7-Zip 读取(7-Zip 支持 RAR 解包),但写入会提示不可用。

Agent 工具

插件注册为全局工具,任何会话都可直接使用:

工具 作用
archive_list 列出压缩包条目
archive_read 读取一个文本条目
archive_write 覆盖/新增文本条目(mode: replace \| add)
archive_add_file 把磁盘上的一个文件加入压缩包(保留原字节)
archive_rename 重命名压缩包内的一个条目
archive_delete 删除条目
archive_extract 解压全部或部分条目到目录
archive_create 把目录打包成新压缩包

路径一律使用绝对路径,条目名一律使用 POSIX 风格,例如 dir/file.txt。

配置

一般不需要改。可以在 profile 的 cordis.patch.yml 中覆盖工具位置,例如 7-Zip 或 WinRAR 不在默认位置时:

- id: archive-sidebar
  config:
    sevenZip: 'D:\tools\7-Zip\7za.exe'
    rar: 'D:\tools\WinRAR\Rar.exe'
    unrar: 'D:\tools\WinRAR\UnRAR.exe'

典型流程

打开一个 zip 后,在侧边栏里单击 site/config.yaml,右侧边栏新开标签页显示未解压的这份文本。切到编辑模式,改一行,按 Ctrl+S,插件把改动原地写回压缩包,不落临时文件、不另存副本。

遇到 docx、pdf 这类不在侧边栏模拟的文档,点「用默认程序打开」,插件把该条目解到 %TEMP%\dsh-archive-open\… 再交给系统默认程序,压缩包本身不变。

如果一批条目要做同样的文本替换,可以不逐个手改:在面板底部打开「请求 AI 修改…」,写一句需求,由当前会话调用 archive_list、archive_read、archive_write 完成。

安全与限制

  • 面板请求走 /api/dsh-archive/rpc,只接受已认证的浏览器连接,与 Harness 其它 /api 路由同一套校验。
  • 只能操作本机文件系统上已存在的压缩包;写入只允许 zip / zipx / 7z / rar 原地更新,并校验条目名(拒绝 ..、绝对路径、盘符)。
  • 单次读取上限:文本 4 MiB、二进制 8 MiB,超出标记 truncated。
  • 修改是原地的,不保留自动备份;重要压缩包请先自行备份。
  • 加密压缩包(密码)当前不支持。
  • 插件卸载后,已注册工具与路由会随 Cordis effect 一起移除。

适用场景与注意

适合在 DSH Web UI 里频繁查看、小改压缩包内容的开发者:不想为了看一个文本文件先解压,也不想为改一行反复解压、重压。rar 写入依赖本机 WinRAR,其余格式走随包的 7-Zip 控制台二进制。

需要注意两点:插件以当前 DSH 进程的权限运行,安装前建议先看一遍源码和许可证(MIT,第三方二进制见 THIRD-PARTY-NOTICES.md);原地修改不做自动备份,动手前先备份重要压缩包。

目录页:https://www.skillhub.cn/plugins/gejx-gejingxuan/dsh-archive-sidebar
GitHub:https://github.com/gejx-gejingxuan/dsh-archive-sidebar

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜