Files
dsh-llm-workbuddy/README.CUSTOM.md
T
dsh-custom a44227b69a feat: 个人定制版 —— API Key 模式显示剩余积分 + 悬浮卡片
基于 @axiaohungry/dsh-llm-workbuddy 1.3.21 (MIT)。
详见 README.CUSTOM.md。
2026-10-10 13:59:09 +08:00

84 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# dsh-llm-workbuddy(个人定制版)
> 本仓库是 [`@axiaohungry/dsh-llm-workbuddy`](https://github.com/Axiaohungry/dsh-llm-workbuddy) **v1.3.21 的个人自用修改版**。
> 原项目采用 **MIT** 许可,版权归原作者 **Axiaohungry** 所有;本定制版的改动见下。
> 与腾讯、WorkBuddy、CodeBuddy、DeepSeek、DSH 官方**均无关联,未获其背书**。
原始 `README.md` 为原作者文档,**未做改动**,保留作为参考。
---
## 安装(换新机器时)
DSH 桌面版(本机安装于 `E:\DeepSeekHarness`,路径按实际调整):
```powershell
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add git+<本仓库地址>
```
装完**完全退出 DSH 再启动**(客户端与 host 两侧的模块在启动时组装)。
> 若本机此前装过 npm 上的同名包,建议先
> `... plugin --profile desktop remove @axiaohungry/dsh-llm-workbuddy`,
> 否则同一个 provider(`workbuddy-cn`)会注册两次而冲突。
---
## 相对原版的改动
| # | 位置 | 改动 |
|---|---|---|
| 1 | `client.js` `WorkBuddyCreditsDock` | 移除凭证绑定控件、认证模式选择、多 Key 下拉与「当前会话 API Key」文案,只保留一行「剩余积分 xxx」 |
| 2 | `client.js` `:408` 一带 | 原版在 API Key 模式下**提前 return 不查积分**;本版改为继续查询 |
| 3 | `workbuddy-web.js` credits 路由 | 非令牌模式不再直接返回「积分查询仅支持令牌登录」,改为读当前 API Key 查账单接口 |
| 4 | `workbuddy-credits.js` `queryPersonalCredits` | 新增返回 `planName` / `planCycleEnd`(取账单中 `CapacityType=2` 且名字含「高级版/标准版/旗舰版/专业版」的条目) |
| 5 | `client.js` | 积分项改为可点击的「药丸」,hover 高亮 + 点击弹出卡片:`WorkBuddy` / 剩余积分 / 套餐 / 下次重置时间;点外部或按 Esc 关闭 |
| 6 | `client.js` CSS | dock 的 `overflow: hidden` → `visible`(否则弹出的卡片会被父容器裁掉) |
| 7 | `client.js` `mountPendingSelector` | 移除新建会话时的「新会话默认凭证」选择器 |
| 8 | `client.js` `apply()` | 注释掉 `plugins.detail.section` 注册(移除插件详情页面板)。**保留** `settings.models.provider-card`(改 Key / 拉模型列表的唯一 UI 入口) |
| 9 | `client.js` `applyMode` | 隐藏「当前 API Key」多 Key 来源下拉,且不再回显 Key 内容 |
| 10 | `index.js` | `DISPLAY_NAME` 由 `WorkBuddy 中国区` 改为 `WorkBuddy`(不显示区服) |
代码内均以 `[自用定制 2026-10-10]` 注释标记,便于日后与上游 diff。
---
## 为什么积分能查到(原理)
WorkBuddy 的账单接口 `POST https://www.codebuddy.cn/v2/billing/meter/get-user-resource`
**接受 API Key 作为 `Authorization: Bearer` 令牌**(原版插件只是没这么做,它认为只有网页登录令牌可用)。
请求体:
```json
{
"PageNumber": 1,
"PageSize": 100,
"ProductCode": "p_tcaca",
"Status": [0, 3],
"PackageEndTimeRangeBegin": "当前时间",
"PackageEndTimeRangeEnd": "当前时间 + 101 年"
}
```
返回的 `data.Response.Data.Accounts[]` 中:
- `CapacityType = 2` → **套餐 / 会员类**(本条用来取 `PackageName` 与 `CycleEndTime`)
- `CapacityType = 1` → 积分包(签到、活动、兑换码赠送)
> 注:`GET /console/accounts` 对 API Key 返回 **401**,只认网页登录令牌,所以套餐类信息只能从上面这个接口筛。
---
## ⚠️ 注意事项
1. **本版移除了配置 UI**,只适合**已经配好 Key 的自用场景**。若要分享给别人,请让对方用上游原版。
2. 依赖 WorkBuddy **未公开**的接口,上游随时可能改动或收紧风控,**可用性无任何保证**。
3. **仅限本机、仅供自用**:请勿用于多账号池化、代他人调用或任何形式的转售 / 托管。
4. 使用前请自行确认是否符合 WorkBuddy 的服务条款。
5. 按 MIT「按现状」提供,作者不对账号风控、额度异常或任何损失负责。
## 许可
MIT —— 见 `LICENSE`(原作者的版权声明必须保留)。