dsh-cnb-assist 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -67
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -1,99 +1,101 @@
|
|
|
1
|
-
# CNB
|
|
1
|
+
# CNB 反代辅助
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
DeepSeek Harness(DSH)插件。把 CNB 的额度、AI 用量和运行中容器的反代地址放进 IDE 侧栏,
|
|
4
|
+
并提供「一键写回模型地址」和「四步重启容器」。
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
- **令牌不出 Host 进程** —— 浏览器那半只拿到算好的数字。
|
|
7
|
+
- **写配置只改一个字符串** —— 只替换模型 `baseURL` 里那条 `*.cnb.run` 地址,不动整份 YAML。
|
|
8
|
+
- **零运行时依赖** —— 纯 ESM 源码,装上就能用。
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
---
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
## 装
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
在 DSH 里打开插件管理:
|
|
15
|
+
|
|
16
|
+
```
|
|
13
17
|
plugin_manager → install_bundle → target: dsh-cnb-assist
|
|
14
|
-
# 或指定版本:
|
|
15
|
-
plugin_manager → install_bundle → target: dsh-cnb-assist@1.0.1
|
|
16
18
|
```
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
要固定版本就写 `dsh-cnb-assist@1.0.2`。
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
离线安装也行,把 `dsh-cnb-assist-*.tgz` 拷到目标机器后填该文件的绝对路径。
|
|
23
|
+
安装器认**目录**和 **`.tgz`/`.tar.gz`**,`.zip` 不被接受。
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
所以会报"该路径不存在或不是有效的插件包")。
|
|
25
|
+
装完**重启一次 dsh**(Host 层代码不会热更新),然后刷新页面。
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
npm pack dsh-cnb-assist # 得到 dsh-cnb-assist-1.0.1.tgz
|
|
27
|
-
plugin_manager → install_bundle → target: 该 tgz 的绝对路径
|
|
28
|
-
```
|
|
27
|
+
---
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
## 用
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
plugin_manager → install_bundle → target: 本目录的绝对路径
|
|
34
|
-
# 示例:C:\Users\LMUD\Desktop\cnb2api\dsh-cnb-assist
|
|
35
|
-
# 用 link: 安装,改完代码只刷新页面即可(Host 半身改动才需要重启 dsh)
|
|
36
|
-
```
|
|
31
|
+
### 1. 填令牌
|
|
37
32
|
|
|
38
|
-
|
|
33
|
+
`设置 → CNB 反代辅助`,只有两项:
|
|
39
34
|
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
| 项 | 说明 |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **CNB 令牌** | CNB 的 access token,至少要有容器与构建日志的读权限 |
|
|
38
|
+
| **模型 provider** | 写回地址时要改哪个 provider,默认 `cnb`,需与配置里的键名一致 |
|
|
42
39
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
令牌也可以不填,插件会按顺序兜底查找:
|
|
41
|
+
|
|
42
|
+
1. 插件设置里的 `config.token`
|
|
43
|
+
2. `%APPDATA%\CnbAssist\settings.json`(桌面版辅助程序存过的那份)
|
|
44
|
+
3. 环境变量 `CNB_API_KEY`
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
> `locale/*.json`),否则 `pnpm pack` 的 `scandir` 会直接报 ENOENT。
|
|
46
|
+
令牌与地址**不随包分发**,每台机器各自配置。
|
|
51
47
|
|
|
52
|
-
|
|
53
|
-
随包分发)之外不 import 任何第三方包,所以不存在"换台机器装不上"的 node_modules 问题。
|
|
48
|
+
### 2. 打开面板
|
|
54
49
|
|
|
55
|
-
|
|
50
|
+
点左侧栏底部的橘黄叶片图标,面板从上到下是四块:
|
|
56
51
|
|
|
57
|
-
|
|
52
|
+
- **运行中容器** —— 反代地址,可复制、可四步重启、可一键写回模型地址
|
|
53
|
+
- **当前配置** —— 从本 profile 的 `cordis.patch.yml` 里读出来的现有地址,标了行号和 provider
|
|
54
|
+
- **额度** —— 每个组织的月额度 / 已用 / 预冻结,带进度条
|
|
55
|
+
- **本月按组织** —— 本月创建的容器按组织汇总的 credits 与 token 用量
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
### 3. 写回模型地址
|
|
58
|
+
|
|
59
|
+
容器那一行点「设为模型地址」,插件把 `https://<business_id>-9001.cnb.run` 写进
|
|
60
|
+
设置里那个 provider 的 `baseURL`。写前会留 `.bak`,只替换地址字符串本身。
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 面板之外
|
|
65
|
+
|
|
66
|
+
模型工具 `cnb_assist` 始终可用,四个动作:
|
|
67
|
+
|
|
68
|
+
| 动作 | 作用 |
|
|
60
69
|
|---|---|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
70
|
+
| `snapshot` | 额度 / 用量 / 容器 / 当前配置,一次拿全 |
|
|
71
|
+
| `config` | 读配置,或从中解析出现有反代地址 |
|
|
72
|
+
| `restart` | 走 stop → 等停稳 → start → 等新地址 |
|
|
73
|
+
| `apply` | 把地址写进指定 provider |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 常见问题
|
|
64
78
|
|
|
65
|
-
|
|
79
|
+
**面板说「未配置令牌」** —— 去设置里填,或把 `CNB_API_KEY` 设成环境变量后重启 dsh。
|
|
66
80
|
|
|
67
|
-
|
|
81
|
+
**额度是空的** —— 令牌权限不够。读容器列表要 `account-engage:r`,读构建日志要
|
|
82
|
+
`repo-cnb-history:r`。
|
|
68
83
|
|
|
69
|
-
|
|
70
|
-
2. 设置 →「CNB 反代辅助」→ 填 **CNB 令牌**(或让它读 `CNB_API_KEY` / 旧的
|
|
71
|
-
`%APPDATA%\CnbAssist\settings.json`)
|
|
72
|
-
3. 确认 **模型 provider** 与 `llm-pi-ai` 行里的键名一致(默认 `cnb`)
|
|
73
|
-
4. 面板里点容器那一行的「设为模型地址」,把反代地址写进该 provider 的 `baseURL`
|
|
84
|
+
**本月合计比网页上少** —— 已删除的容器查不到归属,会被丢弃,这是预期行为。
|
|
74
85
|
|
|
75
|
-
|
|
86
|
+
**重启后地址变了** —— 正常。重启会重建容器,`business_id` 变,地址跟着变。
|
|
76
87
|
|
|
77
|
-
|
|
88
|
+
**改完配置没生效** —— `cordis.patch.yml` 属于 Host 层,要重启 dsh,刷新页面不够。
|
|
78
89
|
|
|
79
|
-
|
|
80
|
-
特权用四重判定(`total<=0 || bonus<=0 || 已过期 || bonus>total` 即视为无)。
|
|
81
|
-
- **本月按组织**:只统计本地时区本月创建的容器,归属只认构建日志的 `groupName`,
|
|
82
|
-
查不到的容器直接丢弃(不拿 slug 兜底)。
|
|
83
|
-
- **运行中容器**:反代地址(`business_id` + `-9001` 优先,解析不到就从阶段日志里抠),
|
|
84
|
-
复制、四步重启、一键写回模型 `baseURL`。
|
|
85
|
-
- **配置里现有的地址**:从本 profile 的 `cordis.patch.yml` 里正则读出来,标行号与 provider。
|
|
90
|
+
---
|
|
86
91
|
|
|
87
|
-
##
|
|
92
|
+
## 兼容性
|
|
88
93
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
- Node.js ≥ 20
|
|
95
|
+
- 只依赖宿主提供的 `@deepseek-ai/dsh-client-ui-slots` 与 `@deepseek-ai/dsh-client-locale`,
|
|
96
|
+
无需额外安装任何包
|
|
97
|
+
- 样式只用 DSH 主题变量,跟随亮色 / 暗色
|
|
92
98
|
|
|
93
|
-
##
|
|
99
|
+
## 许可
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
- 组织归属只认 `build/logs` 的 `groupName`,查不到就丢弃。
|
|
97
|
-
- 「本月」按本机时区取 1 号 00:00。
|
|
98
|
-
- 重启必须四步:`stop → 等非 running → start → 等新地址`;`start` 的 `branch` 必填。
|
|
99
|
-
- 写配置绝不重写整份 YAML:只替换匹配到的 `-9001.cnb.run` 字符串,写前留 `.bak`。
|
|
101
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-cnb-assist",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "CNB 反代辅助(DSH
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "CNB 反代辅助(DSH 插件):查看各组织额度与本月 AI 用量,管理运行中容器的反代地址,一键写回模型 baseURL",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"exports": {
|
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
"node": ">=20"
|
|
39
39
|
},
|
|
40
40
|
"dsh": {
|
|
41
|
-
"bundle": {
|
|
41
|
+
"bundle": {
|
|
42
|
+
"patch": "./cordis.patch.yml"
|
|
43
|
+
},
|
|
42
44
|
"client": {
|
|
43
45
|
"platform": "web",
|
|
44
46
|
"immediately": true,
|