前言¶
在 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:write、network:outbound、ui:extend、webserver: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