bowenliang123/dsh-context
bowenliang123/dsh-contextDSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
DeepSeek Harness Token 用量统计。按渠道区分统计,官方渠道自动显示余额,套餐渠道显示 5 小时/7 天/30 天用量余量,人民币计费估算,含每日图表与模型分布,集成在设置页侧边菜单。
DeepSeek Harness (DSH) 的 Token 用量统计面板:模型用量、Token 消耗、缓存命中率、按渠道统计、渠道余额/套餐余量、费用估算(人民币)。以会话顶部独立 Tab 页呈现(「Token 统计」,与 对话 / 轨迹 / 上下文 / 记忆 并列),按 NewAPI / Sub2API 统计看板风格设计的全宽仪表盘。
stats-panel.dayBoundary 日历分桶,默认主机本地时区)、缓存命中率、估算费用(人民币)× 把不关心的渠道从余额网格里删掉(例如本地桥、已停用的中转);只隐藏、不删数据,底部「已隐藏 N 个渠道 · 恢复全部」一键找回,选择存 localStorage/user/balance)、Kimi 月之暗面(/v1/users/me/balance)、硅基流动(/v1/user/info)、阶跃星辰「按量计费钱包」(/v1/accounts,见下方说明)、OpenRouter(/api/v1/credits)、Novita AI(/v3/user/balance)/zen/go/v1/usage,滚动/7天/30天配额)、OpenAI(/v1/usage,5小时/7天/30天用量)、Anthropic(/v1/organizations/usage/costs,同上)/dashboard/billing/* 计费模拟端点;key 为无限额度令牌时(hard_limit_usd=1e8 哨兵)改查控制台用户余额 /api/user/self——会话 Cookie 存 ~/.dsh/stats-panel/<provider>-cookie.txt(附 new-api-user=<uid>),或访问令牌凭据 <XXX>_ACCESS_TOKEN/v1/usage 用 sk key 自查钱包余额、今日用量与累计成本platform.xiaomimimo.com/api/v1/tokenPlan/usage,需登录 Cookie);未配置 Cookie 时回退为手动填写(存 localStorage)/step_plan/v1 是 Step Plan(套餐)专属路由,而 StepFun 唯一的账户接口 /v1/accounts 返回的是按量计费钱包(type: prepaid),不是套餐 Credits;开放平台文档里也没有第二个账户接口。把钱包当套餐余量显示正是「套餐余量不对」的来源,所以 Step Plan 渠道改为:卡片走手动路径、提示里带上钱包数值与套餐余量出处,套餐数字由控制台 Cookie 探测或手动填写提供token-plan.maas.qianwenaiapi.com 只为 OpenAI 兼容协议开路由,Credits 余量只在千问 AI 平台工作台可见DSH_STATS_COMPACT_MAX_RECORDS(默认 10000 条,环境变量可调)即整体折叠为精确聚合并与已有内容合并写入 ~/.dsh/stats-panel/archive.json 并原子写回 cutoff 之后的 retained 明细——压缩在启动时与 summary 请求路径都会触发,长期不重启的 host 明细也不会无限增长;不保存、不读取已折叠的单条历史明细,统计数字不受影响;「调用记录」分页显示未折叠的 retained 明细及之后新增的调用。archive.json 是压缩前历史的唯一载体,请勿删除;backfill-state.json 按持久化 session revision 记录已扫描版本,未变化的非 live 会话可跳过,旧 state、revision 不可用或明细日志缩短时会安全全量重扫cd ~/.dsh/local-plugins
git clone https://github.com/zhang-jiazhi/dsh-stats-panel.git
cd dsh-stats-panel && pnpm install --frozen-lockfile
# 仓库已包含预构建 lib/,无需本地构建
pnpm run typecheck
pnpm test
从源码重建 client bundle 需要 DSH 源码仓库中的官方
packages/client/tsdown.client.ts工厂;普通安装直接使用仓库内预构建的lib/产物。
在 ~/.dsh/profiles/web/package.json 的 dependencies 添加:
"@linxin666/dsh-stats-panel": "<git 或 npm 地址>"
并加入 dsh.profile.bundles 列表,重启 dsh web 即可。
渠道列表以当前 profile 的 cordis.patch.yml 为准(0.1.7 起 live 的 llm-* providers 已从 ~/.dsh/settings.yaml 迁到 profile;旧文档只在 profile 没有 providers 时兜底)。渠道余额/余量自动从各平台官方 API 查询(需要你在 DSH 中配置对应渠道的 API Key,读取自 ~/.dsh/.credentials.yaml 或环境变量);查询失败或无公开 API 的渠道会显示错误/待配置,可手动填写。
MiMo Token Plan 自动查询需要平台登录 Cookie(platform.xiaomimimo.com)。配置方式二选一:
~/.dsh/stats-panel/mimo-cookie.txt(权限建议 600)MIMO_PLATFORM_COOKIECookie 过期后重新登录平台并更新该文件即可。
| 渠道 | 类型 | 查询 API | 币种 |
|---|---|---|---|
| DeepSeek 官方 | 余额 | api.deepseek.com/user/balance | CNY |
| Kimi 月之暗面 | 余额 | api.moonshot.cn/v1/users/me/balance | CNY |
| 硅基流动 | 余额 | api.siliconflow.cn/v1/user/info | CNY |
| 阶跃星辰 StepFun(按量计费) | 余额 | api.stepfun.com/v1/accounts | CNY |
| 阶跃星辰 Step Plan(套餐) | 无公开接口 | 控制台 platform.stepfun.com;卡片把手动路径与 ¥钱包余额 一起给出 | — |
| 阿里 Token Plan(千问) | 无公开接口 | 控制台 platform.qianwenai.com → 工作台 → Token Plan → 我的订阅 | — |
| OpenRouter | 余额 | openrouter.ai/api/v1/credits | USD |
| Novita AI | 余额 | api.novita.ai/v3/user/balance | USD |
| OpenCode Go | 套餐配额 | opencode.ai/zen/go/v1/usage | 滚动/7天/30天 |
| OpenAI | 用量(5h/7d/30d) | api.openai.com/v1/usage | — |
| Anthropic | 用量(5h/7d/30d) | api.anthropic.com/v1/organizations/usage/costs | — |
| MiMo Token Plan | 套餐用量 | platform.xiaomimimo.com/api/v1/tokenPlan/usage(需登录 Cookie) | — |
OpenAI / Anthropic 用量接口需要组织级(admin)API Key,普通项目 Key 可能返回 403。 渠道自动发现:读取
~/.dsh/settings.yaml的llm-pi-ai.providers,按 baseURL 匹配查询方式;llm-deepseek段只有模型目录/重试策略,不参与发现;deepseek-official仅当DEEPSEEK_API_KEY凭据可解析时自动加入探测列表。凭据通过 DSH credentials 服务按apiKeyEnv解析。
仓库已包含预构建产物(lib/),安装后开箱即用,无需构建。
如需从源码重建:
pnpm run typecheck
pnpm test
DSH_CLIENT_BUNDLE_FACTORY=/absolute/path/to/packages/client/tsdown.client.ts pnpm run build
build 先生成类型中间产物,再用 DSH 官方 clientBundle 工厂生成 node half 和 __ModuleLoader__ client bundle。DSH_CLIENT_BUNDLE_FACTORY 可传绝对路径,或传相对插件目录的路径。没有 DSH 源码环境时:pnpm run build:host 可从源码重建 host 半区(lib/index.js),client 半区仍使用仓库预构建产物。
数据持久化于 ~/.dsh/stats-panel/records.jsonl(按 sessionId+seq 去重,跨重启安全);archive.json 保存已压缩历史,backfill-state.json 保存已扫描的持久化 revision。
~/.dsh/stats-panel/mimo-cookie.txt 或环境变量 MIMO_PLATFORM_COOKIE),且 Cookie 未过期;未配置或失效时会回退为手动填写。<profile>/cordis.patch.yml)。列表还是旧的,说明 host 进程还在用旧代码——重启 dsh(桌面版退出重开)即可;0.1.6 及更早宿主会自动回退读 ~/.dsh/settings.yaml。× 隐藏;要恢复就点网格下方「已隐藏 N 个渠道 · 恢复全部」。隐藏是浏览器本地状态(localStorage),host 仍照常探测。~/.dsh/stats-panel/records.jsonl(按 sessionId+seq 去重)。~/.dsh/settings.yaml 配置 stats-panel.dayBoundary: utc(也可写 +08:00 或分钟数,如 480)。切换日历只影响分桶展示,明细与总量不变;已折叠到 archive.json 的历史段无法回溯重切,趋势卡下方会显示相应说明。欢迎提交 PR:
node scripts/verify-balances.mjsApache-2.0