@ttxl314/dsh-ds-peak-valley:在 DSH 对话底栏显示文峰/文谷时段徽标

前言

DeepSeek Harness(DSH)把对话界面拆成可插拔的 bundle。若你在本地跑 Harness 做智能体开发,有时会对照 DeepSeek 官方定价页里的「高峰 / 低谷」时段安排调用或测试——定价说明在浏览器里,会话底部的统计行(例如 1 轮 · 68 步 | LLM ...)旁却没有对应提示,需要反复切页或心算北京时间。

下面介绍社区插件 @ttxl314/dsh-ds-peak-valley:在 composer dock 统计行同一行固定一枚 文峰 / 文谷 徽标,按北京时区与官方定价脚注的窗口本地计算,不发起 HTTP、不消耗 token。

这是什么

  • 名称:@ttxl314/dsh-ds-peak-valley(npm 包名与注册 id 一致)
  • 维护者:ttxl314
  • 分类:趣味换装(SkillHub 社区目录)
  • 版本(资料中 package.json):0.1.1,许可证 MIT
  • 定位:纯客户端 DSH 插件,向 conversation.composer.dock 槽位(id: ds-peak-valley,order: 1)注册一行徽标,与 session 统计条并排显示。

时段规则与 DeepSeek 官方定价页脚注一致,文档引用:https://api-docs.deepseek.com/zh-cn/quick_start/pricing/。非 DeepSeek 官方插件,与 DeepSeek / 幻方无从属关系。

徽标显示什么

状态 北京时间 颜色
文峰(peak) 周一至周五 09:00–12:00、14:00–18:00 红 #e5484d
文谷(valley) 其余时刻(夜间、午休、周末等) 蓝 #0091ff

徽标大致结构(README 示意):

文峰 14:26 · 距下谷 3小时34分
└─┬─┘ └─┬─┘   └───┬───┘ └──┬──┘
state  Beijing   next switch  time left
       clock     direction    (h/min)
  • 距下谷(蓝色语境):即将在 12:00 或 18:00 进入文谷。
  • 距下峰(红色语境):即将在 09:00 或 14:00 进入文峰。
  • 鼠标悬停可看到完整窗口说明与计算用的北京时刻戳。

周末视为连续文谷,下一次切换为周一 09:00(含周五 18:00 → 周一 09:00 的倒计时逻辑,见仓库自测)。

核心行为(已核实)

  1. 时区:硬编码 Asia/Shanghai,用浏览器时钟经 Intl.DateTimeFormat 推导北京时间;本机系统时区不影响判定,但依赖系统时钟是否准确。
  2. 刷新:约每分钟重绘一次。
  3. 无配置:无配置文件、无 slash 命令、无设置项开关。
  4. 隐私:仅在客户端计算;无 HTTP、无遥测、不读 API key、不读仓库或会话数据。

实现上,lib/index.js 为宿主入口(apply() 空操作,供扫描 dsh.client);lib/client.js 为浏览器 bundle(徽标与 computeStatus / nextTransition);cordis.patch.yml 把插件行插入 profile 树。bundle 须以包名 @ttxl314/dsh-ds-peak-valley 调用 window.__ModuleLoader__.load({ id }),否则不会挂载。

安装与启用

要求:已安装 DSH,且使用 web 或 desktop profile;Node.js ≥ 18。

资料中的注册方式(tree-outside bundle)如下。先将仓库放到本机某路径,再对该 profile 执行 link 注册(README 原文含 clone 步骤,此处只保留与 DSH 相关的命令形态;路径替换为你的 checkout 目录):

dsh plugin --profile web add link:<path-to-clone>

也可手工编辑 profile manifest(常见路径 $DSH_HOME/profiles/web/package.json):

{
  "dependencies": {
    "@ttxl314/dsh-ds-peak-valley": "link:<path-to-clone>"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "@ttxl314/dsh-ds-peak-valley"
      ]
    }
  }
}

完成后重启 DSH;徽标应出现在 composer dock、统计行旁。

卸载:从 dependencies 与 dsh.profile.bundles 中移除该包并重启。

兼容性(README):针对 DSH 客户端插件 API(conversation.composer.dock、react 种子模块、window.__ModuleLoader__,dsh.client.platform = "web");在 DSH 0.2.1-rc.5 的 desktop 与 web profile 上验证。若未来 DSH 更名槽位或加载入口,主要改 lib/client.js。

典型用法

安装并重启后无需额外操作:打开任意对话,在底部统计行一侧查看徽标即可。

若状态与预期不符:

  1. 确认系统时间已同步。
  2. 悬停徽标,核对 tooltip 中的北京时间戳。
  3. 若徽标不出现:检查 dependencies 包名是否为 @ttxl314/dsh-ds-peak-valley、是否列入 dsh.profile.bundles、link: 目标目录是否仍存在。

开发者可在插件目录运行自测(不依赖 DSH 进程):

node test/self-test.mjs

或:

npm test

CI 在 Node 18 / 20 / 22 上跑同一套测试(.github/workflows/test.yml)。

若 DeepSeek 调整峰谷窗口,需改 lib/client.js 顶部的 PEAK_WINDOWS / PEAK_WEEKDAYS(README 说明)。

适用场景与注意

适合:在 DSH web 或 desktop 里长时间对话、希望一眼看到当前是否处于官方定价意义上的文峰/文谷,且不想为此时段查询单独打 API 的开发者。

注意:

  • 插件以当前 DSH 进程及其加载的 bundle 权限运行;安装前请阅读源码与 MIT 许可证,确认可接受本地 link 依赖方式。
  • 社区目录 SkillHub(https://www.skillhub.cn/plugins/ttxl314/dsh-ds-peak-valley)与 GitHub 仓库由社区维护,不是 DeepSeek 官方应用商店。
  • 重命名包时必须同步 package.json、cordis.patch.yml 与 lib/client.js 内的 id,否则 npm test 会失败且浏览器端可能静默不挂载。

结尾

@ttxl314/dsh-ds-peak-valley 把 DeepSeek 定价页上的峰谷窗口压缩成 composer 底栏一枚只读徽标:本地算、每分钟更新、零网络。需要安装细节与排错时,以仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye