Перейти к основному содержимому
I

dsh-m

iasiv5/dsh-m

DSH Marketplace — 个人自用的 DeepSeek Harness 插件市场:收录、安装、卸载、升级 DSH 插件

Установка

dsh plugin --profile web add github:iasiv5/dsh-m

README

dsh-m — DeepSeek Harness 插件市场

Release npm Registry Check License DSH Web

English · 中文

可自定义收录清单(Registry)的 DeepSeek Harness (DSH) 插件市场:收录 · 安装 · 卸载 · 升级,全部本机完成。以 DSH web 插件形态运行——侧栏「插件市场」打开三视图面板,同时提供 dshm_* agent 工具与 dshm CLI。

侧栏「插件市场」面板——市场视图:收录卡片流、关键词搜索与分类筛选

侧栏「插件市场」· 市场视图:收录卡片流 · 搜索 · 分类筛选 · 展开即装

30 秒上手

把下面整段贴给 agent 即可完成安装

安装并启用 DSH 插件 dsh-m:
1. 执行 `dsh plugin --profile web add dsh-m`
2. 重启 DSH Web 使插件加载(本机:`systemctl --user restart dsh-web.service`;或按你的部署方式重启)
3. 轮询 `curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:3080`,直到恢复 200
4. 执行 `curl -s -X POST http://127.0.0.1:3080/dshm -H 'content-type: application/json' -d '{"method":"ping"}'`,确认返回 `plugin: dsh-m`
5. 完成后提醒我刷新页面,点击侧栏底部的「插件市场」

npm install -g dsh-m 只安装 dshm CLI(终端管理用),不会把插件注册进 web profile;与上面插件安装不冲突,可并存。

默认收录清单里的插件包括:DSH Skins、ModSearch、Lark / QQ / 微信 / 企业微信 / 钉钉通道桥,以及 dsh-m 自身。

界面(侧栏「插件市场」)

视图能力
市场收录卡片流;关键词搜索、分类筛选(服务端过滤 + 分页,每页 50 条,1,000 条清单也只探测当前页);卡片展开详情与「安装」;npm 源锁定最新精确版本,GitHub 源锁定 release/tag 指向的 commit
已装web profile 实装列表,标注「市场安装 / 非市场安装」;可升级徽标、升级、两段式确认卸载;📖 README 预览(64KB 截断)
设置registry 地址草稿 +「校验并应用 / 恢复默认 / 下载默认 registry.json / 检查条目可达性」;配置地址、生效来源与状态一目了然;强制刷新;dsh-m 自更新

安装 / 卸载 / 升级完成后出现「⚡ 一键重启」横幅——重启走 systemd 单元(同源校验,兜底 detached helper),按 boot id 轮询直至服务恢复。安装过程实时显示 pnpm 进度(解析 → 下载 → 链接 → 构建)。

Agent 工具(7 个)

工具用途
dshm_search搜收录清单(对话内出卡片)
dshm_list列已装插件(市场/非市场标注)
dshm_install按收录 id 安装
dshm_uninstall卸载(先确认;不删数据,报告残留路径)
dshm_outdated检查最新版本
dshm_upgrade升级到最新
dshm_restart一键重启 DSH Web(先征得同意)

CLI

dshm search [--query 主题] [--category ui]
dshm list | outdated | registry
dshm install --id dsh-web-search
dshm upgrade --pkg dsh-web-search --yes
dshm uninstall --pkg dsh-web-search --yes
dshm restart --yes

清单不可用时 registry / search / outdated 打印配置与实际生效地址并退出码 1;list 仍列出已装插件。CLI 固定独立缓存命名空间,不影响 Web 端。

收录清单(registry)

registry.json 手工 curated,运行时按 GitHub 原始文件(raw @main)→ GitHub 镜像(jsDelivr CDN,备用线路)→ 本地 60 分钟 TTL 缓存 → 包内快照 的顺序获取——收录更新与插件发版解耦,push 后最多等一个缓存周期(可在设置页强制刷新)。收录 / 修订直接改 registry.json 发 PR,CI 自动校验:严格 schema、npm 包与 GitHub 仓库存在性、重复 id、URL 可达性。

自定义收录清单(可覆盖官方清单):设置页支持单一自定义 registry 地址,整体覆盖默认清单(不合并):

  1. 「下载默认 registry.json」得到一份官方清单副本;
  2. 自行编辑副本(增删条目);
  3. 在设置页填入副本地址并「校验并应用」——支持 HTTPS URL、本机绝对路径 / file://(HTTP 仅限 127.0.0.1/localhost 本机调试);
  4. 校验失败(字段错误、路径不存在、超过 2 MiB / 1,000 条等)不会保存配置,当前生效清单保持不变;应用成功即时生效,无需重启(仅首次部署新版本 dsh-m 需要一次重启);
  5. 「恢复默认」一键回到官方清单。

规则与边界:严格 v1 schema(未知字段 / 非法 ID / 超限 / 重复一律拒绝,不截断);副本是独立快照,不会自动同步官方新条目;自定义源失败时保留其最近一次成功缓存,绝不静默回退官方清单;切换后旧自定义源缓存会被清理(默认缓存保留);自定义清单未经官方 CI 校验,请确认来源可信再安装;完整本地路径只在设置页显示,工具与卡片只显示短状态。

安全基线:拉取仅 HTTPS(loopback HTTP 除外)+ 重定向逐跳校验 + 体积上限 + 超时;npm 安装按精确版本 dist integrity 对照 pnpm lockfile 校验,不一致 fail closed 并回滚;GitHub 安装强制锁定 commit SHA;pnpm 构建脚本被拦时按策略放行并明确报告。

开发

npm ci
npm run build        # tsc(host/core/cli)+ esbuild(client,tree-shaking 已关闭)
npm run typecheck
node scripts/validate-registry.mjs

本地调试推荐 link: 模式(与 dsh-skins 相同):profile 依赖指向本仓库目录,npm run build + 重启即生效。

发版:npm version patch|minor|major && git push --tags → OIDC trusted publishing 自动发布。

FAQ

1. 为什么 GitHub 来源的更新提示不走 main HEAD? main 上的中间提交可能不稳定。dsh-m 只跟踪 release / tag(优先 releases/latest,无 release 回退 tags 列表),安装时锁定 tag 指向的 commit SHA。

2. 卸载 dsh-m 会删我的数据吗? 不会。只移除 profile 中的包引用(卸载前先下线运行中的界面),并把疑似残留路径报告给你。

3. 自定义清单会让市场变慢吗? 收录超过 200 条时会提示性能边界。市场列表是服务端分页(每页 50 条),1,000 条清单第一页也只查询当前页的最新版本,浏览仍然流畅。

4. 自定义源挂了怎么办? 优先使用该源最近一次成功的缓存并标记「缓存来源」;完全没有缓存时市场显示「收录清单不可用」,已安装插件仍可正常管理。修正地址或恢复默认即可。

License

MIT

Похожие плагины