DeepSeek Harness 插件

dsh-plugin-observatory

Independent DSH plugin compatibility audit and bounded Loader lifecycle observation(英文原文)

跳到安装方式

来源信息

GitHub 仓库
CMSKL/dsh-plugin-observatory
最近更新
2026年8月19日
分类
安全与权限
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/CMSKL/dsh-plugin-observatory
插件名:dsh-plugin-observatory
作者:CMSKL

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-plugin-observatory

English | 中文

这是一个用于 DSH 插件安装前检查,以及插件挂载后 Loader 生命周期观测的独立 bundle。

它面向 DSH 插件作者、维护者和工具开发者,帮助你在激活插件前快速判断本地包是否声明了正确的 bundle、运行时依赖和宿主版本范围,补丁会插入哪些 bundle 行,以及当前进程里发生过哪些 Loader 转换。

本包提供两个只读工具:

  • plugin_audit 检查本地包的 package.json 与其中声明的 dsh.bundle.patch。检查项包括 manifest(元数据清单)完整性、DSH/Cordis/Node 版本范围、运行时依赖声明、安装生命周期脚本、补丁行、重复 id、路径约束,以及尚未求值的 !!js 表达式。
  • plugin_observe 投影当前非 group Loader 条目,以及本插件激活后观测到的有界根 fiber 转换历史。

plugin_audit 返回确定性的机器可读 JSON 报告,结论为 compatibleneeds-reviewincompatible。它只读取包元数据和声明的补丁,不会导入目标 JavaScript,也不会求值补丁表达式,因此可以用于安装前兼容性判断。plugin_observe 只保留有界的进程内状态和转换历史,不会替代 Loader 的当前状态。

快速上手

把稳定版 bundle 安装到 DSH profile:

dsh plugin --profile demo add dsh-plugin-observatory@0.1.0

在运行中的 profile 里,让模型审计一个本地插件:

请使用 plugin_audit 检查 /path/to/my-plugin,并返回 verdict、issues 和插入的 bundle 条目。

也可以在从本仓库根目录运行的 profile 中,把 package_path 设为 . 来审计当前 checkout。结果是 JSON 报告。本仓库的一次代表性结果如下:

{
  "verdict": "needs-review",
  "issues": [
    {
      "severity": "warning",
      "code": "lifecycle-script",
      "path": "package.json#scripts.prepare"
    }
  ],
  "bundle": {
    "insertedEntries": [
      { "id": "observatory", "moduleName": "dsh-plugin-observatory" },
      { "id": "observatory-invariant", "moduleName": "dsh-plugin-observatory/invariant" }
    ]
  }
}

本仓库出现 needs-review 是因为源码包在常见安装流程中会通过 prepare 构建 TypeScript。这是需要人工查看的提示,不代表 bundle 不兼容。版本范围兼容且没有复核项的插件可以返回 compatible。如果要查看当前运行时状态,可以让模型使用 plugin_observe,列出非 group Loader 条目和保留的转换历史。

如果这个工具帮你在插件激活前发现了问题,欢迎给项目点一个 Star,方便之后找到兼容性更新。

本包位于 DeepSeek Harness 官方仓库之外,通过公开的 bundle、Cordis 服务、Loader 事件和工具注册接口接入 Harness。它的 dsh.bundle 补丁把 PluginObservatoryService 挂载到 ctx.pluginObservatory,并挂载本包拥有的 invariant companion。

报告不含时间戳,检查项按确定顺序排列,并且不会导入目标 JavaScript 或求值 bundle 表达式。包文件与补丁的读取都有字节上限,要求有效 UTF-8,会解析符号链接,并且必须留在允许的根目录中。解析后的 patch 图还受嵌套深度和对象/数组访问次数限制;循环 YAML alias 会返回不兼容报告,而不会耗尽递归栈。

PluginObservatoryService.audit(packagePath, cwd, signal?) 向受信插件暴露同一套静态审计。服务在激活时只采集一次宿主包版本:能够解析 DSH CLI 包时以它为准,否则使用当前 DSH 发行族中一致的核心包版本;版本不可用或相互冲突时会产生明确的人工复核警告。snapshot(entryId?) 返回分离的调用时点生命周期报告,assertObservedTransition(...) 支持 invariant companion。Loader 仍是当前状态的权威;Observatory 只拥有有界、进程本地的转换历史。

0.1.0 是首个稳定版本,通过 npm 的 latest dist-tag 发布。后续候选版本仍只进入 next,不带版本限定的安装只会解析到稳定版本。

配置

默认值含义
allowedRoots直接挂载时为 [process.cwd()];随包配置使用工作目录与 DSH profile 根目录包目录必须解析到其中一个规范根目录之下。
maxManifestBytes262144package.json 读取的最大 UTF-8 字节数;允许配置的最大值为 32 MiB。
maxPatchBytes1048576从所声明 bundle 补丁读取的最大 UTF-8 字节数;允许配置的最大值为 32 MiB。
maxPatchDepth64解析后 patch 对象/数组的最大嵌套深度;允许配置的最大值为 256。
maxPatchNodes10000对象/数组的最大访问次数,重复 alias 展开也计入;允许配置的最大值为 100,000。
maxObservedEntries256内存中最多保留的 Loader 条目历史数。
maxTransitionsPerEntry64每个 Loader 条目最多保留的最近转换数。

安装细节

把当前 npm 稳定版本安装到 DSH profile:

dsh plugin --profile demo add dsh-plugin-observatory

需要可复现安装时,固定精确版本:

dsh plugin --profile demo add dsh-plugin-observatory@0.1.0

也可以从 v0.1.0 GitHub Release 下载 tarball 和 checksum,校验后安装:

shasum -a 256 -c dsh-plugin-observatory-0.1.0.tgz.sha256
dsh plugin --profile demo add ./dsh-plugin-observatory-0.1.0.tgz

配置输出中应出现来自 cordis.patch.ymlobservatoryobservatory-invariant 两行:

dsh --profile demo --dump-config

即使 profile 没有提供 ctx.invariants,invariant companion 也会先正常激活;它会在内部等待,并在该服务稍后出现时自动完成注册。因此,缺少这个可选 registry 不会阻塞 profile 激活门禁或 Observatory 的两个工具。

确认组合结果后,再按正常方式启动对应 profile。卸载命令为 dsh plugin --profile demo remove dsh-plugin-observatory

从本地 checkout 安装

先构建独立仓库,再把它添加到 DSH profile:

pnpm install
pnpm run check
dsh plugin --profile demo add .
dsh --profile demo --dump-config

直接从 Git checkout 安装时,pnpm 需要获得构建授权,因为源码包使用 prepare 编译 TypeScript。npm 包和 GitHub Release 附带的 tarball 都包含预构建的 lib/,不需要源码构建授权。

产品单元就是这个独立插件包。未来的 CLI(命令行界面)、CI 报告器或 Web 视图应作为 ctx.pluginObservatory 的轻量消费方,而不是第二套兼容性引擎。

开发

pnpm install
pnpm run check
pnpm run test:coverage
pnpm run publint
pnpm run test:e2e
pnpm pack --dry-run

运行时 DSH 与 Cordis 包均为 peer dependency;开发阶段使用它们已发布的版本,不会通过 workspace 链接回官方 Harness 仓库。

必过兼容矩阵在 Node 22.19.0 和 Node 24 上验证 DSH 0.1.0-rc.6。E2E 测试会把精确 release tarball 或固定 registry 版本安装到隔离的临时 DSH profile,检查实际包名和版本、两条 bundle 配置、两个包导出,并真实启动 profile 通过激活门禁,随后卸载并清理,不会触碰用户 profile。CI 还会通过每周定时和手动触发任务探测最新发布的 DSH 版本。

模型体验

插件审计与生命周期观测

#### 模型会看到什么

挂载本 bundle 后,模型会看到生成的 plugin_auditplugin_observe schema。成功的审计结果是描述兼容性检查项与所提取 bundle 事实的确定性 JSON。观测结果包含当前 Loader 状态、采集时间与有界转换时间戳;两个工具都不提供独立的系统提示词段落。

#### token 影响

只要工具可见,两个固定 schema 就会在每次请求中重复。结果依数据而定,每次工具调用追加一次;审计大小受 manifest 与补丁上限约束,观测大小受条目数与转换数上限约束。

#### KV Cache 影响

只要本插件的可见性与 schema 文本不变,schema 前缀就可复用。挂载或移除插件会改变工具 schema 前缀;每个结果则追加在可复用的会话前缀之后。

已知限制与暂缓事项

  • 仅限本地源码 —— 审计输入是已有的本地包目录;npm registry、GitHub、压缩包下载、签名验证和依赖安装不属于本包职责。
  • 静态兼容性不等于执行安全 —— 它不会安装或导入目标包、运行冒烟任务、检查传递依赖内容,也不能证明任意插件代码是安全的。
  • 宿主版本推导是显式的 —— DSH 版本检查使用 CLI 包或当前发行族中一致的核心包。两者都不可用或版本冲突时,报告会进入 needs-review,不会静默宣称兼容。
  • 生命周期脚本需要结合来源判断 —— 任何安装生命周期脚本都会产生复核项,因此本包审计自身时会把 prepare 构建标记为 lifecycle-script;该结果描述的是元数据,并不表示脚本已经执行。
  • 进程本地观测 —— 生命周期历史从 Observatory 激活时开始,刻意保持有界,在进程退出时消失;目前还不能把工具延迟、token 用量或失败归因到所属插件。
  • 评测是下一层 —— 可复现任务集、基线对比、评分卡、持久化运行产物、CI 策略和 Web 仪表盘仍是本插件服务上暂缓的消费方。