dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
车同轨,书同文。DSH 的多版本、插件、Profile 与整合包,从此归于一统。
无需本地拥有任何环境,也无需手动安装DSH,开箱即用
面向 DSH 的桌面管理工具(Tauri 2 + React 19 + TypeScript)。在图形界面中完成 DSH 多版本下载管理、Profile 管理(整合包管理)、插件安装与管理、整合包(.dspack)导出 / 导入 / 市场、多实例独立启动,无需手敲命令行。
区域 · 内容 -- · ---------------------------------------------------- 左栏 · DSH 环境(每个 = 一个 DSH 程序本体,可多版本共存) 中栏 · Profiles(合并默认 ~/.dsh/profiles + 扫描目录,不绑定任何 DSH 版本,可以管理整合包) 右栏 · 当前 Profile 的插件列表与操作、运行控制(启动 / 停止 / 重启 / 打开界面)
dsh-market/dsh-market)、NPM 搜索安装、GitHub 安装、自定义源安装package.json)或 .tgz 压缩包,按 file: 协议复制安装到指定 Profilecordis.patch.yml)peerDependencies 不兼容时,可显式授权豁免安装node_modules;重名自动改名)导出自动排除 node_modules / 运行数据 / 凭据,导入自动重建依赖(pnpm install 流式日志),重名自动改名
SHA-256 + size 后导入.dsh-packs)加入列表dsh.cmd / bin.js 并读取版本registry.npmmirror.com),解决大陆网络下载失败? 按钮提供板块使用说明像 Minecraft 整合包一样,把 DSH AI 智能体配置一键导出、分享、安装。遵循开源规范 DSH-PackForge(.dspack 容器 v3 + manifest v5),可与生态内其他启动器互通。
能力 · 说明 导出 · 把当前 Profile 打成 .dspack:插件组合、依赖、补丁、适配 DSH 版本;自动排除 node_modules / 运行数据 / 凭据 导入 · 本地 .dspack 或在线市场下载;校验容器与 SHA-256 后落盘,自动重建依赖 市场 · 浏览 dsh-pack-market 索引,按需下载安装 备注 · 导入时自动写入「适配 DSH 版本」到 Profile 右键备注,便于识别
一个 .dspack = 一个 Profile 的配置快照(或整个 DSH_HOME):
不含 node_modules、运行数据、凭据、嵌套压缩包 —— 体积小、可安全分享。
my-pack)1.0.0manifest.dshVersion).dspack,并显示 SHA-256 校验值导出时自动执行安全过滤(精确名 / 密钥扩展名 / 凭据文件名 / 嵌套压缩包 / home 级运行时目录),不会把敏感内容打进包里。
.dspack 文件dspack.json 的 format/version)→ 解析 manifest v5overrides/ → Profile 根;home/ → DSH_HOMExxx-import-1…);覆盖全局文件前备份到 ~/.dshpm-import-bak-/,失败整体回滚下载DSH、扫本体 或全局 CLI 自动识别产生。package.json + cordis.patch.yml),类似 DSH 的 "配置档"。DSH_HOME 指向该 Profile 的来源目录,实现任意版本加载任意来源的 Profile。两个产物任选其一(均在 src-tauri/target/release/ 下):
dsh-plugin-manager.exe,绿色免安装,单文件无 dll,复制即用bundle/nsis/dsh-plugin-manager_0.1.0_x64-setup.exe,双击安装依赖系统
WebView2 运行时
(Win10/11 一般自带)。配置数据保存在
%AppData%\dsh-plugin-manager。
首次使用建议顺序:下载 / 扫描 DSH → 初始化或扫描 Profile → 选中组合 → 启动 → 打开界面。
\# 安装依赖
pnpm install
\# 启动前端开发服务(Vite,端口 1420)
pnpm dev
\# 另开终端,启动桌面应用(开发模式)
pnpm tauri dev\# 前端构建
pnpm build
\# 打包(app 裸 exe + NSIS 安装器)
pnpm tauri build\# 前端单元测试(Vitest + Testing Library)
pnpm test
\# 后端单元测试(Rust)
cd src-tauri && cargo test --lib当前基线:前端 51 项测试、后端 107+ 项测试(持续更新)。
dshcjaz/
├── src/ # 前端(React + TS + Vite)
│ ├── App.tsx # 主界面(三栏布局、运行控制)
│ ├── InstallDialog.tsx # 插件安装对话框(在线/本地)
│ ├── api.ts # Tauri invoke 封装
│ ├── reorder.ts # 拖拽排序工具
│ └── \*.test.tsx # 前端测试
├── src-tauri/ # 后端(Rust + Tauri 2)
│ └── src/
│ ├── lib.rs # 命令注册与业务编排
│ ├── runner.rs # 进程调度:启动/停止/端口探测/token 提取
│ ├── scanner.rs # 环境扫描、Profile 探测
│ ├── installer.rs # 插件安装/卸载/豁免
│ ├── market.rs # 插件市场数据
│ ├── npm.rs # npm 搜索与更新检查
│ ├── profile\_io.rs # Profile 导入导出
│ ├── packforge.rs # 整合包:.dspack v3 导出/导入/市场/校验/备注
│ ├── dsh\_install.rs # 多版本 DSH 下载安装
│ └── settings.rs # 镜像源等设置持久化
└── 需求文档.md # 需求与迭代记录数据 · 位置 应用设置(镜像源、DSH 下载目录) · %AppData%\dsh-plugin-manager\settings.json 排序与上次选择(localStorage) · 随应用数据目录 Profile(默认) · ~/.dsh/profiles Profile 备注 · %AppData%\dsh-plugin-manager\profile-notes.json 整合包下载缓存 · %AppData%\dsh-plugin-manager\packs 运行日志 · 系统临时目录 dshpm-run--.log(供「打开界面」提取 token)
Q:为什么「打开界面」要用带 token 的地址?
dsh web 只监听 127.0.0.1,且访问需认证 token(dsh web: http://127.0.0.1:/?token=...)。应用在启动后保留日志,「打开界面」时实时提取最新 token,避免出现 authentication required。
Q:如何让多个实例同时运行?
任意环境 × Profile 组合各自独立进程,端口从 3080 起自动分配(可手动指定),每个实例独立停止 / 重启。
Q:为什么装了插件还是加载不了?
插件与 dsh runtime 的 peerDependencies 不兼容时会被拒绝;可在插件管理中对特定版本授权豁免(allow-version)。
Q:启动后进程立即退出?
通常是 DSH 版本与 Profile 不匹配(如旧版 dsh 加载新版 Profile 导致 ERR_MODULE_NOT_FOUND)。请选择匹配的 DSH 版本,或查看运行日志诊断。
Q:整合包和完整 zip 有什么区别?
完整 zip 是整目录快照(含运行数据 / node_modules),适合本机备份恢复;整合包(.dspack)只含配置 + 插件 + 补丁,遵循 DSH-PackForge 规范,体积小、可分享,导入时自动重建依赖,还能从在线市场直接安装。
Q:导入整合包后插件没生效?
导入已自动执行依赖重建(pnpm install)。若日志显示失败(如网络原因),可在插件管理中对该 Profile 点「修复依赖」重试;版本豁免类问题见上方 FAQ。