npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-plugin-dynamic-assembler

v0.3.8

Published

Natural-language driven dynamic assembler for DeepSeek Harness (dsh): discovers plugins at runtime (official-first, third-party optional), generates assembly plans, and loads them via Cordis — with built-in security audit gates for unofficial plugins.

Readme

dsh-plugin-dynamic-assembler

面向 DeepSeek Harness (dsh) 的自然语言驱动、安全闸门式动态组装插件。

用自然语言告诉 dsh Agent 你想"组装"什么——它在运行时发现所需插件(官方优先、第三方可选),生成组装方案,经你确认后通过 Cordis 动态加载。任何非官方插件在加载前都会先通过内置静态安全审查

对自进化 Agent 而言,安全闸门不是功能,是前提。

📦 已发布到 npmnpm i dsh-plugin-dynamic-assembler(v0.3.5)


为什么做

dsh 的核心是"一切皆插件"。自然的下一步是自我组装:Agent 根据需求组合自己的工具链——这正是官方时空可组合性论文点名的下一个验证方向:自进化 Agent Harness。

本插件让这件事既可行又安全

  • 运行时发现:可用插件通过 ctx.registry 运行时遍历,无任何硬编码插件清单。
  • 官方优先:任何能力优先选 @deepseek-ai/* 官方插件;官方无匹配才考虑第三方。
  • 用户知情同意:涉及第三方插件的方案会显式标注并要求 allow_unofficial 确认(策略可配:ask / allow / deny)。
  • 加载前审查:每个非官方插件先做静态扫描(危险模式 + 元数据),0-100 评分。red(<60 分)默认拒绝。

特性

| | | |---|---| | 🧭 运行时发现 | ctx.registry 遍历——全量可见,零硬编码 | | 🥇 官方优先 | 优先 @deepseek-ai/*;第三方仅作兜底且全程可见 | | 🔐 第三方闸门 | unofficialPolicy: ask(默认)/ allow / deny | | 🛡️ 内置安全审查 | assemble_inspect——模式扫描 + 元数据检查 → 评分 → 绿/黄/红 | | ⚠️ 敏感确认 | 联网/文件/命令/子代理/MCP/代码/凭据类能力必须显式确认 | | 🗑️ 级联卸载 | 动态加载的插件在本插件卸载时全部 dispose(Cordis 时间可组合性) | | 🧩 八个工具 | assemble_inspect · assemble_discover · assemble_plan · assemble_execute · assemble_unload · assemble_freeze · assemble_auto · assemble_compare(v0.3.3 同类候选横向对比,v0.3.4 修复 Star/功能要点/审计列渲染缺陷,v0.3.5 修复审计列管线层根因:npm 未发布候选跳过 inspect 置 N/A,v0.3.6 新增 assemble_inspectgithub_repo 发行物审计路径,v0.3.8 将该发行物审计接入对比表审计列 + 占位包语义识别) | | 🔭 外源发现(重装版) | assemble_discover + discoveryMode 配置:主动把 GitHub dsh-plugin 生态的社区插件纳入候选(只发现不裁决,经双重兜底) | | 🤖 全自动模式(重装版) | assemble_auto:说一句需求 → 自动规划并装载「官方+非敏感+策略允许」插件,失败自动回滚;敏感/未授权非官方自动跳过并回显需确认清单(绝不静默放行) |

安装

# 从 npm 安装(推荐)。安装后 dsh 自动发现,无需指向本地目录:
npm i dsh-plugin-dynamic-assembler
# 或由 dsh profile 托管:
pnpm dsh plugin --profile web add dsh-plugin-dynamic-assembler
# 之后重启 web 服务
pnpm dsh web

配置(可选)

在 profile 的 cordis.patch.yml 中追加(新条目必须用 - insert: 包裹):

- insert:
    - id: dynamic-assembler
      name: dsh-plugin-dynamic-assembler
      config:
        denyList: []                  # 永不被组装的能力名子串
        unofficialPolicy: ask         # ask | allow | deny
        pluginSources: []             # 未加载的第三方插件候选(npm 包名或本地目录)
        discoveryMode: github-topic   # github-topic | awesome-list | off(重装版外源发现开关)

pluginSources 用于声明尚未加载的第三方插件;已加载的插件(官方或第三方)由运行时自动发现,无需配置。

工具

| 工具 | 作用 | 关键参数 | |------|------|----------| | assemble_inspect | 审查插件包(官方/非官方):模式扫描 + 元数据 → 评分与分级;v0.3.6 新增 github_repo 参数——仅发 GitHub Releases、未上 npm 的社区插件传 owner/repo 走发行物审计路径,产出有意义报告而非死红"无法定位";v0.3.8 该发行物审计算法已接入 assemble_compare 对比表 | plugin, github_repo? | | assemble_discover | (重装版)主动刷新社区插件索引:拉取 GitHub dsh-plugin 生态候选并缓存 | force? | | assemble_plan | 分析自然语言需求,发现匹配能力(官方优先 + 社区索引),生成方案(不加载) | requirement | | assemble_execute | 经 Cordis 动态加载并启动插件。需确认;非官方需 allow_unofficial;red 审查需 force | names, confirm, confirm_sensitive, allow_unofficial, force?, configs? | | assemble_unload | 卸载本插件动态加载的所有插件(安全回滚) | — | | assemble_freeze | 把确认过的方案固化为 agent.cordis.yml preset(重启不丢、可版本管理) | names, preset_name?, base_dir?, configs? | | assemble_auto | (重装版)一句话全自动组装:自动规划 + 安全分层自动装载(敏感/未授权非官方跳过并回显) | requirement | | assemble_compare | (v0.3.3)同类候选横向对比:Star/版本/发布日期/安装包大小/校验文件/npm 发布核实/核心功能/静态审计分;可显式点名或复用索引。仅信息呈现,不改信任闸门。v0.3.4 修复:补 repo 详情请求补全 Star/Fork/描述、支持 README 异构特性形态(bullet/HTML-h3/加粗段首)、审计列未发布代码显示 N/A(无 npm 包)而非 0/100 | repos?, max_candidates? |

示例对话

用户:"我需要一个能联网搜索并整理成 Markdown 文档的机器人。"

  1. 模型调用 assemble_plan({ requirement: "联网搜索并整理成 Markdown 文档" }) → 运行时发现已加载插件,官方优先匹配能力,返回方案与推荐顺序。
  2. 用户确认后,模型调用 assemble_execute({ names: ["tool-web","web-search-deepseek"], confirm: true, confirm_sensitive: true, allow_unofficial: false }) → 已加载的标记可用;未加载的官方插件按约定包名 @deepseek-ai/dsh-<name> 动态 import。
  3. 随时回滚:assemble_unload()

安全模型

assemble_inspect 执行两层静态审查

  1. 元数据——npm scope(官方/第三方)、license、仓库、install/postinstall 脚本(高危)、peer 依赖完整性。
  2. 源码——入口文件(及邻近源码文件,限制大小)扫描危险模式:

| 级别 | 模式 | |------|------| | 🔴 高危 | eval / new Functionchild_process/exec/spawn、安装脚本、疑似硬编码密钥 | | 🟡 中危 | 文件写/删、网络请求、动态导入、base64 解码、字符混淆 | | 🔵 提示 | process.env 访问、预发布版本、缺 license/仓库、非官方 scope |

评分:100 分起步逐项扣减 → green ≥ 80 / yellow ≥ 60 / red < 60

  • green:可加载。
  • yellow:可加载但需知晓(第三方仍要求 allow_unofficial)。
  • red默认拒绝;仅 force: true(高风险)可强制覆盖。

⚠️ 边界声明(务必知晓):静态审查是风险提示,不是安全保证。插件本质是 JS 模块,ctx.plugin() 加载后即拥有完整 Node 进程权限,恶意代码可轻易绕过正则扫描。请只安装可信来源的插件。隔离沙箱执行列为 v2 方向。

扩展能力词典

意图→能力映射在 CAPABILITY_RULESsrc/dynamic-assembler.ts)。每条规则把自然语言关键词映射到候选插件名子串:

{ keywords: ['搜索', 'search', '联网', 'fetch', '网页', '抓取'],
  label: '联网搜索/抓取',
  match: ['tool-web', 'web-search', 'web-fetch-http', 'web'],
  dependsOn: ['web'],
  sensitive: true }
  • match 是插件名子串,在运行时发现结果中匹配(官方优先)。
  • 未加载的官方插件按约定名 @deepseek-ai/dsh-<name> 动态 import。
  • sensitive: true 要求显式确认。
  • 欢迎 PR 补充规则——词典只是启发式,绝不是硬编码清单。

开发

npm install
npm test        # node --test(ESM strip-types,审查引擎 + 官方优先逻辑 + 回归)
  • src/inspect.ts —— 纯审查引擎(不依赖 cordis,可独立单测)
  • src/discovery.ts —— 重装版外源发现(GitHub 生态索引纯逻辑,可单测)
  • src/dynamic-assembler.ts —— 插件入口、七个工具、官方优先规划 + 全自动安全分层
  • test/ —— node:test 测试(cordis/dsh-tools 用 stub,它们只存在于 dsh monorepo 内)

当前能力边界(轻量版 vs 完全体)

本项目当前是 「完全体 v0.3.5」:外源发现(阶段一)+ 信任增强(阶段三)+ 全自动模式(阶段四)+ 语义级组合编排蓝图(阶段二)+ 会话粒度事件日志(尾款①)+ 同类候选横向对比 assemble_compare(黎叔实测驱动,v0.3.4 修复 Star/功能要点/审计列渲染三项缺陷,v0.3.5 修复审计列管线层根因) 全部落地。

| 维度 | 现在能做的(v0.3.5 已落地) | 完全体后续增强 | |------|----------------------|--------------------| | 插件发现 | 运行时发现已加载插件 + pluginSources 点名的包 + GitHub dsh-plugin 生态社区索引assemble_discover / discoveryMode) | 同左(对接型,不重造搜索引擎) | | 同类候选对比 | assemble_compare(v0.3.3):Star/版本/发布日期/安装包大小/校验文件/npm 发布核实(幻影名标"仅 GitHub 发行物")/核心功能/静态审计分横向对比;assemble_plan 同类≥2 候选自动附精简引导 | 历史对比趋势 / 自动刷新 | | 任务→能力 | 关键词/真实工具信号 → 官方优先 + 依赖拓扑排序 + 语义级组合编排蓝图(角色分工 / 执行步骤 / 能力竞争预警) | 同左 | | 第三方信任 | 静态审计 + unofficialPolicy 闸门 + 社区候选双重兜底 + Cordis 版本兼容提示 | 信任评分 / 沙箱预演 / 签名校验 | | 非专业体验 | assemble_auto:说目标 → 自动装好安全插件并兜底回滚(敏感/未授权非官方自动跳过并回显需确认) | 同一体验 + 社区插件信任评分后也可纳入自动 | | 事件日志 | 会话级 scope 粒度(scopeFromExec 安全提取,恢复真实会话标识;守卫对象兜底 <global>) | 同左 |

对非专业用户:你只需用自然语言描述「想让 Agent 做什么」,本插件会挑出合适的官方插件、排出装载顺序、做安全检查并自动装载安全部分;敏感操作或未经授权的第三方插件会自动停下、列清单请你确认,而不是默默装错东西或悄悄放行危险操作。

不会重复造轮子:官方若推出官方插件市场/商店,本插件会改为「对接」而非「重造」;本插件的价值护城河在安全编排层(敏感闸门、供应链审计、失败回滚),这部分官方通常不会替你做。

License

MIT © 2026 黎叔玩AI