Back to home

marvin9551

dynamic-schulte-dsh

No description

Stars
1
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

🧠 dynamic-schulte-dsh

License: MIT

中文 | English

动态舒尔特方格 · DeepSeek Harness 等待时间小游戏插件。

模型不参与游戏——它专门在等待模型回复时打开,边玩边等。插件在 dsh Web UI 的侧边栏底部注册一个「舒尔特」入口;当前会话模型思考中时,入口会亮起呼吸绿点提示。

功能

  • 🎯 静态网格:经典 n×n 舒尔特方格(3×3 ~ 7×7),按顺序点击 1..N
  • 🎡 动态轮盘:数字分布在同心圆环上,轮盘按可调转速旋转,训练手眼协调与抗干扰能力
  • 💚 等待提示:模型思考中时,侧边栏入口与面板头部同步显示提示
  • 💾 本地持久化:历史记录与设置存于浏览器 localStorage,无需后端
  • 可选增强:目标数字高亮 / 随机色彩干扰

截图

动态轮盘游戏截图

安装

本插件声明了 dsh.bundle 清单,可通过 dsh plugin add 安装:

# 1. 构建(或使用已发布的产物)
pnpm install
pnpm build

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

# 3. 启动 Web UI
dsh --profile <name>

打开 Web UI 后,在侧边栏底部点击「舒尔特」即可开玩。卸载:

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

开发

pnpm install        # devDeps: typescript / tsdown / react 类型
pnpm typecheck      # tsc --noEmit(框架类型通过 tsconfig paths 指向本地 deepseek-harness 检出)
pnpm build          # tsdown → lib/index.js(host 占位) + lib/client.js(浏览器 bundle)
pnpm verify:host    # 构建产物冒烟验证

架构

  • 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 提供。

兼容性

  • 运行环境:dsh Web UI(@deepseek-ai/dsh-web-app bundle)
  • 依赖:React 18(平台模块),无后端/无模型参与
  • 需要浏览器 localStorage 支持

License

MIT