deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
给 DeepSeek Harness Web 界面增加工程查看 / 打开 / 编辑能力的插件组合。
DSH 官方界面没有文件浏览器,本插件补齐:在会话视图新增 "文件" 页签,显示当前工作区(工程)的完整目录树,点击文件即可查看,并支持 VSCode 风格的代码编辑与保存。
Bundle 形态(标准 DSH 插件包,包根 = 仓库根):
| 端 | 位置 | 作用 |
|---|---|---|
| Host(Node half) | host/lib/index.js(main / exports["."]) |
注册 POST /api/filetree HTTP 路由(list/read/write,基于 fs 服务) |
| Client(UI half) | client/lib/client.js(exports["./client"] + dsh.client.platform) |
会话视图"文件"页签:目录树 + VSCode 风格编辑器 |
组合层:根 cordis.patch.yml(dsh.bundle.patch 指向),挂载 host half;client half 由 exports["./client"] 自动进 __DSH_BOOT__。
一条命令(git 源,产物已入库,无需构建):
dsh plugin --profile web add "github:lak321/dsh-filetree#<commit>&path:/"
<commit>换成最新提交号(见仓库主页)。path:/指向仓库根(本 bundle 包根 = 仓库根)。
或本地目录(包目录内执行):
cd dsh-filetree && dsh plugin --profile web add .
装完重启 DSH(npx -y @deepseek-ai/dsh web),浏览器打开后会话视图顶部出现 "文件" 页签。
旧的手动复制
host/+client/并注入cordis.patch.yml的方式已废弃,由 bundle 层栈安装替代(见install/cordis.patch.example.yml仅为历史参考)。
dsh-filetree 在 apply 时通过 ctx.get('webServer').register() 注册 /api/filetree 路由,处理器用 ctx.get('fs') 执行目录列举 / 读文件 / 写文件。fs.resolve() 支持相对路径(工作区根)和绝对路径(如会话 cwd)。dsh-client-ui-filetree 通过 ctx.slots.inject("conversation.view") 注册 files 页签(id: "files", order: 20, label: "文件")。组件从 props.useSession 读取会话 cwd 作为文件树根目录,用浏览器 fetch 调 /api/filetree。编辑器为纯 JS 实现(textarea 叠加语法高亮层 + 行号),无第三方依赖。sidebar.workspaces 这类 single slot,必须用 priority: -1,否则 loader 报 "already has a registration at priority 0"。exports.inject(依赖列表,如 ["slots"]),否则 ctx.slots 不可用。window.__ModuleLoader__.load({ id, factory }) 格式,factory 内用 require("react"),导出 exports.apply / exports.inject。MIT
WhaleHub 插件市场提交规范(标准 bundle 整改 + Issue 表单/PR 流程)见
docs/whalehub-submission.md。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。