feat: 个人定制版 —— API Key 模式显示剩余积分 + 悬浮卡片
基于 @axiaohungry/dsh-llm-workbuddy 1.3.21 (MIT)。 详见 README.CUSTOM.md。
This commit is contained in:
commit
a44227b69a
14 files changed
+5517
No files matched your search
@@ -0,0 +1,83 @@
|
||||
# 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`(原作者的版权声明必须保留)。
|
||||
Reference in new issue
Block a user