前言¶
DeepSeek Harness(DSH)理念强调「一切皆插件」。当需要开发或维护 Obsidian 插件时,现有的工具链(如 Webpack/Vite、Obsidian 官方模版)与 LLM 智能体的交互存在断层。dsh-obsidian-plugin 是一个为 DSH 代理提供完整 Obsidian 插件开发生命周期能力的工具集。它由 LeeLee592 维护,通过 DSH 插件系统运行,解决了智能体在生成代码后,缺乏自动化构建、测试、部署及运行时验证能力的问题。
核心能力¶
该插件提供了一系列工具,覆盖从代码生成到运行时交互的全流程。
1. 开发与构建¶
obsidian_plugin_scaffold:从官方obsidianmd/obsidian-sample-plugin模板生成符合规范的插件骨架,内置命名和提交检查。obsidian_plugin_build:打包插件项目为可加载的main.js(CommonJS,外部化obsidian),并执行静态自检(L1 级别)。它会解析入口点,并按照项目自身配置、本地构建脚本或默认策略降级处理。如果查找失败,会列出所有尝试过的路径。obsidian_plugin_validate:验证manifest.json必填字段、命名规则、versions.json映射以及package.json版本一致性,并使用官方obsidianmd/eslint-plugin进行代码检查。obsidian_plugin_version:同步manifest.json、versions.json和package.json中的版本号。
2. 测试¶
obsidian_plugin_test:执行离线烟雾测试(L2 级别)。在纯 Node 环境下加载构建包,针对桩件化的 Obsidian API 运行生命周期测试。无需安装 Obsidian,能解析项目本地的@codemirror/*和@lezer/*依赖。obsidian_plugin_e2e:基于 WebdriverIO 和wdio-obsidian-service搭建沙盒化 E2E 测试(L4 级别)。它会创建独立的 Obsidian 实例和隔离的配置目录,避免干扰开发者当前窗口。
3. 部署与交互¶
obsidian_plugin_deploy:将构建产物安装至<vault>/.obsidian/plugins/<id>/,并更新该 vault 的community-plugins.json(保留现有条目)。它还会在dsh.obsidian.json中记录该 vault。obsidian_plugin_reload:使代码更改生效。支持reload、enable、disable、rescan(刷新插件 manifest 索引,对于新部署插件至关重要)以及unrestrict(关闭 vault 的受限模式)。obsidian_plugin_vault:管理用于实时验证的 vault。支持查看状态、注册/打开 vault(ensure)、关闭 vault。obsidian_plugin_inspect:对运行中的应用进行只读观察。提供status(健康报告、已注册 vault、插件状态、信任模态框状态)、console、screenshot等功能。这是读取应用状态的主要手段,无需批准,优先于eval。obsidian_plugin_eval:在运行的应用程序中执行 JavaScript。这是唯一的高特权工具,用于读取插件实例、驱动交互或尝试修复。执行代码会被回显作为审计轨迹,且当代码涉及窗口聚焦时会发出警告。该操作需要批准受控。
验证层级¶
插件定义了四层验证机制,默认的开发循环包含 L1、L2 和 L4。
| 层级 | 方式 | 说明 |
|---|---|---|
| L1 | 静态 | 在 obsidian_plugin_build 中进行工件、模块格式和 manifest 检查,无干扰。 |
| L2 | 离线烟雾 | obsidian_plugin_test 在 Node 中加载构建包,无需安装 Obsidian,无干扰。 |
| L3 | 你的 Obsidian | 使用 obsidian_plugin_vault、reload、inspect 等工具作用于你的运行应用,由 CLI 驱动。 |
| L4 | E2E | obsidian_plugin_e2e 使用 WebdriverIO 在沙盒环境中运行,完全隔离。 |
安装与使用¶
该插件通过 DeepSeek Harness 插件系统安装。安装后,DSH 代理即可通过名称调用上述工具(例如 obsidian_plugin_build)。
注意事项:
- obsidian_plugin_eval 需要批准才能执行,且具有高权限,请谨慎使用。
- 在执行代码操作前,建议优先使用 obsidian_plugin_inspect 进行只读检查。
- 插件以 DSH 进程的权限运行,安装前请检查源码与许可证(MIT)。