DeepSeek Harness Hub
← 返回列表

工作区文件浏览器zhangxiang1993621/dsh-ws-files

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

树形浏览工作区文件,在线编辑并自动保存

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档

工作空间文件浏览器:树形目录浏览、搜索、在线编辑,可放入布局左/右区域,文件在对话/轨迹同级标签页打开

综合分
27.6
GitHub 分
27.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add zhangxiang1993621/dsh-ws-files
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-ws-files — 工作空间文件浏览器(DeepSeek Harness 插件)

在 DeepSeek Harness 的 Web 前端直接查看/编辑工作空间的文件:树形目录浏览、文件名搜索、系统默认程序打开、在线编辑保存(写前确认)。面板注册进布局的左/右区域(由 dsh-layout 渲染),点击文件会在「对话 / 轨迹」同级的标签页中打开内容。

plugin license

功能

- 布局区域 pane:注册进 layout.left / layout.right(id ws-files),可被 dsh-layout 分配到左侧或右侧区域;随当前会话工作区自动切换
- 树形目录:工作区根 → 逐层展开/折叠(懒加载),文件夹加粗、显示大小
- 搜索:按文件名(不区分大小写)搜索,命中可直达
- 打开:用系统默认程序打开文件/目录
- 文件标签页:点击文件在「对话 / 轨迹」同级打开标签页(conversation.view)并自动激活、直接进入编辑模式;标签条上直接有 × 可关闭
- 编辑器高亮:编辑时实时关键词/注释/字符串/数字着色(叠层高亮,不打断输入)
- 智能缩进:Enter 自动缩进(复制上一行并遇 { [ ( 或 Python : 加深一层),Tab 缩进、Shift+Tab 反缩进
- 自动保存:改动后防抖自动写入(无确认框),状态栏显示 保存中/已保存/失败;Ctrl+S 立即保存
- 撤销/重做:Ctrl+Z 撤销、Ctrl+Y(或 Ctrl+Shift+Z)重做
- 类 IDE 预览:预览模式带行号、按文件类型做关键词/注释/字符串高亮,按缩进层级折叠代码块(方法体折叠),并按类型设置缩进宽度(tab-size)
- 多工作区切换(下拉选择 workspaceRegistry 中已登记的任一工作区)

架构

| 半 | 文件 | 作用 |
|---|---|---|
| host | lib/index.js | Cordis 插件行:inject ['webServer','fs','workspaceRegistry'],注册 /ws-files JSON 路由 |
| client | lib/client.js | 浏览器 bundle(__ModuleLoader__ 协议,纯手工编写,仅 external 平台模块):layout.left / layout.right 面板 + conversation.view 文件标签页 |
| 声明 | package.json | dsh.bundle.patch(挂载 host 行)+ dsh.client(客户端声明)+ exports["./client"] |

API(host 半)

| 方法 | 端点 | 说明 |
|---|---|---|
| GET | /ws-files?action=workspaces | 所有工作区 {id, path} |
| GET | /ws-files?action=list&root=&path= | 列目录 {name, type, size}[] |
| GET | /ws-files?action=read&root=&path= | 读文本内容 |
| GET | /ws-files?action=stat&root=&path= | 元信息 |
| GET | /ws-files?action=search&root=&q= | 按文件名搜索(限深 4 层 / 2000 条) |
| GET | /ws-files?action=open&root=&path= | 系统默认程序打开 |
| POST | /ws-files?action=write&root=&path= | 写文件,body {"content": "..."}(客户端已确认) |

安装

在 deepseek-harness 仓库目录
node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add file:/绝对/路径/dsh-ws-files
或开发期用 link:(改源码只刷新页面即生效)
node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add link:/绝对/路径/dsh-ws-files
重启 dsh web 生效

安全设计

- 路径围栏:所有读写都限制在 workspaceRegistry 已登记的工作区根目录内(realpath 校验,越界返回 403)
- 写沙箱:写入显式携带 workspace-write + 所选工作区根的沙箱策略(宿主 fs 策略层双重把关)
- 写前确认:浏览器端保存前弹确认框,用户即审批者;不提供删除端点
- 只读优先:list / read / stat / search / open 默认可用,write 需用户主动操作

开发备注

- 客户端 bundle 无构建链:手工维护 __ModuleLoader__ 协议格式,仅 external 10 个平台模块(react / react-dom / @deepseek-ai/cordis / client-ui-* 等),其余代码全部内联
- 槽位:layout.left / layout.right(布局区域 pane,list 槽,id=ws-files,由 dsh-layout 声明渲染)+ conversation.view(文件标签页,list 槽,id=ws-files-,动态注册/注销)

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群