dsh-usage-stats
DeepSeek Harness Web 插件:在侧边栏设置行上方加一个「使用统计」按钮, 点击铺开一整页 zcode 风格的用量统计面板。
面板内容
- 时间范围切换:最近 7 天 / 最近 30 天
- 六张指标卡:tokens 用量、会话数量、消息数量、活跃天数、当前连续天数、最常用模型(含占比)
- 活跃热力图:30 个整周、按非零分位数分 5 档
- 按天 Token 趋势:按模型堆叠柱(前六模型 + 其他)+ 图例
- 模型用量:环形图 + 明细列表(占比、tokens)
- 右下「刷新」;Esc / 右上 × 关闭
数字读法同 zcode 页:10.1亿 / 6178.2万。
结构
| 半 | 文件 | 职责 |
|---|---|---|
| host | lib/index.js | 挂 sessionPersistence 缝,扫会话日志折叠成按天/按模型汇总(内存索引,启动全量+60s 增量);回环只读接口 GET /api/usage-stats/usage?days=N |
| client | src/client.js → lib/client.js | sidebar.footer.action 槽注册按钮;react-dom portal 铺整页;手写 SVG/DOM 图表,无第三方依赖 |
事件解析语义与 TokenLedger 一致(usage chunk 与 assistant/message 双收、同 (turn,step) 样本替换、消息数挂事件),但不做中转站归因,只按模型维度聚合。
开发
npm install
npm run build # esbuild 语法校验 src/client.js → lib/client.js
npm test # node test/smoke.mjs 两半核心契约冒烟
npm run link-profile # 接入 ~/.dsh/profiles/web,然后手动重启 dsh web验证
重启 dsh web 后:侧边栏设置上方出现「使用统计」行;DevTools console 有 [usage-stats] bundle script executing / factory materializing 两行。 面板 404/报错时先看 host 日志有没有 usage-stats: serving /api/usage-stats/usage。