dsh-cost-meter 1.7.23 → 1.7.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +7 -7
- package/README.md +7 -7
- package/lib/index.js +52 -25
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
Per-conversation cost · daily totals · OpenCode Go subscription quota display · budget with usage percentage · official account balance · custom provider balance · balance progress bar · history · peak/off-peak pricing hours display (peak hours UTC 01:00–04:00, 06:00–10:00; from Aug 23, 2026 weekends are billed at off-peak prices all day, shown as “Weekend — all off-peak”) · pre-switch popup & system-notification alerts for peak/off-peak changes (position / lead time / alert type configurable) · one-click price sync from the official docs · Codex-style token usage heat grid · multi-vendor model pricing (built-in 90+ model price catalog with auto-matching) · mainstream Coding Plan quota queries & display (Anthropic / Z.ai / MiniMax / Kimi / OpenRouter / SiliconFlow / CommandCode / SCNet) plan/API dual-track billing (subscription quota vs pay-as-you-go money separated, per-1% & full-window token/equivalent-cost estimates with daily/weekly/monthly curves) · · quota strip above the input box (budget / Go / coding-plan usage in one row, toggleable)
|
|
8
8
|
|
|
9
|
-
[](https://github.com/Han-1413141/dsh-cost-meter)
|
|
10
10
|
|
|
11
|
-
**v1.7.
|
|
11
|
+
**v1.7.24** discovers OpenCode Go credentials from your official Go route, regardless of its name. See [credential discovery](docs/opencode-go-credentials.md#english). See the [recovery guide](docs/session-history-recovery.md#english) for sessions affected by the earlier native-search log issue.
|
|
12
12
|
|
|
13
13
|
[](https://www.npmjs.com/package/dsh-cost-meter)
|
|
14
14
|
[](LICENSE)
|
|
@@ -31,7 +31,7 @@ English | [中文](README.md)
|
|
|
31
31
|
| Per-conversation cost | Below the composer / session title bar | Live accumulated cost + input/cache/output tokens; position configurable |
|
|
32
32
|
| Official balance | Sidebar top / Settings page (configurable) | Total / granted / topped-up balance, auto-refresh + manual refresh; optional three-segment progress bar (blue/orange/gray), whose today segment only counts official-channel spend (coding plans / custom providers excluded) |
|
|
33
33
|
| Custom provider balance | Sidebar / Settings page (configurable) | Configurable HTTP balance lookup (e.g. LiteLLM); bilingual labels, currency, extract rules (dot path / number / add / subtract / divide — use divide for NewApi-style quota endpoints, see [example](#custom-provider-balance-example-newapi-template)); collapsible panel alongside Coding Plan quotas |
|
|
34
|
-
| OpenCode Go quota | Sidebar / Settings / bottom-right dock (configurable) | Rolling-5h / weekly / monthly usage percent and reset times, each window toggleable independently, budget used % can show alongside; key auto-discovered (
|
|
34
|
+
| OpenCode Go quota | Sidebar / Settings / bottom-right dock (configurable) | Rolling-5h / weekly / monthly usage percent and reset times, each window toggleable independently, budget used % can show alongside; key auto-discovered (dedicated ref / official Go route apiKeyEnv / env / opencode login) or entered manually |
|
|
35
35
|
| Coding plan quotas | Sidebar / Settings page (per vendor) | Multi-vendor coding-plan quota queries (Anthropic Claude Pro/Max, Z.ai / Zhipu GLM Coding Plan, MiniMax Token Plan, Kimi Code weekly + 5-hour quotas with PAYG balance fallback when no subscription key, OpenRouter credits, SiliconFlow balance, CommandCode 5h/weekly windows + monthly credits balance); per-vendor enable switch, key, display position and refresh interval (sidebar card in the same box style as the Go quota; the collapsed rail shows percentages), credentials only sent to official endpoints; neutral hints when no credentials/subscription; SCNet Token Plan supports [external console snapshots](docs/scnet-official-snapshot.md#english); without a valid snapshot, monthly usage is estimated from the local ledger via the official credits deduction table (no credentials needed) |
|
|
36
36
|
| Quota strip | Above the input box (toggle in Display settings) | One compact chip row for budget used % / the Go main window / each enabled coding-plan usage window (short label + mini progress bar, ≥80% warn, ≥100% over, hover for reset times); click any chip to refresh its data source (budget → state, Go → Go quota, vendor → all its windows); multiple windows of one vendor merge into a single segmented chip; a first-run guide card lets you decide whether to enable it; hides itself when there is no quota data |
|
|
37
37
|
| Click to refresh | Sidebar balance/quota boxes | Click the official balance / custom balance / coding-plan box (collapsed rail included) to fetch the latest data immediately; the box pulses while refreshing, failures keep the previous value and surface the reason in the hover tooltip; keyboard Enter/Space also triggers; a one-time guide card appears after the update |
|
|
@@ -261,22 +261,22 @@ Real captures from an actual DSH sidebar of the period strip and collapsed verti
|
|
|
261
261
|
dsh plugin --profile web add dsh-cost-meter
|
|
262
262
|
```
|
|
263
263
|
|
|
264
|
-
**PowerShell one-click script** (copy the whole line, paste, press Enter; pnpm is provisioned automatically, git is auto-detected — no clone needed; the install chain is **pinned to the release tag `v1.7.
|
|
264
|
+
**PowerShell one-click script** (copy the whole line, paste, press Enter; pnpm is provisioned automatically, git is auto-detected — no clone needed; the install chain is **pinned to the release tag `v1.7.24`** — review the script before running):
|
|
265
265
|
|
|
266
266
|
```powershell
|
|
267
|
-
irm https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/v1.7.
|
|
267
|
+
irm https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/v1.7.24/install.ps1 | iex
|
|
268
268
|
```
|
|
269
269
|
|
|
270
270
|
**Or a plain command line** (the machine must already have pnpm and git; also pinned to the tag):
|
|
271
271
|
|
|
272
272
|
```sh
|
|
273
|
-
dsh plugin --profile web add github:Han-1413141/dsh-cost-meter#v1.7.
|
|
273
|
+
dsh plugin --profile web add github:Han-1413141/dsh-cost-meter#v1.7.24
|
|
274
274
|
```
|
|
275
275
|
|
|
276
276
|
Without git, use the GitHub tag archive:
|
|
277
277
|
|
|
278
278
|
```sh
|
|
279
|
-
dsh plugin --profile web add https://github.com/Han-1413141/dsh-cost-meter/archive/refs/tags/v1.7.
|
|
279
|
+
dsh plugin --profile web add https://github.com/Han-1413141/dsh-cost-meter/archive/refs/tags/v1.7.24.tar.gz
|
|
280
280
|
```
|
|
281
281
|
|
|
282
282
|
After installing, **restart** `dsh web` (plugin rows, the Typert manifest and the client bundle are all scanned at startup):
|
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
本会话费用 · 当日费用 · OpenCode Go 订阅额度显示 · 预算与已用百分比 · 官方账户余额 · 自定义 Provider 余额查询(可配任意 HTTP 端点) · 余额三段进度条 · 历史记录 · 峰谷计价时段显示(UTC 01:00–04:00、06:00–10:00 为峰时段;2026-08-23 起周末全天按谷价,显示「周末时段——全谷价」) · 峰/谷切换前弹窗与系统通知提醒(位置/提前量/提醒类型可配) · 官方价格一键同步 · 类 Codex Token 用量热图 · 多厂商多模型价格计费(内置 90+ 模型价格目录与自动匹配) · 主流 Coding Plan 额度查询与显示(Anthropic / Z.ai / MiniMax / Kimi / OpenRouter / SiliconFlow / CommandCode / SCNet / 火山方舟 九家,含 Volcano Ark AK/SK 签名) · Plan/API 双轨计费(订阅额度与按量金额分离统计,每 1% 额度与满窗的 token/等值金额估算及日/周/月曲线) · 输入框上方额度横条(预算/Go/Coding Plan 用量一条横排显示,可开关)
|
|
8
8
|
|
|
9
|
-
[](https://github.com/Han-1413141/dsh-cost-meter)
|
|
10
10
|
|
|
11
|
-
**v1.7.
|
|
11
|
+
**v1.7.24**:OpenCode Go 额度自动读取官方 Go 路由配置的凭据,路由名无需固定。见 [凭据发现说明](docs/opencode-go-credentials.md)。此前受原生搜索日志问题影响的会话,仍可按 [恢复说明](docs/session-history-recovery.md) 备份修复。
|
|
12
12
|
|
|
13
13
|
[](https://www.npmjs.com/package/dsh-cost-meter)
|
|
14
14
|
[](LICENSE)
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
| 本会话费用 | 输入区下方 / 会话标题栏 | 实时累计费用 + 输入/缓存/输出 token,位置可配 |
|
|
32
32
|
| 官方余额 | 侧边栏顶部 / 设置页(可配) | 总余额 / 赠送 / 充值,自动刷新 + 手动刷新;可选三段进度条(蓝/橙/灰),当日段只统计官方渠道费用(不含 Coding Plan / 自定义 Provider) |
|
|
33
33
|
| 自定义 Provider 余额 | 侧边栏 / 设置页(可配) | 可配置 HTTP 查询任意 Provider 余额(LiteLLM 等);中/英名称、币种、extract 规则(点路径 / 数字常量 / add / subtract / divide,divide 适配 NewApi 等 quota 端点,见下方[示例](#自定义-provider-余额配置示例newapi-模板));与 Coding Plan 同区可折叠配置 |
|
|
34
|
-
| OpenCode Go 额度 | 侧边栏 / 设置页 / 右下角(dock,可配) | 滚动 5 小时 / 本周 / 本月用量百分比与重置时间,三档可分别开关,可同时显示预算已用%;Key 自动发现(
|
|
34
|
+
| OpenCode Go 额度 | 侧边栏 / 设置页 / 右下角(dock,可配) | 滚动 5 小时 / 本周 / 本月用量百分比与重置时间,三档可分别开关,可同时显示预算已用%;Key 自动发现(专用引用 / 官方 Go 路由 apiKeyEnv / 环境变量 / opencode 登录态)或手动填写 |
|
|
35
35
|
| Coding Plan 额度 | 侧边栏 / 设置页(每家可配) | 多厂商 coding plan 订阅额度查询(Anthropic Claude Pro/Max、Z.ai/智谱 GLM、MiniMax Token Plan、Kimi Code 本周/5 小时配额(无订阅 Key 时回落 PAYG 余额)、OpenRouter credits、SiliconFlow 余额、CommandCode 5h/周窗口与月度 Credits 余额、火山方舟 Volcano Ark 5h/周/月三档(需 AK/SK 管控面 HMAC 签名,需 ArkReadOnlyAccess + BillingCenterReadOnlyAccess)),各家独立启用开关、凭据、显示位置与刷新间隔(侧边栏卡片与 Go 额度同款,收起窄栏显示百分比),凭据只发往官方端点;无凭据/无订阅为中性提示;SCNet 超算互联网 Token Plan 支持[外部控制台额度快照](docs/scnet-official-snapshot.md),无有效快照时按官方 Credits 抵扣表由本地账本估算月度用量(无需凭据) |
|
|
36
36
|
| 额度横条 | 输入框上方(显示设置可开关) | 一条横排 chips 实时显示预算已用% / Go 主窗口 / 各已启用 Coding Plan 用量窗口(短标签+迷你进度条,≥80% 预警、≥100% 超支,悬停见重置时刻);点击任意 chip 即刷新对应数据源(budget→状态、Go→Go 额度、厂商→该家全部窗口),同一厂商多窗口融合为一条 chip 分段显示;首次更新弹引导卡由用户自主决定开关;无可用数据自动隐藏 |
|
|
37
37
|
| 点击立即刷新 | 侧边栏余额/额度图框 | 官方余额 / 自定义余额 / Coding Plan 图框(含窄栏收起态)点击即触发一次查询,刷新中呼吸闪烁,失败保持原值并在悬停提示说明;键盘 Enter/Space 可触发;更新后首次进入有引导提示 |
|
|
@@ -263,22 +263,22 @@
|
|
|
263
263
|
dsh plugin --profile web add dsh-cost-meter
|
|
264
264
|
```
|
|
265
265
|
|
|
266
|
-
**PowerShell 一键脚本**(复制整行粘贴回车;自动补齐 pnpm、自动探测 git,无需克隆仓库;安装链**固定到发布 tag `v1.7.
|
|
266
|
+
**PowerShell 一键脚本**(复制整行粘贴回车;自动补齐 pnpm、自动探测 git,无需克隆仓库;安装链**固定到发布 tag `v1.7.24`**,建议先下载审阅再运行):
|
|
267
267
|
|
|
268
268
|
```powershell
|
|
269
|
-
irm https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/v1.7.
|
|
269
|
+
irm https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/v1.7.24/install.ps1 | iex
|
|
270
270
|
```
|
|
271
271
|
|
|
272
272
|
**或直接命令行**(机器上需已有 pnpm 与 git;同样固定到 tag):
|
|
273
273
|
|
|
274
274
|
```sh
|
|
275
|
-
dsh plugin --profile web add github:Han-1413141/dsh-cost-meter#v1.7.
|
|
275
|
+
dsh plugin --profile web add github:Han-1413141/dsh-cost-meter#v1.7.24
|
|
276
276
|
```
|
|
277
277
|
|
|
278
278
|
没有 git 时可用 GitHub tag 打包直链:
|
|
279
279
|
|
|
280
280
|
```sh
|
|
281
|
-
dsh plugin --profile web add https://github.com/Han-1413141/dsh-cost-meter/archive/refs/tags/v1.7.
|
|
281
|
+
dsh plugin --profile web add https://github.com/Han-1413141/dsh-cost-meter/archive/refs/tags/v1.7.24.tar.gz
|
|
282
282
|
```
|
|
283
283
|
|
|
284
284
|
安装后**重启** `dsh web`(插件行、Typert 清单与客户端 bundle 均在启动时扫描):
|
package/lib/index.js
CHANGED
|
@@ -52,7 +52,7 @@ const SERVER_MESSAGES = {
|
|
|
52
52
|
balanceRefreshed: '余额已刷新',
|
|
53
53
|
balanceQueryFailed: '余额查询失败:{message}',
|
|
54
54
|
reconcileWarn: '对账提示:本地账本今日官方渠道费用 {cost} 与官方余额当日变动 {delta} 偏差较大,请核对价格表或近期账单',
|
|
55
|
-
goQuotaKeyMissing: '
|
|
55
|
+
goQuotaKeyMissing: '未找到可用的 OpenCode Go API Key。请检查模型设置中 https://opencode.ai/zen/go/v1 路由的凭据,或在费用显示设置中填写 Go Key、导出 OPENCODE_GO_API_KEY、运行 opencode login;没有订阅可关闭「启用」。',
|
|
56
56
|
goQuotaHttp: 'OpenCode Go 额度接口 HTTP {code}',
|
|
57
57
|
goQuotaNoSub: '没有检测到生效的 OpenCode Go 订阅(接口返回 {code}),或 API Key 无效。没有订阅可关闭上方「启用」开关。',
|
|
58
58
|
goQuotaNoUsage: 'OpenCode Go 额度响应缺少 usage 字段',
|
|
@@ -120,7 +120,7 @@ const SERVER_MESSAGES = {
|
|
|
120
120
|
balanceRefreshed: 'Balance refreshed',
|
|
121
121
|
balanceQueryFailed: 'Balance query failed: {message}',
|
|
122
122
|
reconcileWarn: 'Reconciliation notice: today\'s local official-channel cost ({cost}) deviates significantly from the official balance change ({delta}); please check the price table or recent bills',
|
|
123
|
-
goQuotaKeyMissing: 'OpenCode Go API key
|
|
123
|
+
goQuotaKeyMissing: 'No usable OpenCode Go API key found. Check the credential for your https://opencode.ai/zen/go/v1 route in Models, set a Go key in Cost display settings, export OPENCODE_GO_API_KEY, or run opencode login; otherwise turn off Enable.',
|
|
124
124
|
goQuotaHttp: 'OpenCode Go quota API returned HTTP {code}',
|
|
125
125
|
goQuotaNoSub: 'No active OpenCode Go subscription detected (API returned {code}), or the API key is invalid. Turn off the Enable switch above if you have no subscription.',
|
|
126
126
|
goQuotaNoUsage: 'OpenCode Go quota response is missing the usage field',
|
|
@@ -684,9 +684,35 @@ function findGoKeyInAuthJson() {
|
|
|
684
684
|
}
|
|
685
685
|
|
|
686
686
|
/**
|
|
687
|
-
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
687
|
+
* 查询与配置状态共用候选顺序。只从官方 Go 端点读取 apiKeyEnv,避免
|
|
688
|
+
* 将其他提供商、代理或 OpenCode Zen 路由的凭据用于 Go 额度查询。
|
|
689
|
+
* 每次读取当前 settings 快照,路由改名或凭据轮换后无需重启插件。
|
|
690
|
+
*/
|
|
691
|
+
function goKeyRefs(ctx) {
|
|
692
|
+
const refs = new Set(['OPENCODE_GO_API_KEY'])
|
|
693
|
+
try {
|
|
694
|
+
const providers = ctx?.get?.('settings')?.get?.('llm-pi-ai')?.providers
|
|
695
|
+
if (providers && typeof providers === 'object' && !Array.isArray(providers)) {
|
|
696
|
+
for (const profile of Object.values(providers)) {
|
|
697
|
+
if (typeof profile?.baseURL !== 'string' || typeof profile?.apiKeyEnv !== 'string') continue
|
|
698
|
+
try {
|
|
699
|
+
const url = new URL(profile.baseURL)
|
|
700
|
+
if (url.origin !== 'https://opencode.ai' || !/^\/zen\/go\/v1\/?$/.test(url.pathname)
|
|
701
|
+
|| url.username || url.password || url.search || url.hash) continue
|
|
702
|
+
const ref = profile.apiKeyEnv.trim()
|
|
703
|
+
if (ref) refs.add(credentialRef(ref))
|
|
704
|
+
} catch { /* 无效端点不参与发现。 */ }
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
} catch { /* 旧宿主无此设置段时仍使用既有来源。 */ }
|
|
708
|
+
refs.add('OPENCODE_API_KEY')
|
|
709
|
+
return [...refs]
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
/**
|
|
713
|
+
* 解析 OpenCode Go API Key:专用引用 → 官方 Go 路由引用 → 兼容旧名
|
|
714
|
+
* OPENCODE_API_KEY → opencode auth.json → config 遗留明文。
|
|
715
|
+
* 每个引用先查 DSH 凭据库,再查同名环境变量。
|
|
690
716
|
*
|
|
691
717
|
* 「显式配置」由首选降为**末位兜底**:v1.6.8 起密钥统一由 DSH 凭据库托管,config 里的
|
|
692
718
|
* goQuota.apiKey 只是迁移前遗留的明文(启动期 runSecretMigration 导入凭据库后即清空,
|
|
@@ -697,15 +723,15 @@ function findGoKeyInAuthJson() {
|
|
|
697
723
|
*/
|
|
698
724
|
async function resolveGoKey(ctx, config) {
|
|
699
725
|
const credentials = ctx.get('credentials')
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
726
|
+
for (const name of goKeyRefs(ctx)) {
|
|
727
|
+
if (credentials !== undefined) {
|
|
728
|
+
try {
|
|
729
|
+
const hit = await credentials.resolve(credentialRef(name))
|
|
730
|
+
if (typeof hit?.value === 'string' && hit.value.trim().length > 0) return hit.value.trim()
|
|
731
|
+
} catch {
|
|
732
|
+
// 单个引用不可用时继续尝试环境变量及其他候选。
|
|
733
|
+
}
|
|
706
734
|
}
|
|
707
|
-
}
|
|
708
|
-
for (const name of ['OPENCODE_GO_API_KEY', 'OPENCODE_API_KEY']) {
|
|
709
735
|
const value = String(process.env[name] ?? '').trim()
|
|
710
736
|
if (value.length > 0) return value
|
|
711
737
|
}
|
|
@@ -1000,7 +1026,7 @@ async function buildState(ledger, balance = emptyBalance(), goQuota = emptyGoQuo
|
|
|
1000
1026
|
const dayKey = localDayKey(now)
|
|
1001
1027
|
const monthKey = dayKey.slice(0, 7)
|
|
1002
1028
|
const secretMigration = secretMigrationNotice(ledger)
|
|
1003
|
-
const goKeyInfo = await describeGoKey(ctx
|
|
1029
|
+
const goKeyInfo = await describeGoKey(ctx, ledger.config)
|
|
1004
1030
|
// 自定义余额 {{VAR}} 占位符的凭据配置状态(v1.7.6,issue #86):与 keyConfigured 同
|
|
1005
1031
|
// 语义的 describe 摘要,前端据此渲染 write-only 输入框;无占位符/凭据服务缺席时空表。
|
|
1006
1032
|
const customVarStatus = {}
|
|
@@ -1229,23 +1255,24 @@ async function describePlanKey(credentials, id, config) {
|
|
|
1229
1255
|
|
|
1230
1256
|
/**
|
|
1231
1257
|
* 查询 OpenCode Go 密钥的配置状态(永不返回值本身),语义同 describePlanKey。
|
|
1232
|
-
* @param
|
|
1258
|
+
* @param ctx - 宿主上下文(可能 null)。
|
|
1233
1259
|
* @param config - 插件配置(用于判定遗留明文)。
|
|
1234
1260
|
* @returns {{ keyConfigured: boolean, keySource: string }}
|
|
1235
1261
|
*/
|
|
1236
|
-
async function describeGoKey(
|
|
1262
|
+
async function describeGoKey(ctx, config) {
|
|
1263
|
+
const credentials = ctx?.get?.('credentials')
|
|
1237
1264
|
const fallback = { keyConfigured: false, keySource: '' }
|
|
1238
1265
|
const legacy = readSecret(config, 'goQuota').length > 0
|
|
1239
|
-
const
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1266
|
+
for (const name of goKeyRefs(ctx)) {
|
|
1267
|
+
if (credentials !== undefined) {
|
|
1268
|
+
try {
|
|
1269
|
+
const info = await credentials.describe(credentialRef(name))
|
|
1270
|
+
if (info?.configured === true) {
|
|
1271
|
+
return { keyConfigured: true, keySource: typeof info.source === 'string' ? info.source : '' }
|
|
1272
|
+
}
|
|
1273
|
+
} catch { /* 单个引用不可用时继续尝试其他来源。 */ }
|
|
1246
1274
|
}
|
|
1247
|
-
|
|
1248
|
-
// describe 不可用:退回遗留明文判定。
|
|
1275
|
+
if (String(process.env[name] ?? '').trim()) return { keyConfigured: true, keySource: 'env' }
|
|
1249
1276
|
}
|
|
1250
1277
|
// 自动发现路径(opencode auth.json)也是「已配置」,但不暴露来源文件细节。
|
|
1251
1278
|
if (findGoKeyInAuthJson() !== null) return { keyConfigured: true, keySource: 'auto' }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-cost-meter",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.24",
|
|
4
4
|
"description": "DeepSeek Harness 会话费用统计插件:本会话成本、当日费用、历史记录与官方价格同步,支持多厂商多模型价格计费(内置 90+ 模型价格目录与自动匹配)、主流 Coding Plan 订阅额度查询与显示(9 家,含 SCNet Token Plan 本地 Credits 计量与火山方舟 Volcano Ark Coding Plan AK/SK 签名查询)、自定义 Provider 余额查询(可配任意 HTTP 端点)与余额进度条、峰谷计价时段显示与切换前弹窗/系统通知提醒(位置/提前量/类型可配),界面中英双语。Session cost tracking plugin for DeepSeek Harness: per-conversation cost, daily totals, history and official price sync, with multi-vendor model pricing (built-in 90+ model catalog with auto-matching), Coding Plan quota queries & display for 9 vendors (incl. local credits metering for the SCNet Token Plan and Volcano Ark Coding Plan via AK/SK signature), plan/API dual-track billing with per-1% & full-window Token Plan usage estimates, custom provider balance lookup (configurable HTTP endpoint) and balance progress bar, plus peak/off-peak pricing display with pre-switch popup & system-notification alerts (position / lead time / type configurable), in a bilingual (Chinese/English) UI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|