wodaimnd/dsh-forge:Creator 插件的裝前體檢、裝後複驗與 rollback 賬本

前言

DSH 的理念是「一切皆插件」,Creator 自己寫插件、改插件的人也不少。問題在裝上之後纔開始:這個包到底讀了哪些路徑、寫了哪些文件、起的 HTTP 接口有沒有衝突,裝了之後和原來不兼容怎麼退。靠手工翻源碼和記憶來判斷,裝了三個插件之後就記不清了。

dsh-forge 就是針對這一段工作的插件。它把「裝之前先查、裝之後複驗、出問題回滾」做成一個閉環,並且把自己做成了 Web 界面,裝完在 DSH 左側欄就能點開,不需要再去翻命令行輸出。下面介紹這個插件的構成、安裝方式和實際用法。

這是什麼

dsh-forge 是一個 DSH 插件,倉庫地址 wodaimnd/dsh-forge,由 Kewei Chen(GitHub:wodaimnd)維護,當前版本 0.1.3,許可證 MIT。

一句話定位:爲 Creator 插件提供「裝前靜態體檢、Skill 目錄診斷、裝後複驗與 rollback 賬本」這四件事的統一入口,運行方式是「Host 半邊 + 瀏覽器半邊」的純 ESM 插件,沒有構建步驟,改完源碼刷新即生效。

核心功能

它解決的問題按時間順序分三段,對應三個模塊能力。

1、裝前靜態體檢。讀取插件源碼做靜態檢查(包含 child:node --check 語法檢查,僅讀取源碼),給出它聲明的能力清單:HTTP 接口、文件讀取路徑、文件寫入路徑。

2、Skill 目錄診斷。檢查 Skill 目錄的結構和聲明是否一致,找出缺文件、缺聲明這類裝之前就能發現的錯誤。

3、裝後複驗與 rollback 賬本。安裝後重新覈對一遍實際生效的能力和裝前聲明是否一致;所有操作寫進賬本,備份落在 <workspace>/.dsh-forge,出問題時能按賬本回滾。

這幾個能力在它的 dsh.forge.effects 聲明裏能直接看到:

"effects": [
  "http:loopback:/api/dsh-forge",
  "fs:read:任意絕對路徑(只讀,用於體檢)",
  "fs:write:<workspace>/.dsh-forge(賬本與備份)",
  "child:node --check(語法檢查,僅讀取源碼)"
]

數據來源是插件自己的 package.json 聲明,不是運行時猜測,所以體檢結果和它的聲明是同一份口徑。

功能形態上,它有幾個特點:

  • Web 界面:裝好後在 DSH 左側欄 / 設置中出現入口,風格和宿主一致,操作都在頁面上完成。
  • Host 能力與界面共享同一套實現:Host 半邊註冊的服務、HTTP 接口和 Agent 工具,和頁面操作走的是同一個後端,不是兩套代碼。
  • 無構建:純 ESM 插件,源碼直接加載,沒有打包步驟。

安裝與啓用

這個插件沒有發佈到遠端註冊表,需要作爲本地 bundle 安裝。源碼託管在 GitHub,地址如下:

https://github.com/wodaimnd/dsh-forge

先把倉庫取到本地,目錄結構如下:

dsh-forge/
├── package.json          # DSH 插件清單(dsh.bundle / dsh.client)
├── index.js              # Host 半邊
├── client.js             # 瀏覽器半邊
├── cordis.patch.yml      # bundle 行聲明
└── README.md

安裝方式有兩種。方式一是在 DSH 中把該目錄安裝爲本地 bundle,插件管理器「添加 → 本地目錄」,或者讓 Agent 執行:

plugin_manager action=install_bundle target=<絕對路徑>/dsh-forge

方式二更直接:打開 設置 → 插件 → 添加,選擇本地目錄後啓用 @local/dsh-forge。

裝好之後啓用,刷新 DSH Web 頁面,左側欄會出現對應入口,打開就是插件頁面。

典型用法

一個標準的使用流程是這樣的。

1、拿到插件源碼,先讀一眼 package.json 裏的 dsh.forge.effects,確認它聲明的能力範圍,判斷是否和已有插件重疊。

2、在插件頁面裏做裝前體檢,跑靜態檢查 + Skill 目錄診斷,看是否有語法錯誤或目錄結構問題。

3、確認無誤後啓用插件,安裝後複驗會重新覈對一遍實際生效的能力。

4、如果複驗結果和預期不一致,從 .dsh-forge 目錄裏的賬本和備份回滾,不需要手工回憶改了什麼。

配置項兩處可調:cordis.patch.yml,或者插件管理器的配置頁面。Host 半邊隨 bundle 行激活,不需要單獨啓動。

權限、兼容性與注意

有幾個使用上的邊界需要講清楚。

第一,這個插件以當前 DSH 進程的權限運行。它聲明瞭 fs:read:任意絕對路徑,雖然用途寫明是隻讀體檢,但它確實可以讀工作區之外的路徑。裝之前應該打開源碼本身檢查一遍,不只是看體檢結果。它聲明的 fs:write 範圍限定在 <workspace>/.dsh-forge,這個範圍相對窄,但也意味着賬本和備份都在工作區內。

第二,面向 DeepSeek Harness (DSH) Desktop / Web GUI。它通過 dsh.bundle 聲明 Cordis bundle,由插件管理器負責安裝、啓用和禁用;dsh.client 聲明要求 DSH 的 Web 前端支持插件模塊加載,不支持的話頁面半邊不會工作,Host 半邊不受影響。

第三,許可證是 MIT,源碼裏帶了 LICENSE 文件。裝之前順手看一眼即可,沒有額外限制。

第四,它屬於社區目錄 skillhub.cn 上的條目,該站點是獨立社區站,和 DeepSeek / 幻方沒有官方從屬關係,不要當成官方應用商店。

結尾

dsh-forge 做的事情不復雜:裝之前把靜態檢查、目錄診斷和能力聲明擺到桌面上,裝之後重新覈對一遍,並且把每一步記進賬本,隨時可查可回滾。對經常自己寫插件、改插件配置的 Creator 來說,這套流程比記住上次裝了什麼可靠得多。

目錄頁:https://www.skillhub.cn/plugins/wodaimnd/dsh-forge
GitHub:https://github.com/wodaimnd/dsh-forge

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

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

小夜