dsh-advanced-settings:在 Harness 裏用 VS Code 風格頁改所有插件配置

前言

DeepSeek Harness(DSH)裏每個插件都可以聲明 Cordis Config schema,運行時再通過 Host 的 configEditor、settings 等接口讀寫。插件一多,字段路徑、是否觸發重載、哪些是 secret,分散在各處文檔或源碼裏,手工改 profile 裏的 JSON 也容易寫錯層級。下面介紹社區插件 dsh-advanced-settings:在 Harness 自帶的 Settings 面板裏掛一節「Advanced settings」,按當前已加載插件的 schema 自動生成可搜索的設置行,寫法接近 Visual Studio Code 的設置頁。

這是什麼

dsh-advanced-settings 由維護者 genius-alray(Genius Alray)發佈,npm 包名與倉庫名一致,分類屬於 客戶端 插件:瀏覽器端渲染設置 UI,Host 側通過公開 DSH 服務聚合 schema 並處理讀寫,不手寫 profile 文件。

一句話定位:從每個 live 插件的 Cordis Config schema 生成可搜索的高級設置頁;自帶完整 settings UI 且調用 configure({ auto: false }, ctx.fiber) 的插件會被跳過,未加載的條目也不會出現在列表裏。

核心功能

頁面與檢索

設置面板以居中約 800 px 的模態呈現;左側導航由 shell 負責,本節內容落在約 564 px 寬的內容列。工具欄提供搜索、Modified 篩選、全部展開/摺疊、刷新,以及 Edit as text。

每個 Config 葉子字段佔一行,按插件分組。搜索可匹配插件名、字段路徑和 label;Modified only 只顯示已改項。行上還有 path 麪包屑、標籤(如 Modified、Reload、Secret、Expression、Disabled),以及類型對應的控件、重置與複製路徑操作。每個插件另有隻讀、已脫敏的 JSON 視圖;會觸發插件重載的寫入前會彈出確認,列出即將重載的插件。

寫入方式:即時 vs 確認後重載

  • Volatile 字段:通過 ctx.settings.mutate 立即保存(帶 revision 保護,不重載插件)。計數、上限、provider 等可在線調節的值會當場生效。
  • 普通字段:行上的 Apply 先確認,再經 ctx.configEditor.edit 寫入;若失敗由運行時回滾。

Secret 與複雜 schema

  • Schema 上 role('secret') 的字段,以及名稱像 apiKey、token、password 等憑證類字段,在服務端從讀響應中剝離;頁面只顯示掩碼後的 已設置 / 未設置。以 Env 結尾的名稱表示環境變量名而非密鑰值,仍可見。
  • 嵌套對象會攤平成行;超過四層深度則收成一行 JSON。enum 用 DSH 下拉;原始類型數組用 chips;object/map/union 用 JSON 編輯器打開。
  • JSON 編輯基於 CodeMirror 6,暗色頁用 @codemirror/theme-one-dark,否則用 CodeMirror 內置淺色主題,並帶 JSON lint。表單無法表達的項可用 Edit as text 打開 profile 配置文檔編輯。

安全與本地寫入

讀響應在服務端脫敏,secret 值不會下發。寫請求僅接受來自 loopback 客戶端或 loopback 瀏覽器 Origin 的連接。Host 側只使用公開 DSH 服務(configEditor、settings、webServer)。

安裝與啓用

在 當前 active profile 裏用 DSH Plugin Manager 安裝 npm bundle:

plugin_manager install_bundle  →  dsh-advanced-settings

安裝完成後打開 Settings → Advanced settings。該頁註冊爲 settings.section,id 爲 advanced-settings,排序 order 爲 40。

若從本地目錄安裝 bundle(開發或自建包),路徑需爲絕對路徑,例如:

plugin_manager install_bundle  →  /absolute/path/to/dsh-plugins/advanced-settings

(具體目錄以你本地的 clone 路徑爲準;安裝方式以 README 原文爲準。)

典型用法

1、按上文命令裝好 bundle 並進入 Settings → Advanced settings。

2、在搜索框輸入插件名或配置路徑,定位要改的項;需要時勾選 Modified 只看已修改行。

3、改 volatile 項會直接保存;改普通項點 Apply,在確認對話框裏看清將重載哪些插件後再提交。

4、複雜結構點開行內 JSON 編輯器,或工具欄 Edit as text 編輯整份 profile 配置文檔。

5、secret 類項只在 Host 側保存;頁面無法查看明文,僅能通過 set / not set 判斷是否已配置。

適用場景與注意

適合:在同一 Web profile 裏維護多個 DSH 插件配置、需要 VS Code 式檢索與分組、希望在 UI 裏區分「即時生效」與「需重載」字段的開發者。

兼容說明(來自 README):在 Web profile 上針對 DSH 0.2.2-alpha.2(Cordis 4.0.6-alpha.1)做過測試;你使用的 Harness 版本若不同,行爲以實際運行結果爲準。

權限與安全:插件與當前 DSH 進程同權限運行;安裝前請自行查看倉庫源碼與 MIT 許可證。社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,不要當作官方應用商店。

客戶端產物爲打包後的 client.js(內聯 CodeMirror);可讀源碼爲 client.src.js。開發構建需 Node >= 22,在倉庫內 npm install 與 npm run build 可從 client.src.js 再生 client.js。

結尾

dsh-advanced-settings 把各 live 插件的 Config schema 收成 Settings 裏的一頁:可搜、可篩、secret 不上屏、寫入分即時與重載兩路,並保留 JSON / 文本編輯退路。需要細節時查目錄頁與 GitHub README(含 中文 README)。

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

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

小夜