7d7d:在 DSH Web UI 內生成、同步並遊玩小遊戲的插件

前言

在 DSH 的插件化使用方式中,模型可以生成 HTML5 或 Flash 小遊戲,但要在 DSH Web UI 裏直接查看和試玩,還需要入口、靜態託管和播放邊界。

7d7d 是一個 DSH 遊戲門戶插件。它在 DSH Web UI 會話標籤欄新增 7D7D 標籤,點擊後打開遊戲門戶;通過 DSH 主服務器 /7d7d 前綴同源託管遊戲靜態資源與 API;即時掃描 games/ 目錄生成門戶清單;支持 HTML5 單文件遊戲和 Flash SWF 遊戲,並使用固定版本 Ruffle 0.5.0 自託管播放 Flash。

這是什麼

7d7d 的許可證爲 MIT。倉庫路徑爲 omdsh-dev/7d7d,包名爲 @mattheliu/7d7d,版權標註 mattheliu。

它覆蓋三個環節:

1、生成:提供 skills/7d7d 技能,讓模型按規範生成遊戲目錄。

2、同步:自動同步倉庫 community-games/ 社區遊戲,也可手動觸發同步。

3、遊玩:在 DSH Web UI 中通過 7D7D 標籤打開門戶,運行本地或社區遊戲。

核心能力

  • 在 DSH Web UI 會話標籤欄新增 7D7D 標籤,點擊打開遊戲門戶。
  • 通過 DSH 主服務器 /7d7d 前綴同源託管遊戲靜態資源與 API。
  • 即時掃描 games/ 目錄生成門戶清單,支持本地與社區遊戲。
  • 支持 HTML5 單文件遊戲,也支持 Flash SWF 遊戲。
  • 使用固定版本 Ruffle 0.5.0 自託管播放 Flash,不在運行時加載第三方腳本。
  • 提供 skills/7d7d 技能,讓模型按規範生成遊戲目錄。
  • 自動同步倉庫 community-games/ 社區遊戲,也可手動觸發同步。
  • 遊戲運行在不含 allow-same-origin 的 sandbox iframe 中,形成不透明 origin 邊界。

安裝與啓用

前置要求是 Node >= 22 與 pnpm。

該插件必須安裝在包含精確 @deepseek-ai/dsh-web-app@0.1.0-rc.6 的 Web Profile 上;裸 Profile 不提供所需服務。package.json 標記 private: true,資料說明不承諾發佈爲公共 npm 包。

下面按給出的命令與配置片段操作。先克隆倉庫並安裝依賴:

git clone https://github.com/omdsh-dev/7d7d.git
cd 7d7d
NPM_CONFIG_USERCONFIG=/dev/null pnpm install --frozen-lockfile --ignore-scripts

這一步安裝鎖定依賴,並跳過 scripts 執行。

接着構建:

pnpm build

這一步產出插件構建結果。

如果包含 Flash 遊戲,安裝自託管 Ruffle:

pnpm fetch:ruffle

這一步安裝固定版本 Ruffle 0.5.0;未安裝本地文件時,Flash 播放會顯示明確提示,不回退第三方 CDN。

然後接入 Web Profile:把 cordis.patch.yml 的內容併入 Web Profile 層,或使用 dsh.plugin.json 清單安裝:

- insert:
  - id: 7d7d
    name: '@mattheliu/7d7d'

重啓 dsh web 後,打開任意會話,標籤欄出現 7D7D 標籤。

典型用法

讓模型生成一款小遊戲

skills/7d7d/SKILL.md 放進 DSH 的 skills 目錄,然後提示:

用 7d7d 做一款「太空射擊」小遊戲

模型會按規範生成遊戲目錄。遊戲目錄規範爲:

~/.dsh/7d7d/games/<slug>/
├── game.json
└── index.html

Flash 遊戲可在同一目錄中放置 game.swf

投稿社區遊戲

把遊戲目錄放進 community-games/<slug>/,運行:

node scripts/update-catalog.mjs

重新生成 catalog.json,一起提 PR。

Flash 與 Ruffle

7d7d 對 Flash 遊戲使用固定版本 Ruffle 0.5.0 自託管播放,不在運行時加載第三方腳本。

Flash 遊戲需要固定版本 Ruffle 0.5.0。未安裝本地文件時會顯示明確提示,不回退第三方 CDN。版權上,只能上傳自己擁有或已獲授權的 SWF,不要扒 7k7k/4399 的商業遊戲資產。

安全邊界

7d7d 的遊戲運行在不含 allow-same-origin 的 sandbox iframe 中,形成不透明 origin 邊界。

已覈實的安全限制包括:

  • 遊戲不能讀寫 GUI 的 cookie/localStorage。
  • 遊戲無法訪問 DSH 的 /api 橋接。
  • 獨立 loopback 端口模式已廢棄。

適用場景與注意

適合以下場景:

  • 在 DSH Web UI 內查看和試玩模型生成的 HTML5 小遊戲。
  • 管理本地 games/ 目錄中的遊戲,並查看社區遊戲。
  • 使用固定版本 Ruffle 0.5.0 自託管播放已授權 SWF。

安裝前需要注意:

  • 插件聲明的權限包括 filesystem:writenetwork:outboundui:extendwebserver:register
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  • 需要 Node >= 22、pnpm,以及包含精確 @deepseek-ai/dsh-web-app@0.1.0-rc.6 的 Web Profile。
  • package.json 標記 private: true,不承諾發佈爲公共 npm 包。
  • 上傳 SWF 需要擁有版權或已獲授權。

鏈接

  • 獨立社區目錄:https://www.skillhub.cn/plugins/omdsh-dev/7d7d
  • GitHub:https://github.com/omdsh-dev/7d7d
羽毛球分组比赛记分
小程序二维码

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

小夜