前言¶
DeepSeek Harness (DSH) 採用了「一切皆插件」的架構。在開發或使用過程中,你可能會遇到需要自定義界面、添加快捷鍵或實現特定工具邏輯的場景。直接修改核心代碼或依賴不可靠的方案並不安全。
dsh-custom-js 插件提供了一個集中的環境,用於加載、編輯和管理可信的 JavaScript 和 TypeScript 用戶腳本。它解決了在 DSH Web GUI 中缺乏統一腳本管理工具的問題,允許你通過編寫腳本來自定義界面和功能。
核心功能¶
1. 內置編輯器與類型支持
插件內置了基於 CodeMirror 的編輯器,提供 JavaScript / TypeScript 語法高亮、行號、括號匹配和代碼導航。支持 JavaScript、MJS 和 TypeScript 文件格式。
2. 熱重載與生命週期管理
支持腳本的熱重載功能,修改代碼後可自動生效。提供顯式保存機制,防止在編輯過程中執行未完成的代碼。內置 TypeScript ES2022 模塊轉譯和生命週期管理。
3. 安全導入與狀態控制
默認採用安全導入策略,新導入的腳本默認處於禁用狀態,需手動檢查並啓用。支持按腳本啓用/禁用,並在腳本運行出錯時提供上下文重試功能。
安裝與啓用¶
安裝命令如下(請將 <profile> 替換爲你的配置文件名,例如 web):
dsh plugin --profile <profile> add dsh-custom-js
安裝完成後,必須重啓 DSH 進程才能使插件生效。重啓後,進入 Settings → General → Custom JavaScript / TypeScript 即可看到管理界面。
典型用法¶
- 打開 Settings → General → Custom JavaScript / TypeScript。
- 創建一個名爲
hello.js的腳本,並粘貼以下代碼:
console.log('Hello from dsh-custom-js')
- 保存腳本。如果開啓了自動重載,Host 會檢測到變化並通知 Client 加載新腳本。
你也可以直接在 $DSH_HOME/custom-js/ 目錄下創建文件,插件會自動掃描該目錄。
適用場景與注意¶
適用場景
適合需要在不修改 DSH 核心代碼的情況下,通過腳本自定義 Web GUI 界面、添加輔助工具或擴展功能的開發者。
重要注意
* 權限範圍:用戶腳本運行在瀏覽器端,擁有當前頁面的權限(如 DOM 操作、localStorage、網絡請求等),並非沙箱隔離。請僅加載你自己編寫或完全信任的代碼。
* 兼容性:插件兼容 DSH >=0.2.0-rc.1 <0.3.0-0 版本。
* 恢復機制:如果某個腳本導致 Web GUI 崩潰,可以通過停止 DSH,將 $DSH_HOME/custom-js/ 目錄下有問題的文件重命名(例如加上 .disabled 後綴),然後重新啓動 DSH 來禁用該腳本。
結尾¶
dsh-custom-js 讓你能夠安全地在 DSH 中擴展功能。更多細節請參考 GitHub 倉庫。