@chenlongapps/opencode-token-usage 0.4.0 → 0.4.1
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.md +6 -4
- package/README.zh-CN.md +6 -4
- package/ROADMAP.md +4 -3
- package/dist/tui.js +515 -348
- package/dist/usage.js +1 -1
- package/docs/pricing.md +3 -3
- package/docs/verification.md +24 -9
- package/package.json +1 -1
package/dist/usage.js
CHANGED
|
@@ -200,7 +200,7 @@ export function usageRows(summary, context, performance) {
|
|
|
200
200
|
rows.push(["Cache Rate", summary ? `${(summary.cacheRate * 100).toFixed(1)}%` : "—"], ["Total", number(summary?.total)]);
|
|
201
201
|
const cost = summary && formatEstimatedCost(summary.cost, summary.costStatus);
|
|
202
202
|
if (cost !== undefined)
|
|
203
|
-
rows.push(["Cost", cost]);
|
|
203
|
+
rows.push(["Est. Cost", cost]);
|
|
204
204
|
if (performance?.tps !== undefined && Number.isFinite(performance.tps)) {
|
|
205
205
|
rows.push(["TPS", `${performance.tpsEstimated ? "~" : ""}${Math.max(0, performance.tps).toFixed(1)} tok/s`]);
|
|
206
206
|
}
|
package/docs/pricing.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
- OpenCode 当前解析出的完整适用非零价格优先。若完整适用价格为零,则尝试使用内置价格;只有快照能完整覆盖该消息实际使用的 token 类别时才覆盖零价,否则保留 OpenCode 的零价。OpenCode 价格不完整时,整条消息回退到内置价格,不混用两套费率。
|
|
9
9
|
- 网关模型只通过精确厂商 ID、精确别名及已知包装格式匹配,例如 `openai/gpt-5.6-luna`、`us.anthropic.claude-opus-5` 和 `claude-opus-5@default`。匹配这些现有形式后,也会尝试仅移除模型 ID 的末尾 `-free` 或 `:free` 再精确匹配基础 ID,例如 `mimo-v2.6-flash-free`、`meta/muse-spark-1.3:free` 和 `muse-spark-1.3-contributor-free`;`-pro`、`-fast`、`-free-preview` 等其他后缀不会剥离。单独列出的 Fast 型号仅按完整 ID 和厂商支持的 provider 精确匹配,不会回退到标准费率。不按相似名称猜测。
|
|
10
10
|
- 目录首版只新增 2026-03-22 至 2026-09-22 发布、具有明确 token 费率的模型。后续版本只限制新增窗口,已经收录的条目不会因超过半年而自动删除。
|
|
11
|
-
- 采用同步 API 的公开价;Meta Contributor 条件价按单独标注的来源记录。仅收录下表明确列出的 Fast 型号,不含 Batch、Flex、其他 Fast/Priority、区域溢价、网关加价、企业折扣、工具费和税费,因此 Cost 仍是估算,不代表账单。
|
|
11
|
+
- 采用同步 API 的公开价;Meta Contributor 条件价按单独标注的来源记录。仅收录下表明确列出的 Fast 型号,不含 Batch、Flex、其他 Fast/Priority、区域溢价、网关加价、企业折扣、工具费和税费,因此 Est. Cost 仍是估算,不代表账单。
|
|
12
12
|
- 任一有用量消息仍无法定价时,已知小计标记 `partial`;全部无法定价时显示 `—`。明确零价才显示 `$0.00`。
|
|
13
13
|
- 促销价按核验日官网显示的费率收录(如 `gpt-5.6-sol`、MiniMax-M3 的"长期 5 折"标价),不用划线原价。
|
|
14
14
|
|
|
@@ -218,7 +218,7 @@ Contributor tier 以允许 Meta 使用提示词和回答进行训练为条件,
|
|
|
218
218
|
| `muse-spark-1.2-contributor` | 2026-08-05 | 0.10 | 0.20 | 0.002 | — |
|
|
219
219
|
| `muse-spark-1.3-contributor` | 2026-09-02 | 0.10 | 0.20 | 0.002 | — |
|
|
220
220
|
|
|
221
|
-
OpenCode Zen 的 `muse-spark-1.2-contributor-free` 和 `muse-spark-1.3-contributor-free` 会精确匹配各自 Contributor 条目;Cost 因此按 Meta Contributor 费率估算。
|
|
221
|
+
OpenCode Zen 的 `muse-spark-1.2-contributor-free` 和 `muse-spark-1.3-contributor-free` 会精确匹配各自 Contributor 条目;Est. Cost 因此按 Meta Contributor 费率估算。
|
|
222
222
|
|
|
223
223
|
## Inception
|
|
224
224
|
|
|
@@ -269,7 +269,7 @@ Solar Pro 4 的 90% off 活动已于 2026-09-10 结束,快照采用模型页
|
|
|
269
269
|
| `fugu-ultra-v2.0`(别名 `fugu-ultra-v2`) | 2026-09-11 | 5 | 30 | 0.50 | >272K:10 / 45 / 1 |
|
|
270
270
|
| `fugu-max-v1.0`(别名 `fugu-max`) | 2026-09-11 | 2 | 6 | 0.25 | — |
|
|
271
271
|
|
|
272
|
-
Fugu Ultra 的编排 token 已包含在 API 返回的 input/output 用量中,按同一 token 价估算;web search/web fetch 等工具调用费不是五类 token,故不计入 Cost。官方没有公布 cache write token 价。
|
|
272
|
+
Fugu Ultra 的编排 token 已包含在 API 返回的 input/output 用量中,按同一 token 价估算;web search/web fetch 等工具调用费不是五类 token,故不计入 Est. Cost。官方没有公布 cache write token 价。
|
|
273
273
|
|
|
274
274
|
## Aion Labs
|
|
275
275
|
|
package/docs/verification.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# 验证记录
|
|
2
2
|
|
|
3
|
+
## v0.4.0(子代理用量浮窗)
|
|
4
|
+
|
|
5
|
+
验证日期:2026-09-24。Node.js v22.23.2;SDK 2.0.11,隔离的真实 OpenCode 2.0.11 宿主。
|
|
6
|
+
|
|
7
|
+
| 检查 | 结果 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `npm run typecheck` | 通过 |
|
|
10
|
+
| `npm test` | 62 项通过 |
|
|
11
|
+
| `npm run build` | 通过 |
|
|
12
|
+
| `npm run test:smoke` | 通过,打包产物 + 真实 OpenCode 2.0.11 + 本地模拟提供商 |
|
|
13
|
+
|
|
14
|
+
子代理视图原本通过 `session.composer.top` 常驻展示完整面板,挤占对话区高度;现在仅保留 `Token Usage · Context … · Total … · Cost … · TPS …` 一行实时摘要,不显示快捷键。点击该行可打开宿主原生居中弹窗;摘要与弹窗共享同一控制器及完整面板的精确数字和实时 TPS/TTFT。Esc 关闭浮窗后摘要继续刷新,不影响子代理运行。根会话侧边栏与 `/usage` 的五区详细弹窗保持原有入口。
|
|
15
|
+
|
|
16
|
+
真实终端集成在完成父/子代理调用后,确认子代理摘要显示 `Context 1,270 / 128,000 (1.0%)`、`Total 5,080`、`Cost <$0.01` 与实时 TPS,且没有快捷键或额外完整用量行。鼠标点击摘要打开的弹窗显示全树 `Steps 4`、`Input 400`、`Cache Read 4,000`;Esc 关闭后摘要保留,关闭浮窗未向模型发送消息。原有根会话 `/usage`、窄终端详细弹窗、活动模型切换与费用回退集成检查继续通过。
|
|
17
|
+
|
|
3
18
|
## v0.4.0(`/usage` 原生弹窗)
|
|
4
19
|
|
|
5
20
|
验证日期:2026-09-23。Node.js v22.23.2;`@opencode/plugin`、`@opencode/client` 等 SDK 精确锁定 2.0.11。弹窗布局参考本地 OpenCode 2.0.15 源码中的 `dialog-status.tsx`、`dialog-debug.tsx` 和 `dialog-shell-output.tsx`,通过插件公开的斜杠命令、弹窗、`session.hook("context")` 和 RPC 接口实现,并在真实 OpenCode 2.0.11 宿主中验证。
|
|
@@ -11,7 +26,7 @@
|
|
|
11
26
|
| `npm run build` | 通过,输出 ESM 与类型声明 |
|
|
12
27
|
| `npm run test:smoke` | 通过,使用 `.tgz` 安装产物、真实 OpenCode 2.0.11 与本地模拟提供商 |
|
|
13
28
|
|
|
14
|
-
`/usage` 仅在会话页面注册为 CLI 斜杠/命令面板命令,打开原生弹窗而不向模型发送新消息。弹窗按当前查看会话展示最后一次已完成压缩后的上下文用量;五类 token 的占比以该条 assistant 消息的已用 context 为分母,窗口占用率以活动模型上下文上限为分母。会话树明细沿用侧边栏的完整分页、子代理汇总和分叉继承去重口径;按模型汇总的费用与全树 Cost 共用逐消息计价规则,分别处理免费、缺价、`partial` 及内置官方价格回退。
|
|
29
|
+
`/usage` 仅在会话页面注册为 CLI 斜杠/命令面板命令,打开原生弹窗而不向模型发送新消息。弹窗按当前查看会话展示最后一次已完成压缩后的上下文用量;五类 token 的占比以该条 assistant 消息的已用 context 为分母,窗口占用率以活动模型上下文上限为分母。会话树明细沿用侧边栏的完整分页、子代理汇总和分叉继承去重口径;按模型汇总的费用与全树 Est. Cost 共用逐消息计价规则,分别处理免费、缺价、`partial` 及内置官方价格回退。
|
|
15
30
|
|
|
16
31
|
自动化测试新增:五类 context 分类百分比、压缩边界与未知上限;混合模型和 compaction、价格回退、免费与缺价时逐模型费用对全树费用的核对;弹窗详细快照在子会话、刷新失败恢复和切换会话时的生命周期。打包集成测试确认空会话不会伪造上下文占用,真实 `/usage` 可打开与关闭、显示 1,270 token 当前上下文分类和模型费用;100 × 28 终端内滚动可到达模型费用;真实子代理合并后显示全树 5,080 token;切换活动模型后弹窗上限变为 32,000,历史消息费用仍列在原模型下。2.0.11 子代理视图最初处于宿主的子代理覆盖层,不提供斜杠输入;其全树面板验证继续由 `session.composer.top` 覆盖。
|
|
17
32
|
|
|
@@ -28,7 +43,7 @@
|
|
|
28
43
|
| `npm run build` | 通过 |
|
|
29
44
|
| `npm run test:smoke` | 通过,真实 OpenCode 2.0.11 + 本地模拟提供商 |
|
|
30
45
|
|
|
31
|
-
信息架构由 `Context / Context Sources / Session Tree / Cost by Model` 改为 **Context Window / Last Request / Context Breakdown / Session / By Model**:Context Window 只呈现上下文占用(分母为活动模型上限)并带条形图;原 Context 内的五类 token 迁入 Last Request 并补充该次请求的缓存率;`Context Sources · estimated` 改名 Context Breakdown;`Session Tree` 改名 Session,因为面板本来就是全树汇总而非树结构;`Cost by Model` 改名 By Model。标题下方新增一行显示会话名与活动模型(多模型时显示模型数量),正文不再重复模型名,弹窗改用宿主 `centered` 选项垂直居中。
|
|
46
|
+
信息架构由 `Context / Context Sources / Session Tree / Est. Cost by Model` 改为 **Context Window / Last Request / Context Breakdown / Session / By Model**:Context Window 只呈现上下文占用(分母为活动模型上限)并带条形图;原 Context 内的五类 token 迁入 Last Request 并补充该次请求的缓存率;`Context Sources · estimated` 改名 Context Breakdown;`Session Tree` 改名 Session,因为面板本来就是全树汇总而非树结构;`Est. Cost by Model` 改名 By Model。标题下方新增一行显示会话名与活动模型(多模型时显示模型数量),正文不再重复模型名,弹窗改用宿主 `centered` 选项垂直居中。
|
|
32
47
|
|
|
33
48
|
默认紧凑模式使用 K/M 缩写(< 1,000 精确、< 1,000,000 一位小数 K、≥ 1,000,000 两位小数 M,四舍五入不会出现 `1000.0K`),隐藏零值行,并把 Context Breakdown 的两类工具合并为 `Tools` 行按占比降序;按 `d` 切换详细模式,恢复精确数字、零值行、`System Tools` / `MCP Tools` 拆分以及 Session 逐类明细(含 Calls)。Session 单行汇总为 `steps · calls · tokens · cached% · cost`,其中 calls 与 By Model 各行同源,可与逐模型行核对。条形图宽度、Last Request 双列与内容宽度随宿主 `large` 档(88 列)收敛,窄终端自动改为单列并收窄条长。
|
|
34
49
|
|
|
@@ -81,11 +96,11 @@ SDK 从 2.0.9 升级到 2.0.11 后,四个顶层 OpenCode 包及锁文件中的
|
|
|
81
96
|
|
|
82
97
|
新增 Steps 计数覆盖:`summarize` 对带与不带 `tokens` 的 assistant 消息各计一个 step、compaction 与 user 消息不计、无 summary 时显示 `—`;`uniqueMessages` 链路上分叉继承副本不重复计数(快照 2 个 step、独立分叉树 1 个 step)、compaction 不产生 step、孙会话视图与根视图同为 6 个 step;行序断言锁定 Context → Steps → Input,无 Context 时 Steps 位于面板第一行。基准行数由 6 行调整为 7 行。
|
|
83
98
|
|
|
84
|
-
v0.3.0 成本测试覆盖:assistant 与 compaction 按消息实际 `model` 和五类 token 分别计算,混合模型树各自采用对应价格,消息自带 `cost` 不参与主 Cost。当前 OpenCode 模型目录中的完整适用价格优先;适用档位或实际使用类别缺价时,整条消息回退到内置官方快照,不拼接两套费率。官方目录测试锁定 72 个 2026-03-22 至 2026-09-22 发布的模型、来源 URL、唯一 ID、OpenAI/xAI/通义千问/MiniMax/Sakana 长上下文与上下文档位边界,以及 OpenRouter、Bedrock、Vertex 等包装格式和明确别名;相似名称不得猜价。目录按 OpenCode 当前模型目录(`temp/models.json`,210 个模型)补齐主流厂商:OpenAI、Anthropic、Google、xAI、Mistral、Cohere 之外新增 Z.ai(GLM)、DeepSeek、Moonshot(Kimi)、阿里云百炼(Qwen)、小米(MiMo)、MiniMax、腾讯(混元)、StepFun、Meta、Inception、Upstage、Arcee AI、ByteDance Seed、Sakana、Aion Labs、美团(LongCat);DeepSeek V4.1 Flash 与 V4 Pro 按厂商官方峰值最高价估算,旧 Flash、Vision Exp 和日期版本通过精确别名匹配。Step 5 Preview 的缓存写入按官方“cache-miss Input 包含首次缓存写入”规则使用 `$1 / M`。OpenRouter 圆点写法 `claude-opus-4.7`/`4.8`/`5.5`、官方 ChatGPT SKU `chat-latest`(别名 `gpt-chat-latest`)、Mercury 2.5、Solar Pro 4、Seed 2.1 Turbo、Fugu 版本、Aion 的 `aion-labs/` 前缀与 LongCat 网关链路同样通过精确别名匹配。窗口外的 `grok-4.20`、Fast/Priority 档、图片/音频/视频、免费与无官方标准价的模型均不收录;`kwaipilot/kat-coder-pro-v2.5`、`inclusionai/ling-3.0-*` 和 `bytedance-seed/seed-2.0-code` 只有网关或第三方报价,未据此猜价。缺价显示 `Cost —`,已知小计与缺价消息并存时显示 `· partial`,明确零价显示 `$0.00`。
|
|
99
|
+
v0.3.0 成本测试覆盖:assistant 与 compaction 按消息实际 `model` 和五类 token 分别计算,混合模型树各自采用对应价格,消息自带 `cost` 不参与主 Est. Cost。当前 OpenCode 模型目录中的完整适用价格优先;适用档位或实际使用类别缺价时,整条消息回退到内置官方快照,不拼接两套费率。官方目录测试锁定 72 个 2026-03-22 至 2026-09-22 发布的模型、来源 URL、唯一 ID、OpenAI/xAI/通义千问/MiniMax/Sakana 长上下文与上下文档位边界,以及 OpenRouter、Bedrock、Vertex 等包装格式和明确别名;相似名称不得猜价。目录按 OpenCode 当前模型目录(`temp/models.json`,210 个模型)补齐主流厂商:OpenAI、Anthropic、Google、xAI、Mistral、Cohere 之外新增 Z.ai(GLM)、DeepSeek、Moonshot(Kimi)、阿里云百炼(Qwen)、小米(MiMo)、MiniMax、腾讯(混元)、StepFun、Meta、Inception、Upstage、Arcee AI、ByteDance Seed、Sakana、Aion Labs、美团(LongCat);DeepSeek V4.1 Flash 与 V4 Pro 按厂商官方峰值最高价估算,旧 Flash、Vision Exp 和日期版本通过精确别名匹配。Step 5 Preview 的缓存写入按官方“cache-miss Input 包含首次缓存写入”规则使用 `$1 / M`。OpenRouter 圆点写法 `claude-opus-4.7`/`4.8`/`5.5`、官方 ChatGPT SKU `chat-latest`(别名 `gpt-chat-latest`)、Mercury 2.5、Solar Pro 4、Seed 2.1 Turbo、Fugu 版本、Aion 的 `aion-labs/` 前缀与 LongCat 网关链路同样通过精确别名匹配。窗口外的 `grok-4.20`、Fast/Priority 档、图片/音频/视频、免费与无官方标准价的模型均不收录;`kwaipilot/kat-coder-pro-v2.5`、`inclusionai/ling-3.0-*` 和 `bytedance-seed/seed-2.0-code` 只有网关或第三方报价,未据此猜价。缺价显示 `Est. Cost —`,已知小计与缺价消息并存时显示 `· partial`,明确零价显示 `$0.00`。
|
|
85
100
|
|
|
86
101
|
### 真实 OpenCode 集成
|
|
87
102
|
|
|
88
|
-
隔离 smoke 测试确认打包插件可加载;空会话隐藏无数据行并显示 `Steps 0`;在独立会话已经开始慢速流后,同一 TUI 切换过去会立即显示 `TPS ~…` 与 TTFT,完成后变为无 `~` 的精确 TPS;既有 token、上下文刷新、真实子代理全树累计、会话局部上下文及模型切换验证均继续通过。Steps 在真实集成中断言为:首条 assistant 完成后 `Steps 1` 且行序位于 Context 与 Input 之间;真实子代理场景下根视图与子代理视图均为 `Steps 4`(父 3 条 + 子 1 条),而被查看会话自身仍为 1。按 OpenCode 夹具价格计算,首条调用为 `$0.00126`,四条父/子代理调用累计 `$0.00504`;根会话切换到另一价格模型后,历史消息仍按自身模型保持 `$0.00504`,Context 则从 128,000 上限同步切换到 32,000。另一个模型在 OpenCode 目录中明确为 `cost: []`,其 `gpt-5.6-luna` 调用由打包产物内置官方价格计算为 `$0.000149`,TUI 显示 `Cost <$0.01`;安装包同时断言包含 `dist/pricing.js`、类型声明与 `docs/pricing.md`。本次 smoke 使用官方 `@opencode/cli-darwin-arm64@2.0.11` 的隔离二进制(安装于 `/private/var/folders/rw/bmx6c8hd737brl55m0_ff_b80000gn/T/opencode/isolated-cli-2011`,机器默认宿主仍为 2.0.14,未放宽版本断言),测试产物保存在 `/var/folders/rw/bmx6c8hd737brl55m0_ff_b80000gn/T/token-usage-smoke-Zq62zn`。
|
|
103
|
+
隔离 smoke 测试确认打包插件可加载;空会话隐藏无数据行并显示 `Steps 0`;在独立会话已经开始慢速流后,同一 TUI 切换过去会立即显示 `TPS ~…` 与 TTFT,完成后变为无 `~` 的精确 TPS;既有 token、上下文刷新、真实子代理全树累计、会话局部上下文及模型切换验证均继续通过。Steps 在真实集成中断言为:首条 assistant 完成后 `Steps 1` 且行序位于 Context 与 Input 之间;真实子代理场景下根视图与子代理视图均为 `Steps 4`(父 3 条 + 子 1 条),而被查看会话自身仍为 1。按 OpenCode 夹具价格计算,首条调用为 `$0.00126`,四条父/子代理调用累计 `$0.00504`;根会话切换到另一价格模型后,历史消息仍按自身模型保持 `$0.00504`,Context 则从 128,000 上限同步切换到 32,000。另一个模型在 OpenCode 目录中明确为 `cost: []`,其 `gpt-5.6-luna` 调用由打包产物内置官方价格计算为 `$0.000149`,TUI 显示 `Est. Cost <$0.01`;安装包同时断言包含 `dist/pricing.js`、类型声明与 `docs/pricing.md`。本次 smoke 使用官方 `@opencode/cli-darwin-arm64@2.0.11` 的隔离二进制(安装于 `/private/var/folders/rw/bmx6c8hd737brl55m0_ff_b80000gn/T/opencode/isolated-cli-2011`,机器默认宿主仍为 2.0.14,未放宽版本断言),测试产物保存在 `/var/folders/rw/bmx6c8hd737brl55m0_ff_b80000gn/T/token-usage-smoke-Zq62zn`。
|
|
89
104
|
|
|
90
105
|
### 验证边界
|
|
91
106
|
|
|
@@ -114,10 +129,10 @@ npm 发布前检查确认无作用域名称 `opencode-token-usage` 已由其他
|
|
|
114
129
|
|
|
115
130
|
`scripts/smoke.mjs` 使用带固定延迟的本地 OpenAI 兼容流,在真实 OpenCode 服务和 160 × 54 TUI 中验证:
|
|
116
131
|
|
|
117
|
-
- 空会话隐藏 TPS、TTFT、Context、Cache Write 与 Cost,不显示伪零性能值。
|
|
132
|
+
- 空会话隐藏 TPS、TTFT、Context、Cache Write 与 Est. Cost,不显示伪零性能值。
|
|
118
133
|
- 第一段文本到达时,面板显示 `TPS ~2.4 tok/s` 与 `TTFT 0.4s`;`~` 明确表示按 UTF-8 字节估算的活动流速度。
|
|
119
134
|
- assistant 完成并刷新快照后,TPS 自动变为无 `~` 的 `62.9 tok/s`。打包产物的 `historicalPerformance` 返回 62.893… tok/s,且同屏 OpenCode 自带消息状态也显示 62.9 tok/s。
|
|
120
|
-
- 行顺序为 Context、五类 token、Cache Rate、Total、Cost、空行、TPS、TTFT;Cost 隐藏时仍在最后一条用量行后空一行。原有上下文、真实子代理全树累计与模型切换测试继续通过。
|
|
135
|
+
- 行顺序为 Context、五类 token、Cache Rate、Total、Est. Cost、空行、TPS、TTFT;Est. Cost 隐藏时仍在最后一条用量行后空一行。原有上下文、真实子代理全树累计与模型切换测试继续通过。
|
|
121
136
|
- 安装包包含 `dist/performance.js` 及其类型声明;结果文件记录宿主版本 2.0.11、Total 5,080 和性能值。
|
|
122
137
|
- scoped 包安装在 `node_modules/@chenlongapps/opencode-token-usage` 后,根入口、TUI 入口和所有运行时断言均通过。
|
|
123
138
|
|
|
@@ -147,7 +162,7 @@ npm 发布前检查确认无作用域名称 `opencode-token-usage` 已由其他
|
|
|
147
162
|
|
|
148
163
|
`scripts/smoke.mjs` 沿用 v0.1.0 的隔离方式,并新增上下文断言:
|
|
149
164
|
|
|
150
|
-
- 空会话:面板保持 Input、Output、Reasoning、Cache Read、Cache Rate、Total 六行零值,不出现 `/ 128,000`、Context 行、Cache Write 与 Cost。
|
|
165
|
+
- 空会话:面板保持 Input、Output、Reasoning、Cache Read、Cache Rate、Total 六行零值,不出现 `/ 128,000`、Context 行、Cache Write 与 Est. Cost。
|
|
151
166
|
- 首条 assistant 完成后:`Context 1,270 / 128,000 (1.0%)`,且该行出现在 `Input` 行之上(终端逐行比对行号)。同一时刻宿主自带侧边栏为 `Context 1,270 tokens 1% used`,用量与插件一致(宿主百分比取整,插件保留一位小数)。
|
|
152
167
|
- 子代理视图:树的累计 `Total 5,080`,而上下文仍为 `1,270 / 128,000 (1.0%)`,确认上下文只反映被查看会话、不随子树累计。
|
|
153
168
|
- 切换到 `usage-test/large`(夹具上限 32,000)后无需新消息即同步:`Context 1,270 / 32,000 (4.0%)`。
|
|
@@ -158,7 +173,7 @@ npm 发布前检查确认无作用域名称 `opencode-token-usage` 已由其他
|
|
|
158
173
|
- 上下文口径参照 OpenCode 2.0.10 打包产物的侧边栏实现(`Ws`/`S6`):最后一次 `completed` 压缩之后、最后一条带 `tokens` 的 assistant 消息的五类 token 之和。SDK 依赖仍为 2.0.9,2.0.9 宿主未单独核对这一显示算法。
|
|
159
174
|
- 宿主 `Ws` 还使用 `session.revert` 作为搜索上界;本版本不读取 revert 状态,回退会话的取值可能与宿主不同。
|
|
160
175
|
- 分母使用被查看会话的**活动模型**,而不是产生该用量的消息自身记录的模型;会话中途切换模型后两者可能不同。
|
|
161
|
-
- Cost 与上下文上限使用同一活动模型解析规则,同样不使用消息自身记录的 `model` 字段:混合模型会话的 Cost 按查看时活动模型统一重算,不等于各模型实际账单之和。真实集成只验证了单夹具模型下的价格重算,混合模型的失真未单独断言。
|
|
176
|
+
- Est. Cost 与上下文上限使用同一活动模型解析规则,同样不使用消息自身记录的 `model` 字段:混合模型会话的 Est. Cost 按查看时活动模型统一重算,不等于各模型实际账单之和。真实集成只验证了单夹具模型下的价格重算,混合模型的失真未单独断言。
|
|
162
177
|
- 不显示进度条,上下文百分比与用量同行;行值加标签约 31 字符,窄侧边栏可能换行,响应式布局与进度条留待后续版本。
|
|
163
178
|
- 夹具 `usage-test/large` 的上下文上限改为 32,000 以便观测模型切换,`usage-test/small` 保持 128,000。
|
|
164
179
|
|
|
@@ -188,7 +203,7 @@ Python 3 为真实 TUI 提供 160 × 54 的伪终端,终端输出经 xterm 解
|
|
|
188
203
|
已验证:
|
|
189
204
|
|
|
190
205
|
- 主插件激活、TUI 插件加载;安装包包含根目录 `index.js` / `tui.js`、编译产物及类型声明。
|
|
191
|
-
- 空会话隐藏零值的 Cache Write 与 Cost;基础统计行、宿主标题、Context 与费用区继续保留。
|
|
206
|
+
- 空会话隐藏零值的 Cache Write 与 Est. Cost;基础统计行、宿主标题、Context 与费用区继续保留。
|
|
192
207
|
- 首条 assistant 完成后无需重新进入会话即可刷新:Input 100、Output 50、Reasoning 20、Cache Read 1,000、Cache Write 100,Total 1,270。
|
|
193
208
|
- 父会话三条 assistant 消息和一个真实子代理的一条消息共同累计为 Total 5,080,显示为 `5,080`。
|
|
194
209
|
- 父视图与子代理视图都显示 Input 400、Output 200、Reasoning 80、Cache Read 4,000、Cache Write 400、Cache Rate 83.3%。
|