dsh-market-ui:在 DSH Web 侧边栏浏览、安装 npm 社区插件

前言

DeepSeek Harness(DSH)的插件可以来自官方内置列表、自建索引,也可以直接按包名用 dsh plugin 安装。社区插件越来越多时,单靠命令行或「发现」页逐条对照包名,成本偏高。下面介绍 dsh-market-ui:在 Web GUI 侧边栏提供「插件市场」面板,从 npm 拉取带 dsh-plugin 关键词的包,支持浏览、搜索、安装、卸载、更新,并在详情页做同类对比与安装前检查。它与 DSH 自带的 Discover 插件使用不同的 locale 命名空间(dshMarketUi / dsh-market-ui),可与官方发现页同时启用。

这是什么

dsh-market-ui 是社区维护的 DSH 客户端双面插件(host + browser)。维护者 GitHub 用户 910092147,仓库 910092147/dsh-market-ui,npm 包名 dsh-market-ui,当前资料中的版本为 0.2.7,许可证 MIT,要求 Node >= 18。

面板入口:侧边栏「插件市场」(与「插件」页同级),或 设置 → 内置插件 → 插件市场。简介(英文):DSH plugin marketplace for DeepSeek Harness: browse, search, install, update and compare npm plugins.

工作方式概览

0.2.x 起,安装、卸载、更新走 DSH 官方 pluginManager 服务,不再在后台 spawn dsh plugin CLI。与官方「插件」页共用同一套 pnpm 实现、profile 写锁、失败回滚、registry 回退、engines.dsh 兼容性检查与构建脚本审批;Web 与桌面端行为一致。装完后在 HMR 开启时可即时生效,否则界面会提示重启。

写操作以后台任务形式执行:POST /install|uninstall|update 立即返回 202 与 job id,浏览器轮询 GET /job?id=。面板可关闭,重开时通过 GET /jobs 接管未完成任务,POST /cancel 调用 pluginManager.cancelInstall,避免长时间阻塞页面。

目录与搜索

数据源:npm registry search(keywords:dsh-plugin),浏览默认取相关度前 250 条,缓存 6 小时到 DSH_HOME/cache/plugin-market/catalog.json;抓取失败时使用旧缓存并标注。点「刷新目录」可立即更新。

搜索:使用 npm text= 排名,并做严格 token 过滤;支持按作者/发布者(npm 用户名或 GitHub owner)过滤,以及按更新时间筛选(昨天 / 3 天 / 7 天 / 30 天 / 半年)。npm 搜索索引对新包有延迟时,会按精确包名查 registry packument 作为兜底。

分类、计数与分页在 host 侧完成;分类标签上的数字是全量结果口径,不是当前页。

安装、更新与卸载

已安装版本来自 pluginManager.listBundles(),与 npm 最新版不一致时卡片会出现「更新」。HMR 下更新为先卸载再安装(插件会短暂停用);无 HMR 时覆盖安装并提示重启。工具栏「全部更新」按顺序处理所有可更新项;link: / file: / workspace: 本地安装会被跳过,避免用 npm 版覆盖开发中的源码。

分类栏「需要更新(N)」只列已装且在 npm 上有新版本的插件;本地 link/file/workspace 安装不计入。卡片可显示 当前版本 → 最新版本。

安装前体检(详情页):包大小、是否含 preinstall/install/postinstall 脚本、用运行时 semver 对照 engines.dsh 的兼容判定、是否 deprecated。不兼容或含安装脚本时会给出明确警告。

需要构建脚本授权而被 pluginManager 拒绝时,错误里可能包含 pendingBuilds;当前 UI 尚未提供「允许并重试」,需到官方插件页处理或重新安装。卸载 DSH 组合包或正在运行的插件会被拒绝并说明原因。

详情页:README、对比与翻译

详情页 README 按界面语言优先中文(如 README.zh-CN.md);GitHub raw 失败时回退 npm registry 的 readme 字段。

同类对比:按分类 / 关键词 / 包名 token 打分,最多列出 5 个同类插件,并排展示月下载、更新时间、版本、协议,并给出基于客观数据的相对优势/劣势说明。另有领域功能矩阵(如插件市场类、费用类等),用模板对比能力项(✓/·),仅当前插件具备的行标「独有」;能力由 README、简介和 keywords 自动识别,仅供参考。点击指标表行或矩阵列头可切换到对应插件详情。

中文界面下,英文简介或 README 可点「翻译为中文」:优先浏览器 Translator API;不可用时回退 DSH 默认模型(ctx.llm),结果按内容 hash 缓存到 DSH_HOME/cache/plugin-market/translations.json,并标注「机器翻译」。模型翻译消耗 token,且不计入 dsh-cost-meter 的会话账。

安全与 API

写接口(install / uninstall / update / refresh)要求:

  1. 自定义头 x-dsh-market: 1
  2. Origin 与 Host 同源
  3. POST 且 content-type: application/json
  4. 包名符合 npm 规则,且不能以 - 开头

GET 接口同样要求 x-dsh-market 头。host 半片提供 /api/plugin-market/* REST;浏览器半片注册 sidebar.panellist、main 以及 settings.plugins.tab。

安装与启用

前提:DSH 能正常运行(dsh web 或桌面端),pnpm 在 PATH 上。

Web 端:

dsh plugin --profile web add dsh-market-ui

桌面端:

dsh plugin --profile desktop add dsh-market-ui

dsh plugin 以 link 方式安装本地目录(不是复制),源码目录不要移动或删除;修改 host.js / client.js 后需重启 DSH。npm 页面:https://www.npmjs.com/package/dsh-market-ui。

若从源码开发安装,上述 add 指向的是 link 后的目录;从 npm 安装时按包名即可,无需 git clone。

典型用法

  1. 安装并重启(或等待 HMR)后,打开侧边栏「插件市场」。
  2. 浏览分类或搜索包名 / 作者;冷门包若不在前 250 条目录内,用搜索框按名字查找。
  3. 进入详情查看 README、兼容性与安装脚本警告,必要时使用「翻译为中文」。
  4. 一键安装、卸载或更新;长时间任务可在后台跑完,稍后重开面板查看 GET /jobs 状态。
  5. 需要与官方「发现」页联动时,可将包内索引作为索引源。资料中的示例如下(发版后把版本号改为新版本):
https://cdn.jsdelivr.net/npm/dsh-market-ui@0.2.7/index.json

在 插件 → 发现 → 添加索引源 粘贴上述 URL,即可在官方发现页看到本插件。

适用场景与注意

适合:经常在 DSH Web 或桌面端试用社区 npm 插件、需要对比同类实现、希望与官方 pluginManager 同一套锁与回滚策略的用户。

注意:

  • 浏览目录单次搜索上限 250 条;更冷的包依赖搜索。
  • 「我的插件」标签依赖 keywords 中的 dsh-mine;未发布到 npm 的本地插件不会出现(含本插件自身在「我的插件」中的展示边界)。
  • 插件以当前 dsh 进程权限运行;安装前请阅读源码与 MIT 许可证,并留意第三方包的 install 脚本与 engines.dsh。
  • 社区目录与 DeepSeek / 幻方无官方从属关系,本文描述的是社区插件市场 UI,不是官方应用商店。

仓库结构(便于二次开发)

  • host.js — Node 半片:目录抓取/缓存、搜索、REST、调用 pluginManager
  • client.js — 浏览器半片:React 面板(列表、详情、任务轮询)
  • cordis.patch.yml、package.json(dsh.bundle + dsh.client)
  • NAMING.md — 多插件命名规范(dsh-功能-类型 + dsh-mine)

维护者发布流程见 README:npm run check 后 npm publish;打 v* tag 可由 CI 自动发布(需 NPM_TOKEN)。

结尾

dsh-market-ui 把 npm 上的 DSH 社区插件收进侧边栏:目录缓存、后台安装任务、兼容与脚本预警、同类对比,并与官方插件管理对齐。插件目录页:https://www.skillhub.cn/plugins/910092147/dsh-market-ui;源码与说明:https://github.com/910092147/dsh-market-ui。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye