前言¶
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)。