dsh-sudoku-waiting:在 DSH 等待回合里内联可续玩小游戏

前言

在 DeepSeek Harness(DSH)里跑 Agent,常见有一段空档:模型正在思考,或在执行工具,界面只能盯着日志滚动。切到别的窗口容易打断上下文;留在当前页又几乎没有可做的事。社区插件 dsh-sudoku-waiting(维护者 zergcq-cell,npm 包名 dsh-sudoku-waiting)的思路是:在这段等待时间里,把一局可继续的小游戏直接嵌进当前回合的对话流,而不是盖一层浮窗。它归类在 SkillHub 目录的「趣味换装」,当前 GitHub 星标为 0;README 也说明这是社区插件,不是 DSH 官方捆绑包。

这是什么

dsh-sudoku-waiting 是一个面向 Web 客户端的 DSH 客户端插件(package.json 中 dsh.client.platform 为 web)。在 DeepSeek 开始思考或运行工具时,它会在对话流最新位置渲染一张宽度上限 336px 的内联卡片,提供数独、2048、扫雷、关灯四款游戏;每款游戏各自存档,离开再回来进度仍在。回合结束卡片自动消失;若会话处于等你审批或回答的状态,也会暂时隐藏。关卡生成与判题在浏览器本地完成,不联网。

许可证为 MIT,当前 npm 版本为 1.1.1(以 package.json 为准)。环境要求:engines.dsh 为 ^0.2.2-rc.1,需带 Web 客户端与 Plugin Manager 的 DSH;文案内置中英文,跟随宿主语言。

核心能力

展示方式

  • 游戏卡片固定在对话流最新位置,与思考日志一起滚动,不是全屏或悬浮层。
  • 四款游戏共用同一卡片外壳;点标题可切换,当前项带勾选标记。
  • 棋盘区高度一致,避免日志上下跳动;右上角「收起」后变为一行「继续游戏」,尽量不挡会话内容。
  • 样式只使用宿主主题变量(--dsw-alias-*),浅色/深色自动适配,并尊重 prefers-reduced-motion。

四款游戏与操作

游戏 操作 进度显示
数独 左键填入,右键排除(再按右键取消) 已填 / 剩余
2048 棋盘上滑动,或聚焦棋盘后用方向键 / WASD 分数 / 最大方块
扫雷 左键翻开,右键或长按插旗;首点必安全 已翻开 / 旗子
关灯 点击翻转自身及上下左右共五格 步数

「新开一局」在有进度时会二次确认;已结束或已完成的局面可直接重开。

何时出现与消失

  • 出现:DeepSeek 开始思考或运行工具时。
  • 消失:回合结束时自动移除。
  • 暂时隐藏:等待你处理审批或提问时。

插件不读取会话正文,仅根据当前会话的 running 状态以及审批/提问状态决定是否显示(见 README「隐私」一节)。

隐私与存档

  • 不发起网络请求,无遥测或远程配置。
  • 存档写在浏览器 localStorage:dsh-games:<id>-v1(sudoku / 2048 / mines / lights),最后玩的游戏键为 dsh-games:last;旧版数独键会在首次读取时迁移到新键。损坏的存档会被丢弃并新开一局。

安装与启用

推荐从 npm 安装,装后默认启用,无需额外配置;没有 HMR 的环境可能需要重启一次 DSH。

在 DSH 的 Plugins / 插件 页面输入包名:

dsh-sudoku-waiting

或用 CLI 安装到指定 profile(把 web 换成你实际使用的 profile 名):

dsh plugin --profile web add dsh-sudoku-waiting

其他安装方式(README 原文):

  • 跟进 main 或无法使用 npm 时:
dsh plugin --profile web add github:zergcq-cell/dsh-sudoku-waiting
  • 从 Releases 下载 dsh-sudoku-waiting-<version>.tgz,在 Plugins 页选择该文件,或:
dsh plugin --profile web add /绝对路径/dsh-sudoku-waiting-<version>.tgz

兼容性说明:按 DSH 0.2.2-rc.1 的 Client API 编写;README 记载已在 macOS 的 DSH 0.2.2-rc.1 上安装运行,其他平台/版本未逐一实测。DSH 大版本 Client API 变更时,维护者计划在仓库发布新版本。

典型用法

安装并启用后,无需配置文件或环境变量。当你在 DSH 里发起一轮需要模型思考或工具执行的对话时,等待期间对话流末尾会出现游戏卡片。你可以:

  1. 点标题在数独、2048、扫雷、关灯之间切换(进度分别保存)。
  2. 玩一半收起卡片,继续看日志;需要时点「继续游戏」展开。
  3. 回合结束或你去回答审批/提问时,卡片按设计隐藏或消失;下次进入等待态会再次出现,未结束的对局从 localStorage 恢复。

这是一套「被动触发」的交互:没有单独的 CLI 子命令或配置项去「手动打开游戏」,显示逻辑与 DSH 会话的运行状态绑定。

适用场景与注意

适合谁:经常在 DSH Web 端等 Agent 跑完一步、又希望留在同一会话上下文里的开发者;想给等待时段加一点可续玩、纯本地逻辑的用户。

需要注意:

  • 插件随当前 DSH 进程与 Web 客户端加载;安装前建议浏览 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。
  • DSH 生态理念是「一切皆插件」;SkillHub 目录页 是社区站点,与 DeepSeek / 幻方无官方从属关系,本文介绍的是第三方插件行为,以仓库 README 与 package.json 为准。
  • 清除浏览器站点数据会删掉本地存档;换浏览器或隐私模式不会共享进度。

结语

dsh-sudoku-waiting 把可续玩的等待小游戏嵌进 DSH 对话流:四款经典玩法、本地判题与存档、随思考/工具执行出现、回合结束收起,并用宿主主题适配界面。若你要在 Agent 运行空档里少切窗口、多留一会话内,可以从 npm 包名 dsh-sudoku-waiting 装起,并记住 DSH ^0.2.2-rc.1 这一引擎约束。

  • 目录页:https://www.skillhub.cn/plugins/zergcq-cell/dsh-sudoku-waiting
  • 源码与说明:https://github.com/zergcq-cell/dsh-sudoku-waiting
羽毛球分组比赛记分
小程序二维码

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

Xiaoye