deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
浏览、搜索、一键安装与更新 GitHub dsh-plugin 主题下的 DSH 社区插件。 运行在 DeepSeek Harness(DSH / whale fork)的 Web 设置页里,同时给 Agent 提供四个市场工具。
依赖:Node ≥ 18、dsh(或 whale)CLI 与 pnpm 在 PATH 上。
# 方式一:本地(开发时推荐,link 方式接入)
cd dsh-whale-market
.\install.ps1 # 自动选 desktop(有则)/ web profile
# 方式二:npm 包(发布后)
dsh plugin --profile desktop add dsh-whale-market
# 方式三:GitHub
dsh plugin --profile desktop add github:QiFeng/dsh-whale-market
# 手动挂载(任一用户 patch 层)
# - insert:
# - id: whale-market
# name: dsh-whale-market
# config: {}
重启 DSH 后,进入:设置 → 插件 → 插件市场 与 设置 → 插件 → 已安装。
| 键 | 默认 | 说明 |
|---|---|---|
| profile | 自动 | 强制指定管理目标 profile |
| cli | dsh→whale | 指定 CLI 二进制 |
| registryUrl | 内置 gz | 远程静态插件索引(CI 产物,走 CDN) |
| skillsUrl | 内置 gz | 远程静态技能索引 |
| agentTools | auto | Agent 市场工具开关:auto/on 注册 market_* 工具(与官方内置同名工具共存,本插件实现接管同名调用);off 让位官方内置工具 |
| githubToken | 无 | 反馈自动建 issue 用的 GitHub Token |
| webdavUrl / webdavUser / webdavPassword | 无 | WebDAV 备份目标 |
# 从社区 registry 构建(导入模式)
node scripts/build-registry.mjs --from https://cdn.jsdelivr.net/gh/bradeGithub/DSH-Plugins-Marketplace@main/registry.json.gz --kind plugin
# 全量爬取(stars 分段,GITHUB_TOKEN 可提速)
node scripts/build-registry.mjs --crawl plugin
node scripts/build-registry.mjs --crawl skill --top 2000
仓库自带 GitHub Actions(.github/workflows/registry.yml)定时爬取并提交更新索引。
market_search q=记忆 kind=plugin # 搜索插件
market_install spec=owner/repo # 安装(风险仓库会要求确认)
market_installed # 已安装清单 + 更新状态
market_update name=xxx # 更新插件
dsh-whale-market/
├─ package.json dsh.bundle.patch + dsh.client(web)声明
├─ cordis.patch.yml bundle 补丁(id: whale-market)
├─ adaptor.json 错标仓库重定向适配层
├─ lib/
│ ├─ index.js 宿主半侧(零依赖,纯 Node 内建):
│ │ GitHub/静态索引 → 类型检测 → 安装任务 → HTTP API → Agent 工具
│ ├─ client.js 浏览器半侧(web lazy-CJS,无构建步骤)
│ ├─ categories.json 13 个分类规则(社区可维护)
│ ├─ registry.json.gz 静态插件索引(4260 条)
│ └─ skills.json.gz 静态技能索引(2000 条)
├─ scripts/build-registry.mjs 索引构建(导入/爬取双模式)
├─ .github/workflows/registry.yml CI 定时刷新索引
├─ install.ps1 一键安装脚本
├─ docs/ROADMAP.md 功能规划
└─ test/host-smoke.mjs 隔离环境端到端测试(60 项)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /plugins/dsh-whale-market/list | 市场列表(kind/category/language/sort/favorite) |
| GET | /plugins/dsh-whale-market/meta | 分类/语言/静态索引状态 |
| GET | /plugins/dsh-whale-market/info | 类型检测 + 兼容性评分 + 危险扫描 |
| GET | /plugins/dsh-whale-market/installed | 插件 + 内容安装清单 + 自更新状态 |
| GET | /plugins/dsh-whale-market/dashboard | 数据大盘 |
| POST | /plugins/dsh-whale-market/install | 安装(409 需确认) |
| GET | /plugins/dsh-whale-market/install/status | 任务进度 |
| POST | /plugins/dsh-whale-market/install/cancel | 取消任务 |
| POST | /plugins/dsh-whale-market/set-enabled · /update · /uninstall | 管理 |
| GET/POST | /plugins/dsh-whale-market/favorites · /favorite | 收藏 |
| GET | /plugins/dsh-whale-market/history · /backup · /audit | 历史 / 备份 / 审计 |
| POST | /plugins/dsh-whale-market/restore(+/status) | 恢复 |
| GET/POST | /plugins/dsh-whale-market/env | 环境变量管理 |
| GET/POST | /plugins/dsh-whale-market/feedback | 安装反馈(GitHub Issue) |
| GET/POST | /plugins/dsh-whale-market/notifications | 收藏更新通知 |
| POST | /plugins/dsh-whale-market/self-update | 市场自更新 |
| POST | /plugins/dsh-whale-market/backup/webdav | WebDAV 备份 |
| POST | /plugins/dsh-whale-market/author/scaffold · /author/check | 作者工具 |
| GET | /plugins/dsh-whale-market/status | 市场状态(profile/CLI) |
scanScriptHazards 缺 const text = await res.text(),正则抛错被空 catch 吞掉,危险命中恒为 0;② downloadExec 正则要求管道后紧跟 sh,真实场景多为 " | sh"(带空格)永远无法命中。已拆出纯函数 scanScriptText(修复正则 + 5 条单测)build-registry.mjs --verify 探测仓库 package.json 是否声明 dsh 能力,产出 verified 标记;列表支持 verified=1 只看已验证;meta 上报验证统计agentTools(off 时让位官方内置同名 market_* 工具)架构参考了开源生态(吸收其思路、按需取舍)并致谢:
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: marketplace、plugin-marketplace。