dsh-plugin-market:在 Harness 裏瀏覽社區插件目錄並走官方管理器安裝

前言

DeepSeek Harness(DSH)的組合包可以不斷疊加,但社區插件散在 dsh-plugin.org 和各類 GitHub 倉庫裏。若每次都要自己查文檔、拼 github:owner/repo、再對照設置裏的插件列表,成本偏高。社區裏也曾有依賴 dsh CLI、與 profile 行爲糾纏的第三方市場方案,和桌面端 / Web 端的官方插件管理並不完全一致。

wojiao42/dsh-plugin-market(npm 包名 dsh-market-panel)是在 DSH 客戶端側欄提供「插件市場」面板的組合包:瀏覽社區目錄,安裝、啓停、卸載一律調用 Harness 官方 pluginManager,不依賴 dsh CLI,也不代替官方管理器的校驗與寫鎖邏輯。下文按定位、功能、安裝與日常用法說明,事實以倉庫 README 與 package.json 爲準。

這是什麼

  • 倉庫: github.com/wojiao42/dsh-plugin-market
  • 維護者:wojiao42
  • 分類:客戶端(dsh.client,platform: web)
  • 當前版本:0.3.1(MIT)
  • 一句話:左側欄「插件市場」+ 設置裏同名的分區,對接 dsh-plugin.org 的精選目錄與 sitemap 全量索引,通過 inspect → installBundle 等官方 API 管理當前 profile 下的組合包。

與 DeepSeek / 幻方無官方商店從屬關係;dsh-plugin.org 是社區目錄站點,本插件只做瀏覽與調用官方安裝通道。

核心功能

兩個入口,同一套界面

  1. 左側欄 「插件市場」 面板。
  2. 設置(Ctrl+,)→「插件市場」 分區(settings.section,order 60)。

兩處渲染同一組件,界面狀態各自獨立。主區另有 main 頁面。

五個頁籤

頁籤 作用
市場 推薦條(數據來自官網 stats.json,失敗時回退目錄統計)、搜索、長名分類 chip、按 Star / Fork / 最近更新 / 最新收錄排序;卡片展示名稱、版本、分類、「已驗證」/「僅索引」、安裝源類型等;動作含詳情(跳轉 dsh-plugin.org)、安裝 / 可更新 / 已安裝、複製命令
已安裝 當前 profile 組合包列表;setBundleEnabled 啓停、removeBundle 卸載(二次確認)
自定義安裝 輸入 npm 包名、github:owner/repo 或本機絕對路徑,走與官方一致的 inspect → installBundle
設置 npm registry:默認、pnpm 解析值、host fallback、自定義地址;校驗與安裝按所選源
日誌 本會話安裝記錄與 pnpm 日誌;構建腳本被攔截時可「允許構建腳本並重試」

數據從哪來

Host 半邊代理並緩存兩類上游(避免渲染進程跨域):

  • api.dsh-plugin.org/plugins.<lang>.json(精選目錄,緩存 6 小時 TTL)
  • dsh-plugin.org/sitemaps/plugins.xml(全量索引,緩存 12 小時 TTL)

市場頁默認 scope=all:合併精選與 sitemap;只在索引裏、不在精選裏的條目標「僅索引」,安裝源按 github:{owner}/{slug} 推導。索引不可用時會降級爲精選目錄(響應頭 x-plugin-market-scope: curated)。精選目錄本身是官網導出的子集,行數會變化;合併索引是爲了補全可發現性。

安裝通道與邊界設計

客戶端直接調用 ctx.remote.pluginManager(inspect、installBundle、setBundleEnabled、removeBundle),與 設置 → 插件 同一路徑;不做 PATH shim,不自行改寫 profile。與社區 bundle dsh-plugin 市場完全獨立(README 說明該方案存在 profile 誤判、依賴 CLI 等問題,本插件刻意分開)。

目標環境需支持組合包(dsh.bundle.patch)且提供上述 pluginManager 方法;Host 路由爲純 ESM,依賴 Node 18+ 的全局 fetch。

安裝與啓用

首次安裝時,設置裏還沒有「插件市場」分區(分區由本插件註冊),需用命令行或後續在「自定義安裝」裏填源地址裝一次。

瀏覽器版(DSH Web)(README「快速上手」示例):

dsh plugin --profile web add github:wojiao42/dsh-plugin-market

桌面端(DSH Desktop):

dsh plugin --profile desktop add github:wojiao42/dsh-plugin-market

桌面 profile 由應用託管時,命令行可能被拒絕,可改用:設置 → 插件 的官方安裝能力先裝其他途徑裝上的副本,或在已安裝本插件後使用 插件市場 → 自定義安裝 → github:wojiao42/dsh-plugin-market。

裝完後 刷新窗口(Host 半邊新路由需重啓 Harness 才加載;客戶端 client.js 改動手動刷新頁面即可)。

本地開發可從 自定義安裝 填源碼目錄絕對路徑;長期指向源碼建議 pnpm link: 依賴包名 dsh-market-panel(不要把包名起成 dsh-plugin-market,會與官方 @deepseek-ai/dsh-plugin-market 撞名導致 web 啓動失敗)。

典型用法

經過安裝並刷新後,可以按下面順序操作:

  1. 打開左側欄「插件市場」,或 Ctrl+, →「插件市場」。
  2. 在 「市場」 頁籤輸入關鍵詞,用分類 chip 收窄範圍;需要時用「刷新」帶 refresh=1 繞過本地緩存。
  3. 對目標插件點 「安裝」;若顯示「可更新」,含義與已裝版本和目錄版本不一致有關。
  4. 切到 「已安裝」,對不需要的組合包 停用 或 卸載。
  5. 渠道不在目錄裏的包,在 「自定義安裝」 填 github:owner/repo、npm 包名或絕對路徑。
  6. 安裝慢或失敗時看 「日誌」;pnpm 阻止構建腳本時按面板提示允許後重試。

卸載:從 profile 的 dsh.profile.bundles 與 dependencies 去掉 dsh-market-panel,再執行 pnpm remove dsh-market-panel。

適用場景與注意

適合誰:經常在 DSH Web / Desktop 上試社區組合包、希望在一個面板裏搜 dsh-plugin.org 並統一啓停的人;不想爲安裝單獨配置 dsh CLI 的用戶。

權限與安全:插件以當前 Harness 進程權限運行;installBundle 會拉取並執行第三方代碼。安裝前應查看目標倉庫源碼與許可證(本市場 MIT,不代表所裝插件的許可)。

已知邊界(README 原文口徑):

  • 索引抓取失敗時,「僅索引」條目暫時搜不到。
  • 緩存 TTL:精選 6 小時、索引 12 小時、stats 1 小時;上游改名/下架最長需等 TTL,或用手動刷新。
  • 僅索引行往往缺少描述、星標、topics;詳情仍以官網頁爲準。
  • 無緩存且上游失敗時,目錄接口可能返回 502;單次上游抓取超時 45 秒。

截至 README 記載:awesome-dsh-plugin 已投稿 PR 待合併;dsh-plugin.org 站內尚未有條目,發現本插件主要依賴 GitHub 與本文所述安裝方式。

結尾

dsh-plugin-market 把社區目錄收進側欄,安裝鏈路仍交給官方插件管理器,適合在 Harness 裏系統化瀏覽、試裝組合包。目錄介紹見 SkillHub 插件頁,源碼與版本說明見 GitHub 倉庫。

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

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

小夜