dsh-web
zhu1090093659
DeepSeek Harness (DSH) Web 插件聚合生态 · 万物皆插件,通过创意工坊分发||DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Wulabalabo/dsh-sidebar-Explorer-Plus
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
A TypeScript / React file manager for the DeepSeek Harness sidebar.
Adds a Files tab to dsh-better-sidebar through its public ctx.betterSidebar.registerTab service. The plugin combines a React file tree with host-side file operations, without modifying the sidebar foundation.
Requires a running DSH web profile, dsh-better-sidebar (peer dependency >=0.4.0), and Node.js 20 or newer.
dsh plugin --profile web add github:Wulabalabo/dsh-sidebar-Explorer-Plus
Restart dsh web, then hard-refresh the browser. Open the sidebar + menu and select Files / 文件. The repository includes built files in lib/, so Git-based installation does not require a local build.
| Part | Responsibility |
|---|---|
src/index.ts |
Host routes, request checks, upload limits, file operations, and structured errors. |
src/client/index.tsx |
React file tree, drag and drop, context menus, and tab registration. |
build.mjs |
Host/client bundling; the build script also generates TypeScript declarations. |
cordis.patch.yml |
Plugin mounting configuration. |
All operations use POST /sidebar-explorer/<operation>:
| Operation | Payload |
|---|---|
upload |
Query: sessionId, name, optional dir and cwd; raw bytes in the body. |
delete / mkdir |
JSON: sessionId, absolute path, optional cwd. |
move |
JSON: sessionId, absolute from and to, optional cwd. |
rename |
JSON: sessionId, absolute path, new name, optional cwd. |
Successful operations return { ok: true, value }. Operation errors return { ok: false, error: { code, message } }; rejected trust checks and unsupported HTTP methods return plain HTTP 403/405 responses.
npm ci
npm run typecheck
npm run build
The default upload limit is 50 MiB per file. Set uploadLimit in the profile config to change the byte limit; see the configuration example below.
uploadLimit.The current path checks compare path strings; they do not resolve symlinks or fully canonicalize traversal segments in every operation. Working-directory selection also has client/process fallbacks. Run this in a trusted workspace; these checks do not establish isolation for untrusted filesystem content or callers.
一个 dsh-better-sidebar 的消费插件:在侧边栏新增一个「文件」tab,内置一棵固定在工作区(cwd)内的文件树,提供真正的文件管理能力——上传、移动、删除、重命名、新建文件夹。它补充了 better-sidebar 自带 Explorer 缺失的「写」操作(Explorer 只读)。
它通过 dsh-better-sidebar 公开的 ctx.betterSidebar.registerTab 服务注册,是一个独立插件,不改动 better-sidebar 源码。
前置:已安装
dsh-better-sidebar(本插件通过其betterSidebar服务注册 tab)。
dsh plugin --profile web add github:Wulabalabo/dsh-sidebar-Explorer-Plus
装完重启 dsh web(本插件含 host 半),再浏览器硬刷新(Cmd/Ctrl+Shift+R),侧边栏 + 菜单里就会出现「文件」tab。
| 半边 | 作用 |
|---|---|
host(src/index.ts → lib/index.js) |
注册 /sidebar-explorer/* 路由:upload(原始字节)/ delete / move / rename / mkdir(JSON),全部限定在会话 cwd 内 |
client(src/client/index.tsx → lib/client.js) |
ctx.betterSidebar.registerTab 注册 sidebar-explorer tab,渲染文件树 + 拖拽区 + 右键菜单 |
路由契约:POST /sidebar-explorer/<op>;upload 用 query(sessionId/dir/name)+ 原始 body,其余用 JSON body(sessionId/path/from/to/name),均可携带可选 cwd。成功响应为 { ok: true, value },操作错误为 { ok: false, error: { code, message } };请求信任检查失败或 HTTP 方法不支持时直接返回 403/405。
npm install # 安装 devDependencies
npm run typecheck # tsc --noEmit
npm run build # esbuild 打包 + 生成 lib/types/*.d.ts
lib/ 是构建产物,已提交进仓库,因此从 git 安装无需任何构建步骤。window.__ModuleLoader__.load({ id: 'dsh-sidebar-explorer-plus', factory }) 注册,react 作为 external 由模块表运行时解析。在 profile 的挂载行加 config 可调上传大小上限(默认 50 MB):
- insert:
- id: sidebar-explorer
name: 'dsh-sidebar-explorer-plus'
config:
uploadLimit: 104857600 # 100 MB
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: dsh-better-sidebar。