dynamic-schulte-dsh:在 dsh Web UI 裏邊等模型邊玩的舒爾特方格插件

前言

用 DeepSeek Harness(DSH)跑智能體會話時,模型思考、生成回覆的間隙是純粹的等待:幾秒到幾十秒裏不能打斷會話,也沒事可做,通常只能切出去刷別的頁面再切回來。dynamic-schulte-dsh 把這段時間利用起來——它是一個等待時間小遊戲插件,在模型回覆期間,你可以在 dsh Web UI 裏玩一局舒爾特方格。DSH 的理念是「一切皆插件」,這個插件正是按這個思路做的。下面介紹它的功能、安裝方法和實現方式。

這是什麼

dynamic-schulte-dsh 由 marvin9551 維護,定位一句話能講清:動態舒爾特方格 · DSH 等待時間小遊戲插件,在等待模型回覆時於 Web UI 中游玩。模型不參與遊戲——它專門在等待模型回覆時打開,邊玩邊等。

插件在 dsh Web UI 的側邊欄底部註冊一個「舒爾特」入口;當前會話模型思考中時,入口會亮起呼吸綠點提示。歷史記錄和設置存於瀏覽器 localStorage,無後端、無賬號體系。當前版本 0.1.0,許可證爲 MIT。

核心功能

已實現的能力有五項:

  • 靜態網格:經典 n×n 舒爾特方格(3×3 ~ 7×7),按順序點擊 1..N;
  • 動態輪盤:數字分佈在同心圓環上,輪盤按可調轉速旋轉,訓練手眼協調與抗干擾能力;
  • 等待提示:模型思考中時,側邊欄入口與面板頭部同步顯示提示;
  • 本地持久化:歷史記錄與設置存於瀏覽器 localStorage,無需後端;
  • 可選增強:目標數字高亮 / 隨機色彩干擾。

安裝與啓用

插件聲明瞭 dsh.bundle 清單,可以通過 dsh plugin add 安裝。先構建,再裝進 profile,最後啓動:

# 1. 構建(或使用已發佈的產物)
pnpm install
pnpm build

# 2. 安裝進 profile
dsh plugin --profile <name> add -w /path/to/dynamic-schulte-dsh

# 3. 啓動 Web UI
dsh --profile <name>

<name> 換成你自己的 profile 名,/path/to/dynamic-schulte-dsh 換成倉庫的本地路徑。經過上面的步驟,打開 Web UI 後,在側邊欄底部點擊「舒爾特」即可開玩。

卸載同樣是一條命令:

dsh plugin --profile <name> remove dynamic-schulte-dsh

架構與開發

如果你想在它基礎上改,代碼分兩半:

  • host 半(src/index.ts):佔位插件。遊戲爲純瀏覽器端,host 半僅作爲 Cordis Loader 行與 dsh.client 客戶端包發現的載體,不註冊任何能力。
  • client 半(src/client/):瀏覽器 bundle,註冊 sidebar.footer.action 槽位;面板內是完整遊戲——engine.ts 爲純 TS 狀態機(無 React 依賴),GridBoard / RouletteBoard 分別渲染靜態網格與動態輪盤。

構建方面,tsdown.config.ts 復刻 harness 倉庫的 client bundle 約定:平臺模塊外部化、其餘內聯,產出 window.__ModuleLoader__.load({id, factory}) 閉包工廠,由 web shell 以 /plugins/dynamic-schulte-dsh/client.js 提供。

開發時常用的三條命令:

pnpm typecheck      # tsc --noEmit
pnpm build          # tsdown,產出 lib/index.js(host 佔位)與 lib/client.js(瀏覽器 bundle)
pnpm verify:host    # 構建產物冒煙驗證

運行環境爲 dsh Web UI(@deepseek-ai/dsh-web-app bundle),依賴 React 18 作爲平臺模塊,並需要瀏覽器支持 localStorage。

適用場景與注意事項

適合兩類人:一是日常用 dsh 跑會話、想把等待時間利用起來的用戶;二是想給 dsh Web UI 寫插件、需要找一個「client 半註冊槽位 + host 半佔位」最小示例的開發者——這個插件的架構就是現成的參考。

安裝前注意兩點:

1、插件以當前 dsh 進程的權限運行,裝進 profile 後會隨 dsh --profile 一起加載,建議先讀一遍源碼再決定是否安裝;
2、插件依賴 React 18 平臺模塊和瀏覽器 localStorage,部署前確認你的 dsh Web UI 環境滿足要求。

結尾

這個插件解決的問題很具體:等待模型回覆的碎片時間。不引入後端、不依賴模型,純瀏覽器端實現,裝好即玩。源碼與更多細節見 GitHub 倉庫:

  • GitHub:https://github.com/marvin9551/dynamic-schulte-dsh
  • 社區目錄收錄頁:https://www.skillhub.cn/plugins/marvin9551/dynamic-schulte-dsh

社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜