前言¶
DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在开发或调试过程中,长时间盯着屏幕容易产生疲劳。dsh-mini-games 作为一个轻量级工具插件,将三个纯前端小游戏挂载在 DSH Web 界面的 details 面板(右侧栏)中,不依赖后端,利用浏览器本地存储记录最高分。
是什么¶
这是一个由 aga-j 维护的插件,用于在 DSH Web 界面的详情面板中提供常驻的游戏入口。它包含三个经典游戏:猜数字、2048 和 扫雷。插件运行时完全在浏览器端执行,不占用宿主逻辑资源。
核心功能¶
- 面板常驻:游戏界面集成在 details 面板中,切换游戏标签时状态保留,但切换会话时会重置。
- 悬浮开关:提供右上角悬浮按钮(
shell.overlay插槽),用于在面板收起时重新打开。 - 数据持久化:游戏最高分通过
localStorage存储,键名前缀为dsh-mini-games:。 - 游戏机制:
- 2048:支持键盘方向键与屏幕触控按钮。
- 扫雷:支持右键插旗、首击安全规则以及计时功能。
- 主题跟随:使用 DSH 主题别名 token 配色,自动适配明暗主题。
安装与启用¶
通过官方插件管理命令安装:
dsh plugin --profile web add dsh-mini-games
安装完成后,需要重启 dsh web 使配置生效。重启后,在聊天区右上角会出现一个圆形的 🎮 按钮,点击即可打开或收起小游戏面板。
验证安装是否成功:
# 1. 检查配置树中是否存在 mini-games 行
dsh --profile web --dump-config
# 2. 验证浏览器端文件可访问
Invoke-WebRequest http://127.0.0.1:3080/plugins/dsh-mini-games/client.js
典型用法¶
- 确保 DeepSeek Harness Web 进程已启动且处于运行状态。
- 点击聊天区右上角的 🎮 按钮。
- 如果是首次打开,面板会显示三个游戏选项卡(猜数字 / 2048 / 扫雷)。
- 选择游戏进行游玩。切换选项卡不会中断当前游戏进度。
技术注意与限制¶
- 会话要求:面板必须在一个非空白的会话中才能正常打开(点击按钮会提示“先进入一个会话”)。
- 依赖警告:安装过程中出现的
missing peer @deepseek-ai/*警告是正常现象。不要手动安装@deepseek-ai/cordis,这些依赖由官方 bundle 提供。 - 面板宽度:面板的显示宽度由
ui-layout组件控制,范围通常在 300px 至 520px 之间。过窄会导致面板自动关闭。 - 技术实现细节:
- 为了避免与默认的 DetailsPanel 冲突,details 插槽注册使用了
-100的优先级进行影子化处理。 exports字段必须显式导出./package.json,否则激活扫描会报错。- 游戏状态在会话切换时会重置,但标签页切换期间会保留。
- 为了避免与默认的 DetailsPanel 冲突,details 插槽注册使用了
结语¶
dsh-mini-games 是一个符合 DSH 生态规范的轻量级插件,适合需要在开发间隙放松或测试界面交互的开发者。所有逻辑均为前端实现,源码透明。