bowenliang123/dsh-context
bowenliang123/dsh-contextDSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
DSH Web 的供应商余额与额度状态栏,支持模型能力设置、外部 JSON 健康监测、可视化字段绑定和逐模型状态详情。
dsh-balance-quota 在 DSH 对话输入框下方展示模型供应商余额或额度,并可接入第三方 JSON 状态接口,查看模型健康状态、可用率、TTFT、响应耗时、历史记录和自定义指标。
当前开发版本:0.3.5 · 上一个 npm 发布版本:0.3.3
DSH 兼容性:0.3.4 起要求 DSH 0.1.5-rc.1 或更高(
@deepseek-ai/dsh-settings≥0.1.5-rc.2)。该版本移除了settingsNamespace()辅助函数,改为直接向settings.register()传入命名空间字符串。DSH 0.1.4 及更早版本请使用 0.3.3。
| 模块 | 功能 |
|---|---|
| 官方方案 | DeepSeek 余额、OpenCode Go 滚动/周/月额度 |
| 自定义余额 | 公网 HTTP/HTTPS、GET/无请求体 POST、自定义请求头、超时和刷新间隔 |
| JSON 取值 | 属性路径、数组索引、?. 可选链、最多 5 个 ?? 回退分支 |
| 金额处理 | 固定/动态币种、金额除数、余额配置草稿测试 |
| 状态栏 | 输入框下方显示余额、更新时间、强制刷新和健康入口 |
| 供应商选择 | 设置默认供应商、状态栏切换、每个会话独立记忆 |
| 模型设置 | 管理模型列表、上下文窗口、文本/图片输入能力和推理等级 |
| 健康监测 | 外部 JSON 接口、模型状态、可用率、TTFT、响应耗时和历史记录 |
| 可视化绑定 | 点击右侧槽位,再点击左侧 JSON 字段;绑定后实时预览 |
| 全模型预览 | 使用当前映射预览最多 50 个模型,无需重复请求接口 |
| 数据转换 | 原文、数字、百分比、状态;支持状态值映射和百分比倍率 |
| 数字格式 | 每个数字字段独立设置接口单位、显示单位和 0–2 位小数 |
| 自定义字段 | 添加错误率、空回响、常见报错等任意模型指标 |
| 缓存与刷新 | Host 共享余额缓存、健康 JSON 预览缓存、页面后台暂停刷新 |
| 凭据安全 | 复用 DSH credential ref,API Key 不进入浏览器配置 |
| 网络安全 | 公网 HTTP/HTTPS、DNS 固定、防 DNS 重绑定、私网/重定向拦截 |
要求:Node.js 22+ 和可用的 DSH CLI。
dsh plugin --profile web add dsh-balance-quota
dsh web
安装或升级后需要重启 dsh web。检查插件:
dsh plugin --profile web list
下面 7 张截图均来自当前版本的真实插件界面。仅将供应商名、接口地址、余额和模型名替换为演示值,界面布局和控件没有重绘。
打开:Settings → Plugins → Plugin configuration → 供应商状态。
这个页面可以开启余额查询、查看余额/额度、编辑余额接口、进入高级设置、选择默认供应商、开启状态栏和手动刷新。
在供应商行点击 编辑:
可配置:
路径示例:
余额:$.remaining ?? $.quota?.remaining ?? $.balance
币种:$.unit ?? $.quota?.unit ?? "USD"
点击 测试 只验证当前未保存草稿,不写入正式配置、凭据或正式缓存;确认正确后再点击 保存。
点击供应商行的 高级设置,默认进入「模型设置」:
这个 Tab 管理当前供应商在 DSH 中可使用的模型能力:
它不负责余额和健康接口:余额由「编辑」配置,外部状态由第二个 Tab 配置。
切换到「健康监测」:
配置流程:
健康监测读取第三方监控数据,不调用聊天模型,不消耗模型额度。
必须先绑定模型列表:点击右侧「模型列表」槽位,再点击左侧数组节点,例如 $.models。
| 字段 | 示例路径 | 作用 |
|---|---|---|
| 模型名称 | $.model | 卡片标题 |
| 分组 | $.group | 模型分组标签 |
| 状态 | $.status | 正常、失败、警告、未知 |
| 可用率 | $.availability | 当前可用率 |
| TTFT | $.ttft_ms | 首 Token 延迟 |
| 响应耗时 | $.latency_ms | 请求响应时间 |
| 历史数组 | $.history | 最近状态记录 |
| 历史状态 | $.state | 单条记录状态 |
| 历史时间 | $.time | 单条记录时间 |
| 历史错误 | $.message | 单条记录错误 |
%;自定义状态值可以点击 值映射:
healthy → 正常
warning → 警告
offline → 失败
自定义字段选择 数字 后显示三个配置:
| 配置 | 可选值 |
|---|---|
| 接口单位 | 接口 ms、接口 s |
| 显示单位 | 显示跟随、显示 ms、显示 s |
| 小数位 | 整数、1 位、2 位 |
例如接口返回 1250ms,选择显示 s、保留 2 位,结果为 1.25s。每个字段独立保存,不影响其他字段。
在供应商状态页底部开启 状态栏,回到任意对话。状态栏位于聊天输入框正下方:
从左到右是:健康圆点、当前供应商、余额/额度、更新时间、强制刷新、健康监测入口。
点击状态栏中的供应商名称:
↻ 可以绕过缓存立即刷新当前余额。当前供应商启用并保存健康监测后,刷新按钮右侧出现心电图图标。点击图标才请求接口并打开详情:
详情包含:
健康状态代表第三方监控源结果,不等于当前账户状态。
确认已经配置至少一个供应商,并在供应商状态页底部开启「状态栏」。安装或升级后需要重启 dsh web。
在 高级设置 → 健康监测 中启用监测、测试成功并保存。图标只显示在已启用健康监测的当前供应商状态栏上。
invalid external custom field先绑定模型列表,再从模型项内部选择字段。名称和路径不能为空;$.last_errors[0] 是合法路径。当前版本会清理前后空格并忽略未完成的空字段。
确认接口为公网 HTTP/HTTPS、没有重定向,credential ref 有效,JSON 路径与实际响应一致。插件会拒绝私网、回环地址和内部域名。
credentials 服务管理,不进入浏览器配置;DSH_BALANCE_ALLOW_HTTP=0 强制仅 HTTPS);__proto__、constructor、prototype;详见 SECURITY.md。
唯一对外发布包为 packages/dsh-balance。
pnpm install
pnpm dev:install
pnpm check
pnpm test
pnpm pack:check
pnpm verify
packages/dsh-balance/
├── lib/host/ # 安全查询、校验、缓存、配置和健康数据归一化
├── lib/client/ # DSH Web 状态栏和设置界面
├── docs/images/ # README 真实脱敏截图
├── test/ # 单元与安全测试
├── README.md # npm 包使用文档
└── SECURITY.md # 安全边界