dsh-obsidian-plugin

前言

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)。

参考资料

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜