All plugins

DSH / BUNDLE / CLIENT-UI

api-monitor

v0.2.1jcleener / api-monitor689a13ba0e

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

api-monitor

常驻 API 用量监控:DeepSeek/GLM Coding Plan/OpenCode Go/火山 Coding+Agent Plan 余额与配额,会话树 token 与花费(侧边栏入口 + 独立浮动窗)。

README / EN

Package documentation

Registry summary

常驻 API 用量监控:DeepSeek/GLM Coding Plan/OpenCode Go/火山 Coding+Agent Plan 余额与配额,会话树 token 与花费(侧边栏入口 + 独立浮动窗)。

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- **声明依赖与实际 require 不一致**:`package.json` 的 `dsh.client.inject` 声明了 `@deepseek-ai/dsh-client-locale`、`@deepseek-ai/dsh-client-runtime`、 `@deepseek-ai/dsh-client-ui-primitives` 三项,但 `lib/client.js` 只 `require("react")`; 它也没有注册 locale 字典,面板文案(「key配置」「读取套餐」「显示在入口」等)是硬编码中文。 - **面板底部时间文案与实现不符**:浮动窗固定显示「每 60s 自动刷新」, 而客户端实际是 8000 ms 轮询、宿主定时器取决于 `pollIntervalSeconds`(下限 20 秒)。 - **`volcesTier` 是死配置**:可在面板下拉选择并持久化,但宿主从未把它用于请求或解析。 - **`showResetTime` 无人消费**:schema 与 `/config`、snapshot 都会带出,客户端不读。配额的重置时间 在宿主 `parseQuotaRows` 里读成了 `reset`,但未进入对外快照。 - **`qwen` 区块没有对应的宿主轮询**:`entryVisibility.qwen` 只控制侧边栏是否显示, Qwen 数据来自会话桶(token / 调用次数),额度行在客户端写死为「接口不可查」并给一个外部控制台链接。 因此 `state` 里只有 6 个供应商条目,而可见性键有 7 个(`command` 两者都有)。 - **Command Code 的档位是「反查」出来的**:`/alpha/billing/credits` 不回月度上限, 插件用 `(5h cap, 周 cap)` 对照官方档位表(`COMMAND_PLANS`)取月度额度; 官方若调整某档位的 cap 数字,反查会落空并回退到 `summary.totalCost` 兜底(该接口在部分账号恒回 0, 此时月度行显示 `—`,5 小时/1 周两行仍正常)。可用 `commandMonthlyCap` 手工钉死。 - **Command Code 额度单位是美元信用值**,不是 token;面板单独用 `$` 显示,不参与 DeepSeek 的峰谷计价。 - **`pollIntervalSeconds` 只在 apply 时生效**(`Math.max(20, ...)`),改小/改大都要重启插件; 客户端快照轮询 8 秒也是写死的。 - **硬编码内容**:官方定价页 URL `https://api-docs.deepseek.com/zh-cn/quick_start/pricing`、 内置价目表(注释标注按 2026-09-11 官方定价页校准,含峰谷两档)、 OpenCode 请求使用的伪造 Chrome User-Agent、火山签名固定 `open.volcengineapi.com` 与 `cn-beijing` / `ark`。 - **依赖 DSH 内部 CSS 类名**:客户端 CSS 里有一条 `.hHd-Xa_root:not(.hHd-Xa_collapsed) .hHd-Xa_footerActions{...}` —— 直接绑定侧边栏的哈希类名, 壳层类名一变,竖排布局就会失效(功能不崩,只影响排版)。 - **会话来源归因需要 `source.provider`**:没有路由信息的事件只进总量、不进来源桶, 所以「各来源相加 ≤ 总览总量」是预期行为。 - 宿主每轮轮询都用 `catch` 吞掉异常并写 `entry.error`(如「未配置」「HTTP 401」「接口错误」), 面板只显示这一句短文案,日志里没有逐次堆栈(价格抓取失败会 `console.warn`)。 - **Command Code 的凭据名有两个(0.2.1 修)**:本插件早期只认 `COMMAND_API_KEY`,而由 DSH 模型设置 写入 `.credentials.yaml` 的名字是 **`COMMANDCODE_API_KEY`**(即 profile 里 `providers.commandcode.apiKeyEnv`)。 后果:凡是在 DSH 里配好 command goat 的用户,面板恒显示「未配置」(2026-10-10 实测复现)。 现在按 `COMMANDCODE_API_KEY` → `COMMAND_API_KEY` 的顺序解析,两个名字都能用。 该值**本身就是可用凭据**(实测:93 字符、`u` 开头,直连 `/alpha/billing/credits` 返回 200, 解析出 `plan=GOAT / five=97.7% / weekly=94.1% / monthly=56.0%`),但形状不像 `sk-`, 别误判成"引用";读取时走 `credentials.resolve()` 而不是自己解析文件。 - **三份 smoke 测试曾长期全红(0.2.1 修)**:`smoke-command-credits` / `smoke-command-render` / `smoke-client-current-session` 的默认目标路径写的是 `../lib/*`,而插件早已是 `code/*` (提交 `20bc5b8` 同时做了 `lib/`→`code/` 改名并新增这三个测试,路径却仍指向 `lib/`,提交信息还声称 "测试内 `../lib/` 引用同步"——实际没有)。三份测试因此全部 `ERR_MODULE_NOT_FOUND`, 等于 52 项检查(26+15+11)长期无人执行。修好后全部通过。