🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

消息用量徽标 haoliangwu/dsh-ui-shadow-token

DeepSeek Harness
haoliangwu71 天前有提交已提供中文文档扫描:未发现敏感能力

在每条助手消息右上角显示输入输出 token 用量

24.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add haoliangwu/dsh-ui-shadow-token
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · ui
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 71 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-ui-shadow-token DSH web 聊天 token 徽标 —— 在每条助手消息右上角用一个小胶囊显示该消息的输入/输出 token 用量。 DeepSeek Harness 的 web 客户端插件。它以槽位优先级 -1 遮蔽带键的 conversation.chat.node 槽位中的 assistant-step 条目,于是每条助手消息都会渲染原有内容,并在右上角多出一个 ⚡ in {input} / out {output} 徽标。 徽标读取最终消息的 usage 载荷(输入/输出/缓存/推理 token),收窄方式与仓库内 turn-metrics 一样,同样做了防御性处理;消息还在流式输出、usage 尚未落定时,徽标保持隐藏。助手消息的原有渲染 —— markdown、推理、工具行、图片 —— 一概不动,只多出这个胶囊。 - 纯客户端渲染。 宿主侧只是一个空的 apply —— 没有服务、没有 RPC 通道、没有模型可见的输入、没有会话日志事件。 - 设计上就做防御。 usage 的类型是 unknown;徽标按仓库内 turn-metrics 的做法收窄它,将来结构变了,最坏也只是徽标隐藏,绝不会崩溃。 - 流式输出时隐藏。 消息的 usage 落定之前,徽标一直隐藏 —— 流式过程中不会闪烁。 - 跟随语言环境。
展开完整文档(README 剩余 1 节)
dsh-ui-shadow-token

DSH web 聊天 token 徽标 —— 在每条助手消息右上角用一个小胶囊显示该消息的输入/输出 token 用量。

DeepSeek Harness 的 web 客户端插件。它以槽位优先级 -1 遮蔽带键的 conversation.chat.node 槽位中的 assistant-step 条目,于是每条助手消息都会渲染原有内容,并在右上角多出一个 ⚡ in {input} / out {output} 徽标。

徽标读取最终消息的 usage 载荷(输入/输出/缓存/推理 token),收窄方式与仓库内 turn-metrics 一样,同样做了防御性处理;消息还在流式输出、usage 尚未落定时,徽标保持隐藏。助手消息的原有渲染 —— markdown、推理、工具行、图片 —— 一概不动,只多出这个胶囊。

- 纯客户端渲染。 宿主侧只是一个空的 apply —— 没有服务、没有 RPC 通道、没有模型可见的输入、没有会话日志事件。
- 设计上就做防御。 usage 的类型是 unknown;徽标按仓库内 turn-metrics 的做法收窄它,将来结构变了,最坏也只是徽标隐藏,绝不会崩溃。
- 流式输出时隐藏。 消息的 usage 落定之前,徽标一直隐藏 —— 流式过程中不会闪烁。
- 跟随语言环境。 in {input} / out {output} 来自 shadow-token 语言命名空间(zh/en),由自动注入的 locale 席位提供。

安装

dsh plugin --profile web add github:haoliangwu/dsh-ui-shadow-token

构建产物 lib/ 已提交,所以从 git 安装只需一行 —— 没有 prepare 脚本,也不需要 allowBuilds 权限。安装后重启 dsh --profile web(bundle 层在启动时叠加组合)。

为什么用槽位优先级 -1

conversation.chat.node 槽位按节点类型带键:entryKey = routedNode.kind。默认的 assistant-step 条目注册在优先级 0。带键槽位遇到同键同优先级的重复注册会直接抛错(大声失败),而绝对值更低的优先级会遮蔽默认条目 —— 账本按升序排序,最低的那个负责渲染。我们的条目用 priority: -1 注册同一个键:

- 每次 assistant-step 渲染都落到本插件的组件;
- 默认渲染器仍留在账本里,作为不生效的兜底(上游升级照常可用,只是默认渲染器不再出场);
- 其他任何类型(user、tool、turn-tail 等)都不受影响 —— 默认的 turn-tail 页脚(Ran for …、TTFT …、tok/s)仍然渲染在徽标下方。

这是客户端槽位方案,用来替代 disabled: true 加重新注册:槽位声明、席位分发器、业务节点状态机全都留在 ui-conversation 里;插件只贡献一个带键渲染器。

工作原理

- 徽标完全由客户端渲染。 节点侧只是一个空的 apply;所有行为都在 ./client 里,注册为 dsh.client web 平台包。没有宿主服务,没有 RPC 通道,没有模型可见的输入,也没有会话日志事件。
- 用量数据按防御式方式从节点数据读取。 AssistantMessageNode.usage 的类型是 unknown,运行时携带 TokenUsage(inputTokens / outputTokens / cacheReadTokens / cacheWriteTokens / reasoningTokens)。组件收窄类型的方式与仓库内 turn-metrics.ts 一致,因此将来结构变化只会让徽标隐藏,绝不会崩溃。
- 徽标文本来自 locale 命名空间。 shadow-token(zh / en)插值 {input} / {output} 占位符;locale 席位由注册过程自动提供(PropsLocale 机制)。
- bundle id 必须等于行名。 client-modules 按客户端行的 name 索引浏览器注册;tsdown bundle id 和 cordis.patch.yml 行名都是 dsh-ui-shadow-token,否则浏览器外壳会抛出 "loaded without registering"。

从源码构建

pnpm install
pnpm build # emits lib/index.js, lib/invariant.js, lib/client.js + sourcemaps
pnpm typecheck # tsc --noEmit (types resolve via tsconfig paths to the local dsh profile)

lib/ 已提交到仓库,因此 git 安装无需构建步骤即可工作。改动源码后,运行 pnpm build 并提交更新后的 lib/。

许可证

MIT
预览分享卡片长什么样 ↓haoliangwu/dsh-ui-shadow-token
分享 · DeepSeek Harness Hub
haoliangwu/dsh-ui-shadow-token

在每条助手消息右上角显示输入输出 token 用量

这是你的仓库?认领条目

回到顶部