deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DSH(DeepSeek Harness)Web UI 的工作区工具箱插件 —— 文件浏览、Docker 与 Vite 项目管控,一体集成在会话内。
在会话视图栏的“轨迹”标签之后新增一个「工具箱」页签(对话 | 轨迹 | 工具箱),内含四个模式:文件、Docker、Vite、终端。
| 模式 | 能力 |
|---|---|
| 📁 文件 | 面包屑一层一屏目录浏览、全工作区搜索、彩色类型图标、VS Code 风格多标签预览(语法高亮 / Markdown 渲染 / 图片 / 二进制) |
| 🐳 Docker | 本地 unix socket / SSH 隧道远程连接、镜像与容器管理、拉取/构建/运行长任务、容器日志 |
| ⚡ Vite | 工作区 Vite 前端项目扫描、dev server 启动/停止管控、实时日志与访问地址 |
| 🖥️ 终端 | 进入 SSH 服务器(PTY)、进入 docker 容器(exec PTY)、本地 shell |
← 返回上级、面包屑任意段可跳转,窄屏同样好用;node_modules/.git 等噪音目录,深度 12、访问 6000、结果 200 上限),点击结果目录直接进入;JS TS PY GO {} MD ZIP IMG PDF 等);vite 依赖或 vite.config.* 的项目(深度 ≤5、忽略噪音目录);pnpm run dev(命令可编辑,如 pnpm --filter xx dev),日志实时回显,自动解析端口与访问地址;taskkill /T,POSIX 进程组);vim/top 等交互程序);docker exec 进入容器 shell;要求 DSH 0.1.0-rc.6 或兼容的 DSH Web profile,以及已安装 pnpm。安装后重启 Web profile 生效(dsh web),在会话顶部的视图标签中点击「工具箱」。
纯 Client 侧改动(
src/client/*)重建 bundle 后由 client-hmr 自动热更新,无需重启。
直接使用随 tag 提交的 lib/ 构建产物,无需本地构建:
dsh plugin --profile web add https://github.com/wuyh/dsh-workspace-toolbox/archive/refs/tags/v0.3.0.tar.gz
拉取源码并在 prepare 阶段自动构建(需要网络与 Node.js 18+):
dsh plugin --profile web add github:wuyh/dsh-workspace-toolbox
pnpm ≥10 默认拦截依赖构建脚本;首次安装若提示,需在 profile 的 pnpm-workspace.yaml 中为 allowBuilds 授权(添加 ssh2: true)。
# 克隆或进入仓库目录
git clone https://github.com/wuyh/dsh-workspace-toolbox.git
cd dsh-workspace-toolbox
pnpm install # 安装依赖并构建 lib/
# 在仓库的上级目录执行(link: 引用仓库路径)
cd ..
dsh plugin --profile web add link:./dsh-workspace-toolbox
改 src/ 后 pnpm run build 即可;Host 侧改动需重启 profile,Client 侧自动热更新。
.. 逃逸、越界符号链接被拒绝);src/(TypeScript,按职责拆分小模块),构建产物 lib/(随 tag 提交);scripts/build-client.mjs 进程内打包(内联 highlight.js/marked/dompurify/xterm,react 透传共享实例)。src/
index.ts Host 入口:注册文件/Docker/Vite 路由与终端升级路由
contract.ts Host/Client 共享的路由与参数名契约
host/
services.ts fs/agents/webServer 等最小类型面 + Context 扩展
workspace.ts 会话工作区根目录解析(agent cwd → session cwd → 沙箱根)
files.ts 单层列表 / 全工作区搜索 / 带边界的只读预览
docker/
engine.ts Docker Engine API 客户端(unix socket / SSH 隧道,含 exec hijack 流)
manager.ts 连接管理器(本地 + SSH 隧道,元数据持久化)
routes.ts Docker HTTP 路由(镜像/容器/构建/运行/任务)
jobs.ts 长任务注册表(pull/build/run/stop/remove)
projects.ts Dockerfile 项目扫描
ssh-tunnel.ts SSH 隧道(stream-local 转发 docker socket)
terminal.ts 终端 WebSocket 升级路由(SSH shell / 本地 shell / 容器 exec)
vite/
projects.ts Vite 项目扫描
manager.ts dev server 进程管理(启动/停止/日志/URL 解析)
routes.ts Vite HTTP 路由
client/
index.ts 浏览器入口:注册“工具箱”页签
files-view.ts 文件视图(面包屑/搜索/多标签预览)
docker-view.ts Docker 面板(连接/镜像/容器/任务/终端)
docker-terminal.ts xterm.js 终端组件
docker-rpc.ts Docker RPC 封装
vite-view.ts Vite 面板
vite-rpc.ts Vite RPC 封装
rpc.ts 文件路由的 fetch 封装
highlight.ts / markdown.ts / icons.ts / styles.ts / types.ts
scripts/
build-client.mjs tsc API 进程内打包 client(内联第三方库,react 透传)
dev.mjs 开发监视器(改 src/ 自动重建 + client-hmr 热更新)
cordis.patch.yml 组合包 patch:把 Host 行挂进 profile
lib/ 构建产物(tsc 输出 + client bundle)
要求 Node.js 18+ 和 pnpm:
pnpm install
# TypeScript 类型检查
pnpm run typecheck
# 构建 Host(tsc)与浏览器 bundle
pnpm run build
# 校验 lib/client.js 与源码同步
pnpm run check:client
发布路径:
lib/ 产物,不执行构建脚本;dsh plugin add github:wuyh/dsh-workspace-toolbox):拉源码并在 prepare 中构建;pnpm ≥10 需在 profile 的 pnpm-workspace.yaml 中为 allowBuilds 授权。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。