aka-danielZhang/dsh-provider-balance

DSH web plugin: provider quota chip beside the composer context meter (GLM Coding / Kimi Code / OpenCode Go)

Install

mkdir -p ~/.dsh/profiles/web/node_modules
   ln -sfn /Users/danielwei_zhang/workspace/dsh-provider-balance \
     ~/.dsh/profiles/web/node_modules/dsh-provider-balance
   ```

   > ⚠️ 用 `pnpm install` 的 `file:` 依赖装出来的是**硬链接副本**:编辑器原子替换写文件后
   > 副本与仓库脱钩,进程会一直跑旧代码。开发时务必用上面的软链方式;若已用 `file:` 安装,
   > 删掉 `node_modules/dsh-provider-balance` 目录再建软链即可。

2. 从 harness checkout 启动(`--patch` 必须放在 web 应用自有 flag 如 `--port` 之前):

   ```sh
   cd ~/workspace/coding-study/deepseek-harness
   pnpm dsh web --patch ~/workspace/dsh-provider-balance/cordis.yml
   ```

3. 刷新 `http://127.0.0.1:3080`,输入框工具行右侧(模型选择器左边)会出现余量胶囊。
   **胶囊跟随当前会话选中的模型**:切到 GLM 显示 `94% · 73% · 4000`(GLM 5h / 周 / 工具),
   切到 Kimi 显示 `100% · 100%`(Kimi 5h / 周);切到没有适配器的供应商(如 openai)时胶囊消失。
   点击展开该供应商的详情面板:进度条(蓝 5h / 绿周 / 紫工具)、重置倒计时、套餐档位、手动刷新。
   同时,设置 → 模型 页每个已配置供应商的行上会出现同数据的紧凑徽标(需 harness 侧
   `settings.models.provider` 行级槽位,本仓库配套的 harness 分支已提供)。

### 持久挂载(可选)

把 overlay 内容并入 `~/.dsh/profiles/web/cordis.patch.yml`(同样的 insert 行),之后裸
`pnpm dsh web` 即生效,无需 `--patch`。

## 凭据解析顺序

1. DSH `credentials` 服务(`ctx.get('credentials').resolve(apiKeyEnv)`);
2. 进程环境变量(默认 `ZAI_CODING_CN_API_KEY`);
3. `$DSH_HOME/.credentials.yaml` 文件直读(credentials-local 的托管层)。

Key 只在 Host 侧使用,浏览器只收到聚合后的百分比/次数 JSON,永远不会看到密钥。

**换 key 即时生效**:服务句柄按次解析(不在 apply 时捕获,本插件可能先于 credentials
服务激活),文件层每次重读不缓存;同时插件监听 `credentials/updated` 事件,一旦某个
ref 被改写,对应供应商的快照立即作废,下一次轮询(≤5 分钟)或点面板的刷新按钮即用新 key
重新拉取,无需重启进程。

## 配置(cordis.yml `config`,全部可选)

Add aka-danielZhang/dsh-provider-balance to your DSH config (web profile) to enable.

README

Expand full README Collapse

README is empty.