dsh-token-total 1.0.0 → 1.0.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 +3 -3
- package/lib/client.js +273 -147
- package/lib/index.js +159 -43
- package/lib/types/client/session-usage-core.d.ts +10 -0
- package/lib/types/client/use-session-usage.d.ts +2 -18
- package/lib/types/collector.d.ts +8 -9
- package/lib/types/context-types.d.ts +23 -2
- package/lib/types/model-names.d.ts +6 -0
- package/lib/types/session-usage.d.ts +8 -9
- package/lib/types/wire.d.ts +23 -1
- package/package.json +1 -1
- package/src/client/StatsLineEnhanced.tsx +15 -33
- package/src/client/TokenTotalPanel.module.css +72 -5
- package/src/client/TokenTotalPanel.tsx +199 -53
- package/src/client/session-usage-core.ts +58 -0
- package/src/client/use-session-usage.ts +45 -98
- package/src/collector.ts +57 -51
- package/src/context-types.ts +17 -2
- package/src/model-names.ts +34 -0
- package/src/query.ts +61 -5
- package/src/routes.ts +14 -2
- package/src/session-usage.ts +50 -38
- package/src/wire.ts +17 -1
package/README.md
CHANGED
|
@@ -63,9 +63,9 @@ dsh plugin --profile <profile> add "file:D:\work\dsh-token-total"
|
|
|
63
63
|
|
|
64
64
|
## 数据来源与统计口径
|
|
65
65
|
|
|
66
|
-
- **事件来源**:`sessionPersistence`
|
|
66
|
+
- **事件来源**:`sessionPersistence` 的会话日志。兼容 `assistant/message` 的顶层 `usage`,也读取消息及失败 `assistant/attempt` 的原始流式用量;同一次请求以最后一份用量为准,修正值按差额更新。插件订阅 `session/event` 实时增量累加,同时一次性回扫已有历史会话;`llm/retry-started` 会清空当前 `(turn, step)` 槽位,因此失败尝试和后续重试分别计入,不重复累加同一次请求的多份报告。
|
|
67
67
|
- **本地持久化**:聚合结果写入 storage-domain 的 `token_total_history` 域(`$DSH_HOME/storages/` 下),纯本地、无外部依赖。回扫游标按会话记录已消费的事件序号,重启后从断点继续。
|
|
68
|
-
-
|
|
68
|
+
- **单会话统计**:不走聚合存储(那里没有会话维度),而是按需重放该会话及全部子孙会话的自有日志;已加载会话优先使用实时事件快照,避免持久化缓冲造成漏算。结果缓存 4 秒,任意会话的新事件都会使缓存失效,包含此前尚未发现的子会话。前端从首次读取起每 4 秒刷新,显示时使用原生实时主会话用量、主会话压缩调用用量与子树用量之和,胶囊与弹窗共用同一口径;切换会话时立即清除旧会话读数。读取失败不会把部分子树当作成功结果覆盖已有读数。
|
|
69
69
|
- **缓存命中率** = 缓存命中 token ÷ 输入 token 总量(命中 + 未命中)。
|
|
70
70
|
|
|
71
71
|
## HTTP 接口
|
|
@@ -100,7 +100,7 @@ pnpm install
|
|
|
100
100
|
pnpm run build # tsc 声明 + 宿主/浏览器两个 bundle
|
|
101
101
|
pnpm run typecheck # 宿主半区
|
|
102
102
|
pnpm run typecheck:client
|
|
103
|
-
pnpm test #
|
|
103
|
+
pnpm test # 模型/供应商聚合、会话树、重试用量、底部展示与刷新回归测试
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
产物:`lib/index.js`(宿主,ESM)、`lib/client.js`(浏览器,CJS 包装进 `__ModuleLoader__.load`)、`lib/types/**/*.d.ts`。CSS Modules 在构建时被内联成 `<style data-plugin-css>` 注入,因此 Web 外壳不需要 CSS 管线。
|