DSH Marketplace:DeepSeek Harness 的社區 Marketplace 插件

前言

對 DSH 插件使用者來說,第三方倉庫、包名、版本和安裝命令常常需要分別確認。DSH Marketplace 是 ouyangyipeng 維護的非官方社區插件,把 GitHub topic:dsh-plugin 的即時社區倉庫放進 DeepSeek Harness 的 設置 → 插件 → Marketplace,並支持插件發現、搜索、檢查、安裝、更新和卸載。下面介紹安裝、接口、緩存、安全邊界和配置。

核心能力

  • 將 GitHub topic:dsh-plugin 的即時社區倉庫放進 DeepSeek Harness 的 設置 → 插件 → Marketplace
  • 支持插件發現、搜索、檢查、安裝、更新和卸載
  • DS-Harness Desktop 從 desktop-v0.2.0 起離線內置固定版本 Marketplace
  • 支持標準 DSH Web profile 安裝、更新、卸載
  • 使用目錄緩存、ETag 重驗證、可見的 rate-limit 狀態和 stale-on-error 回退
  • 以 pnpm add --ignore-scripts 暫存和安裝,並要求預構建入口、bundle patch 和路徑檢查
  • 提供 /dsh-marketplace/v1/bootstrap、/dsh-marketplace/v1/catalog、/dsh-marketplace/v1/install、/dsh-marketplace/v1/remove HTTP API
  • 只允許同源 loopback + 進程 nonce 調用寫接口

安裝與啓用

DS-Harness Desktop

DS-Harness Desktop 從 desktop-v0.2.0 起離線內置固定版本 Marketplace。打開應用後進入 設置 → 插件 → Marketplace,不需要先安裝本插件。

內置版本顯示“Desktop 內置”,不能在 Marketplace 裏更新或卸載自己;它隨經過驗證的 Desktop release 更新。

標準 DSH Web profile

標準 DSH Web profile 安裝需要當前 DeepSeek Harness、Node.js ^22.19.0 || >=24.0.0 和位於 PATH 中的 pnpm。

先安裝指定版本:

dsh plugin --profile web add "github:ouyangyipeng/dsh-marketplace#v0.1.1"

再重啓 dsh web,然後打開 設置 → 插件 → Marketplace。

經過上面的步驟後,更新或卸載獨立安裝的 DSH Marketplace 使用:

dsh plugin --profile web update dsh-marketplace
dsh plugin --profile web remove dsh-marketplace

典型用法

安裝後,進入 設置 → 插件 → Marketplace,即可瀏覽 topic:dsh-plugin 社區倉庫,並執行搜索、檢查、安裝、更新或卸載。

本地開發時,可以克隆倉庫並運行檢查:

git clone https://github.com/ouyangyipeng/dsh-marketplace.git
cd dsh-marketplace
pnpm install
pnpm test
pnpm run typecheck
pnpm run build
pnpm site:check
pnpm pack --dry-run

如果當前目錄是 checkout 出來的本地倉庫,可以接入標準 DSH Web profile:

dsh plugin --profile web add "link:$(pwd)"
dsh web

HTTP API

DSH Marketplace 提供以下接口:

  • GET /dsh-marketplace/v1/bootstrap
  • GET /dsh-marketplace/v1/catalog
  • POST /dsh-marketplace/v1/install
  • POST /dsh-marketplace/v1/remove

寫接口只允許同源 loopback + 進程 nonce 調用。要求 TCP 對端、Host 和可選 Origin 均爲 loopback,並同時提交同源 bootstrap 返回的進程 nonce。LAN 客戶端、遠端 Origin、錯誤 nonce、非 JSON 內容、超過 16 KiB 的 body 和 host-bundled repository mutation 都會被拒絕;bundled conflict 返回 HTTP 409。

目錄與緩存

  • GitHub Search 對一個查詢最多返回 1,000 條結果
  • 未登錄 Search API 限流較低
  • Marketplace 不收集或持久化 GitHub token
  • 獨立安裝默認配置爲 profile: web、cacheTtlMs: 600000

安全邊界

DSH Marketplace 能檢查包格式和收緊安裝過程,但不能證明第三方插件可信。插件重啓後會在 DSH 進程內運行;啓用前仍應閱讀源碼。

它始終以 pnpm add --ignore-scripts 暫存和安裝。只有 TypeScript 源碼、依賴 prepare/postinstall、實際是獨立應用或沒有標準 DSH bundle 聲明的倉庫仍會出現在目錄中,但安裝會明確失敗。

配置

獨立安裝使用以下默認配置:

- insert:
    - id: dsh-marketplace
      name: dsh-marketplace
      config:
        profile: web
        cacheTtlMs: 600000

可選配置:

  • home:覆蓋 DSH Home;空值依次使用 DSH_HOME 和 ~/.dsh
  • bundledRepositories:宿主擁有的不可變 owner/repository 列表;默認 []。座標在加載時規範化,非法值和大小寫歸一後的重複值會讓插件啓動失敗

適用場景與注意

DSH Marketplace 適合使用 DeepSeek Harness 標準 Web profile 或 DS-Harness Desktop 的 DSH 插件開發者,用於集中查看、安裝和更新 DSH 社區插件。

需要注意:Marketplace 能檢查包格式,但不能證明第三方插件可信。插件在 DSH 進程內運行,啓用前應檢查源碼、依賴和許可證。DSH Marketplace 本身是 MIT 許可證的社區維護非官方插件;DeepSeek Harness、DeepSeek 名稱與社區插件保留各自的許可證和商標。

鏈接

  • GitHub 倉庫:https://github.com/ouyangyipeng/dsh-marketplace
羽毛球分组比赛记分
小程序二维码

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

小夜