dsh-tidewatch:DeepSeek API 高峰/低谷时段与账户余额悬浮面板

DeepSeek Harness 插件开发者常需关注 API 价格波动与账户余额。若在开发过程中出现计费高峰,可能导致请求失败;余额不足亦会中断工作流。dsh-tidewatch 旨在解决这一痛点,将时段状态与余额信息直接集成到开发环境界面中。

这是什么

该插件是一个 DeepSeek Harness 插件,在页面右上角显示 DeepSeek API 高峰/低谷时段、倒计时与账户余额的悬浮卡片。

核心功能

  • 实时时段状态灯:根据 DeepSeek 官方计价规则判定当前是高峰期还是低谷期。高峰时段为北京时间周一至周五 09:00-12:00、14:00-18:00;其余为低谷时段,价格减半。
  • 北京时钟 + 倒计时:显示距下一时段切换还有多久,每秒更新。
  • 账户余额:配置 API Key 后查询余额,每 5 分钟自动刷新。
  • 可拖拽、可折叠:标题栏拖动定位,点“-”收起。

安装与启用

插件提供两种形态:

  • 常驻插件:开机即在,所有会话。使用命令安装:
    dsh plugin --profile web add /path/to/dsh-tidewatch
装载后会自动应用包内的 `cordis.patch.yml`,重启 profile 生效。
  • 动态插件:仅当前会话,进程内。在 DSH 会话中用 cordis_define 定义,再用 cordis_run 激活。动态插件只存在于当前进程内存,DSH 重启即消失,长期使用建议使用方案 A。

配置 API Key

插件默认复用 harness 配置的模型凭据,解析顺序如下:

  1. 当前生效模型所属 provider 的凭据引用 —— 由 agentDefaultModel.currentSelection() 得到 provider id,再用 llm.listConfigurableProviders() 定位配置对象,读取其 apiKeyEnv。
  2. 用户在面板里手动保存的 Key(环境变量 DSH_PLUGIN_DEEPSEEK_KEY)。
  3. 兜底环境变量 DEEPSEEK_API_KEY。

面板顶部会显示当前模型与 provider,并提供数据源下拉框,选中即可切换数据源。

安全说明

  • Key 永不回传浏览器:前端只拿到凭据引用名、来源与可用性,以及余额数值。
  • 余额请求由 Host 执行:Key 经环境变量传递,不出现在命令行、不写入日志。
  • 余额接口限制:只有 DeepSeek 系提供(<baseURL>/user/balance);其余 provider 会被标记为不支持。

技术实现

插件使用 connection.fetch 注册路由(POST /api/dsh-tidewatch),而非 connection.rpc。这是由于当前宿主实现的注入限制,rpc.handle 内部访问 owner.webServer 时必然抛出错误,导致路由注册失败。connection.fetch 的注册路径不经过 owner.webServer,故不受影响。

生效方式

  • 客户端半边(lib/client.js):改动后刷新页面即可,无构建步骤。
  • 宿主半边(lib/index.js / lib/tide.js):改动需重启 DSH profile。

目录与仓库

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

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

小夜