DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

gejx-gejingxuan /

gejx-gejingxuan/dsh-archive-sidebar

Verified

DeepSeek Harness 右侧边栏压缩包管理器:浏览/编辑 zip、rar、7z,子文件不落盘直开,支持默认程序打开,AI 修改为辅

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

压缩包侧边栏(dsh-archive-sidebar)

仓库:https://github.com/gejx-gejingxuan/dsh-archive-sidebar

在 DeepSeek Harness Web UI 的右侧边栏里的压缩包管理器:像原生解压软件一样浏览 zip / rar / 7z / tar / gz / bz2 / xz,预览并直接编辑里面的文本文件、把未解压的子文件开成侧边栏标签、用系统默认程序打开文档;需要时再让 AI 帮忙改。

截图:暂缺(欢迎 PR 补充)。面板按 Harness 原生右侧边栏组件绘制,跟随明暗主题。

安装

本插件是 DSH 的 bundle(Host 插件 + Web 客户端插件),无需构建:client.js 是手写的 __ModuleLoader__ bundle,Host 侧是纯 Node ESM。

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

要求:Node.js ≥ 20(Engine 用 node:test 做测试);Windows 上想要 rar 读写请安装 WinRAR(默认路径 C:\Program Files\WinRAR\)。

功能

  • 侧边栏内解析:在右侧边栏新增一个「压缩包」标签页。既可以从侧边栏向导(guide)里打开,也可以在 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。
  • 原生外观:38px 头部与 .5px 分隔线、28×28 图标工具按钮、文件树样式条目、原生输入框/等宽编辑器、原生 chip(16px 线框图标 + 标题)与向导卡片图标;颜色只使用主题 token,自动跟随明暗主题。

打开方式

  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 中覆盖工具位置(通常不需要):

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

开发与测试

node --check client.js            # 浏览器半边语法
node --test tests/                # 引擎单测(zip/7z/tar/gz/tgz,以及有 WinRAR 时的 rar)
node scripts/rpc-smoke.mjs        # Host RPC 端到端(含 addFile/rename/openEntry/reveal/错误码)
node scripts/client-smoke.mjs     # 客户端 bundle 注册 + 资源协议 + 原生样式守卫

tests/ 在缺少 WinRAR 的机器(例如 CI)上会自动跳过 rar 用例;scripts/client-smoke.mjs 用假 Cordis 客户端上下文加载 client.js,不需要浏览器。

目录结构:

  • index.js — Host 入口:注册 RPC 路由、archive_* 工具、AI 请求转发
  • lib/archive.mjs — 归档引擎(7-Zip / WinRAR 子进程封装、列表解析、原地更新)
  • lib/paths.mjs — 路径与条目名校验
  • lib/rpc.mjs — 面板 RPC 分发(含 openEntry/reveal 桌面动作)
  • lib/tools.mjs — Agent 工具定义
  • client.js — 浏览器半边:两个侧边栏 Tab 类型、UI、archive-entry 资源协议
  • bin/7za.exe — 随包 7-Zip 控制台版(见 bin/7z-License.txt)
  • tests/、scripts/ — 单测与端到端 smoke
  • DESIGN.md — 实现契约(并行开发/维护用)

安全与限制

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

English

A sidebar archive manager for the DeepSeek Harness Web UI. It opens zip / rar / 7z / tar / gz / bz2 / xz archives in the right sidebar, previews and edits text entries in place, opens an archived file as its own sidebar tab without extracting, hands documents (docx, pdf, …) to the OS default application, and can ask the session agent to modify an archive through the bundled archive_* tools. The UI follows the native Harness sidebar components and theme tokens.

Install it as a DSH bundle (no build step required) from a local checkout or a git URL via the Plugins page, or with plugin_manager install_bundle. RAR read/write requires a local WinRAR installation; everything else uses the bundled 7-Zip console binary.

许可

本项目代码使用 MIT License(见 LICENSE)。

随包的 7-Zip(bin/7za.exe)、以及运行时依赖的本机 WinRAR,见 THIRD-PARTY-NOTICES.md。7-Zip 的完整许可见 bin/7z-License.txt(GNU LGPL + unRAR restriction);RAR 相关功能不包含任何 RAR 代码或二进制,仅调用本机已安装的 WinRAR 可执行文件。

—/ 5

No ratings yet

Verified DSH bundle

Commit d06e042585a0

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