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: webcacheTtlMs: 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye