dsh-plugin-market
开发工具 活跃维护

dsh-plugin-market

ACEMaravilla/dsh-plugin-market

模型社区插件市场,提供插件搜索、合规审核、问题上报、一键安装等基础能力,可快速筛选适配需求的社区插件,完成插件从发现到部署的全流程管理,无需额外复杂配置。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
64 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:ACEMaravilla/dsh-plugin-market
git clone https://github.com/ACEMaravilla/dsh-plugin-market.git
git clone git@github.com:ACEMaravilla/dsh-plugin-market.git
README.md main

dsh-plugin-market

English | 中文

Model-facing plugin marketplace for DeepSeek Harness: plugin_search, plugin_vet, plugin_report, and plugin_install — the discover → vet → report → install flow for community plugins.

  • plugin_search — finds candidates on the official platforms (GitHub dsh-plugin topic, npm registry, awesome-list READMEs), ranks them by term-based relevance (0-100), and enriches the top 2-3 with README-derived functional summaries and install hints.
  • plugin_vet — static security-risk assessment per candidate: install-time remote code, obfuscation, arbitrary code execution, credential reads, exfiltration, unsafe filesystem access, and supply-chain signals. Returns risk level (low/medium/high/unknown), safety score (0-100), and the findings.
  • plugin_report — deterministic comparison report (function, install flow, relevance score, security) plus a user-questions-based choice when a provider is registered.
  • plugin_install — runs dsh plugin --profile <name> add <spec> through the shell seam after strict specifier validation, and returns the activation row for the profile composition.

All network access goes through the ctx.web capability seam; installation uses the optional shell seam and the interactive choice uses the optional user-questions seam. Both degrade gracefully when absent.

Install

dsh plugin --profile <your-profile> add @ace-xu/dsh-plugin-market

Then add the activation row to the profile's composition (the profile's cordis.yml / patch layer):

- id: plugin-market
  name: '@ace-xu/dsh-plugin-market'
  config:
    maxCandidates: 3

Verify with dsh --profile <your-profile> --dump-config.

Usage (as an agent)

Say to your agent: "I want a plugin that ". The marketplace flow then runs plugin_searchplugin_vetplugin_report (which asks you to choose) → plugin_install.

Configuration

Key Default Meaning
search / vet / report / install true Register the corresponding tool.
maxCandidates 3 Cap on candidates returned by one plugin_search.
searchTimeoutMs / vetTimeoutMs 60000 Cooperative tool-call budget per tool.
installTimeoutMs 300000 Budget for one dsh plugin add run.
perRequestTimeoutMs 15000 Per-request deadline for marketplace API fetches.
maxVetFiles / maxVetFileBytes 40 / 100000 Bounds on the per-candidate source scan.
maxVetCandidates 5 Cap on candidates per plugin_vet call.
defaultProfile "web" Profile name used by install commands when none is given.
installOutputMaxBytes 100000 Cap on captured installer output.

Security assessment design

The vetting is a bounded static heuristic, not a security guarantee — every report and prompt section states that. Scan rules (in severity order): install-time remote code (critical), obfuscation (critical), code execution primitives (high), credential reads (high), exfiltration destinations (high), unsafe filesystem access (medium), environment reads (medium), and supply-chain signals (medium/info). The safety score starts at 100 and deducts severity-weighted penalties; any critical finding forces high risk, and failed gathering returns an honest unknown.

Known Limitations and Deferred Work

  • Static vetting detects patterns, not intent; a clean report does not prove safety, and rules can produce false positives.
  • GitHub API access is unauthenticated and rate-limited; busy deployments should expect platformErrors degradation.
  • The npm vetting path scans registry metadata and unpkg file listings instead of unpacking the published tarball.
  • Relevance scoring is term-based; popularity is a ranking tiebreaker only.
  • plugin_install installs the package but never edits profile composition files — activation is deliberately manual.

Discoverability

This package is published under the dsh-plugin GitHub topic, the official discovery channel for DeepSeek Harness community plugins. This package is published under the @ace-xu npm scope. If you publish a fork under another scope (@you/dsh-plugin-market), keep the topic so other agents can find it through plugin_search.

Development

The canonical implementation lives in the DeepSeek Harness monorepo under packages/plugin-market/plugin-market (see the feature/plugin-market PR branch). Run node scripts/sync-from-monorepo.mjs <path-to-monorepo> to pull the latest sources into this standalone repo; the only divergences are this README, the standalone package.json/tsconfig.json, and test imports rewritten from package names to ../src paths.

pnpm install
pnpm run typecheck
pnpm test