dsh-research:DSH 設置裏的科研插件市場

前言

DSH 的擴展方式圍繞插件展開。科研用戶通常需要在文獻檢索、參考文獻管理、寫作與評審等工具之間做選擇,再把選中的插件安裝到當前使用的 profile。

dsh-research 是一個科研插件市場。它在 DSH 的 Settings sidebar 中提供 Research plugins 頁面,列出用於文獻檢索、參考文獻管理、寫作與評審的精選插件,並提供 Install 按鈕寫入當前運行的 profile。它是獨立維護的目錄站點,不是官方應用商店。

這是什麼

dsh-research 的 package.json author 字段爲 ai4scholar,許可證爲 MIT。

它解決的問題是:把科研相關插件集中到一個設置頁面,並讓設置面板和瀏覽器目錄使用同一份 market.json,避免兩處列表漂移。

核心功能

  • 在 Settings sidebar 提供 Research plugins 頁面,列出用於文獻檢索、參考文獻管理、寫作與評審的精選插件。
  • 提供 Install 按鈕,直接寫入當前運行的 profile。
  • 目錄位於 dsh-research.com,瀏覽器列表在 https://dsh-research.com/plugins/。
  • 面板與 https://dsh-research.com/plugins/ 使用同一份 market.json,列表不會漂移。
  • 通過 allowlist、same-origin、one at a time 和 profile 參數約束安裝行爲。
  • 支持通過 cordis.patch.yml 覆蓋 id 爲 research-market 的配置行。
  • catalogUrl 可指向實現 DSH Community Market provider contract 的端點。

安裝與啓用

下面先安裝 dsh-research 本身:

dsh plugin --profile web add dsh-research

該命令把插件裝入 web profile。安裝後重啓 dsh web,然後打開:

Settings → Research plugins

新安裝的插件需要重啓後才能加載。

典型用法

瀏覽並安裝目錄中的插件

打開 Research plugins 頁面後,選擇目錄中列出的插件並點擊 Install。面板會執行當前 profile 的 dsh plugin add 命令。安裝目標取自該 host 啓動時的 --profile,因此測試 profile 不會修改真實 profile。

將面板設爲只讀

如果只想瀏覽,不希望頁面觸發安裝,可以從 profile 的 cordis.patch.yml 覆蓋 id 爲 research-market 的配置:

- id: research-market
  config:
    allowInstall: false

cordis.patch.yml 的 patch 會替換整個 config。覆蓋時需要重新聲明要保留的每個 key;上面的示例只展示 allowInstall: false。

指向自定義市場

將 catalogUrl 指向自定義端點後,面板可以列出自己的市場。該端點需要實現 DSH Community Market provider contract。

安裝行爲約束

  • allowlist:瀏覽器可以請求任意包名,但只有目錄中列出的包會被啓動;其他包名不會被啓動。
  • same-origin:避免 state-changing route 被任意頁面觸發,從而避免從已訪問站點向 profile 安裝包。
  • one at a time:避免兩個 dsh plugin add 併發運行導致 package.json 競爭並造成 profile 半寫入。
  • profile:安裝目標取自 host 啓動時的 --profile。

安全注意

安裝會調用當前 DSH 主機可用的 dsh 命令,並影響當前 profile。插件以當前 dsh 進程權限運行,安裝前應檢查插件源碼與許可證。dsh-research 本身的許可證爲 MIT;目錄中的其他插件需按其目錄條目和許可證單獨判斷。

實現細節

進程層改編自 dsh-market(MIT)。其說明中記錄了以下運行環境細節:

  • ctx.shell 無法寫入 profile。
  • macOS 應用從 Dock 啓動時,可能沒有 Homebrew PATH。
  • pnpm v10 在無 TTY 場景下可能需要設置 CI。
  • Windows 下 dsh 是 .cmd shim。

結尾

dsh-research 的價值在於把科研插件的瀏覽、安裝和配置收進 DSH 設置,並用同一份目錄文件保持面板與瀏覽器列表一致。

目錄頁:

  • https://dsh-research.com/plugins/

GitHub:

  • https://github.com/dsh-research/dsh-research
羽毛球分组比赛记分
小程序二维码

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

小夜