dsh-dock 0.1.0 → 0.4.1
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/LICENSE +12 -15
- package/README.md +61 -70
- package/client.js +2136 -97
- package/features/balance/host.js +494 -0
- package/features/balance/view.js +303 -0
- package/features/heartbeat/view.js +34 -0
- package/features/modelconfig/host.js +403 -0
- package/features/modelconfig/view.js +446 -0
- package/features/theme/view.js +35 -0
- package/features/tokenlog/host.js +678 -0
- package/features/tokenlog/view.jsx +568 -0
- package/features/visionproxy/host.js +301 -0
- package/index.js +50 -36
- package/package.json +22 -7
- package/screenshots/dock-chips.png +0 -0
- package/screenshots/dock-home.png +0 -0
- package/screenshots/dock-tokenlog.png +0 -0
- package/src/client.jsx +549 -0
- package/src/host-core.js +54 -0
- package/src/shared.js +108 -0
package/LICENSE
CHANGED
|
@@ -2,20 +2,17 @@ MIT License
|
|
|
2
2
|
|
|
3
3
|
Copyright (c) 2026 wycto
|
|
4
4
|
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
6
|
+
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
9
|
+
following conditions:
|
|
11
10
|
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
12
|
+
portions of the Software.
|
|
14
13
|
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
15
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
16
|
+
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
18
|
+
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,107 +1,98 @@
|
|
|
1
|
-
# dsh-dock
|
|
1
|
+
# dsh-dock · 功能坞
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/dsh-dock)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
**DeepSeek Harness
|
|
6
|
+
**DeepSeek Harness 功能坞插件**:用一张管理面板,统一注册、开关所有小功能。
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
模型余额、用量记录、模型设置、图片理解代理……这些散落的小功能,全部收进一个「功能坞」:
|
|
9
|
+
每个功能是独立模块,有注册表、有开关、有错误隔离。新功能按模块追加,老功能互不牵连。
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
> 相关功能包:`@wycto/dsh-balance-panel`、`@wycto/dsh-token-usage`、`@wycto/dsh-task-pulse`
|
|
13
|
-
> (后续按路线图吸收为中枢内的功能模块,或保持独立包并注册进中枢)。
|
|
11
|
+

|
|
14
12
|
|
|
15
13
|
---
|
|
16
14
|
|
|
17
|
-
##
|
|
15
|
+
## 功能一览
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
| 功能 | 说明 |
|
|
18
|
+
|---|---|
|
|
19
|
+
| **用量记录** | 记录全部 LLM API 调用:秒级时间筛选、Token/费用统计(峰谷计价 + 官网价目自动同步)、分组汇总、明细检索与 CSV 导出 |
|
|
20
|
+
| **模型设置** | 编辑各 Provider 模型目录:输入类型(文本/图片 + 标注)与思考强度档位;写回官方配置热生效 |
|
|
21
|
+
| **模型余额** | 展示所有模型 Provider 账户余额(5 分钟自动刷新) |
|
|
22
|
+
| **图片理解代理** | 图片识别等(visionproxy) |
|
|
23
|
+
| **心跳监视 / 主题信息** | 示例功能(纯 Client) |
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
**会话区随身小控件**:启用后,在会话输入区工具行(模型选择器左侧)显示——
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
```
|
|
27
|
+
- **模型余额**:当前选中 Provider 的账户余额(跟随模型切换实时更新),点击打开功能坞并定位到该 Provider 的余额详情;
|
|
28
|
+
- **用量记录**:当前会话的总 Token 与估算花费(10 秒静默刷新),点击打开功能坞并跳转到该会话的用量记录。
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+

|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
dsh-dock/
|
|
36
|
-
├── index.js # Host 半部:功能注册表 + 每功能生命周期(setup/dispose)+ 错误隔离
|
|
37
|
-
├── client.js # Client 半部:中枢面板(settings.section),浏览器 bundle,无需构建器
|
|
38
|
-
├── cordis.patch.yml # 组合层:insert 一行 dsh-dock
|
|
39
|
-
├── package.json # 双面程序包清单(dsh.bundle.patch + dsh.client)
|
|
40
|
-
└── scripts/publish.sh # 一键发布(登录检查 + 预览 + publish)
|
|
41
|
-
```
|
|
32
|
+
勾选「启用」即显示,点芯片跳转;每个功能可在面板页脚或设置页单独设置「会话页显示/隐藏」。
|
|
42
33
|
|
|
43
|
-
##
|
|
34
|
+
## 界面
|
|
44
35
|
|
|
45
|
-
|
|
46
|
-
| --- | --- | --- |
|
|
47
|
-
| **0.2.0** | 接入**模型余额**:拉取所有模型 Provider 账户余额并展示 | `index.js` 的 `hostSetups.balance` 实现拉取;打通 Client↔Host 联通(typert);`client.js` 的 balance 占位改为真实视图 |
|
|
48
|
-
| **0.3.0** | 接入 **Token 用量记录**:记录全部 LLM API 调用,支持时间范围/维度筛选与统计 | `hostSetups.tokenlog` 监听事件记账;面板加统计视图 |
|
|
49
|
-
| **0.4.0** | 接入**任务动画**:任务进度动画、完成/卡住通知 | 纯 Client 功能模块;如需挂对话区,在模块内注册对应 slot(如 `conversation.composer.dock`) |
|
|
50
|
-
| **0.5.0** | 开关状态**持久化**、Host↔Client 双侧注册表打通 | 状态写入持久化服务;可选依赖注册(面板不在,功能照跑) |
|
|
36
|
+
点击侧栏底部「功能坞」按钮,弹出功能面板:左侧导航 = 首页总揽 + 各功能模块,右侧内容区。
|
|
51
37
|
|
|
52
|
-
|
|
38
|
+

|
|
53
39
|
|
|
54
|
-
|
|
40
|
+
面板支持最大化 / 最小化 / 还原、标题栏拖动、右下角缩放。
|
|
55
41
|
|
|
56
|
-
|
|
57
|
-
2. `featureViews` 加同名组件(`react.createElement` 写法,可用 `ctx.get(...)` 取 Client 服务);
|
|
58
|
-
3. 需要 Host 侧逻辑的,在 `index.js` 的 `hostSetups` 加一个返回 disposer 的函数。
|
|
42
|
+
---
|
|
59
43
|
|
|
60
44
|
## 安装
|
|
61
45
|
|
|
62
|
-
|
|
46
|
+
dsh-dock 是 DeepSeek Harness(dsh)的插件,通过 dsh 的插件市场安装:
|
|
63
47
|
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
|
|
48
|
+
```bash
|
|
49
|
+
# 在 dsh 配置中启用插件(或通过 dsh 插件命令)
|
|
50
|
+
npx @deepseek-ai/dsh plugin add dsh-dock
|
|
67
51
|
```
|
|
68
52
|
|
|
69
|
-
|
|
53
|
+
或手动在 dsh 的 `cordis.patch.yml` 中声明后重启。
|
|
70
54
|
|
|
71
|
-
|
|
72
|
-
dsh web --dump-config # 查看合成层(含 dsh-dock)
|
|
73
|
-
dsh plugin --profile web remove dsh-dock # 卸载
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 从 feature-hub 迁移
|
|
55
|
+
要求:DeepSeek Harness 环境(dsh),Node.js 18+。
|
|
77
56
|
|
|
78
|
-
|
|
57
|
+
## 使用方法
|
|
79
58
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
59
|
+
1. 启动 dsh:`npx @deepseek-ai/dsh web`
|
|
60
|
+
2. 打开左侧边栏底部的 **功能坞** 按钮
|
|
61
|
+
3. 在 **设置 → 功能坞** 面板中启用/停用各功能模块
|
|
62
|
+
4. 每个功能页内可进行具体操作(余额查询、用量统计、模型目录编辑等)
|
|
84
63
|
|
|
85
|
-
|
|
64
|
+
> 功能开关为浏览器内存态,刷新页面后重置(持久化在规划中)。
|
|
86
65
|
|
|
87
|
-
##
|
|
66
|
+
## 开发:新增一个功能模块
|
|
88
67
|
|
|
89
|
-
|
|
90
|
-
- **发版**:GitHub 仓库(`github.com/wycto/dsh-dock`)打 tag 发 Release
|
|
91
|
-
- **npm 发布**(无作用域名先到先得,已占用后归本账号所有):
|
|
68
|
+
每个功能是一个 `features/<id>/` 目录,由两部分组成:
|
|
92
69
|
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
70
|
+
```
|
|
71
|
+
features/<id>/
|
|
72
|
+
host.js # 宿主半部:注册 RPC 路由 / 定时任务(纯 ESM,零构建)
|
|
73
|
+
view.js(x) # 客户端视图:渲染面板内容(自带样式,CSS 类名带前缀隔离)
|
|
97
74
|
```
|
|
98
75
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
76
|
+
在视图模块导出功能描述符:
|
|
77
|
+
|
|
78
|
+
```js
|
|
79
|
+
export const feature = {
|
|
80
|
+
id: "my-feature",
|
|
81
|
+
name: "我的功能",
|
|
82
|
+
order: 160, // 菜单排序(首页固定第一,数值越大越靠后)
|
|
83
|
+
accent: "#22c55e", // 品牌色
|
|
84
|
+
description: "…",
|
|
85
|
+
css: "…",
|
|
86
|
+
View: MyView, // 面板内容组件,收到 { ctx, feature, params }
|
|
87
|
+
HomeStat: MyStat, // 可选:首页总揽卡片统计
|
|
88
|
+
Chip: MyChip, // 可选:会话输入区小控件
|
|
89
|
+
};
|
|
90
|
+
```
|
|
102
91
|
|
|
103
|
-
|
|
92
|
+
外壳只做组装:宿主半部在 `index.js` 注册,客户端在外壳 `src/client.jsx` 装配。
|
|
93
|
+
每个模块可整体拎出单独打包发布(`scripts/extract-feature.mjs` 生成独立包骨架,
|
|
94
|
+
独立包装回后经 **dockBridge** 注册回功能坞菜单)。
|
|
104
95
|
|
|
105
|
-
##
|
|
96
|
+
## 许可
|
|
106
97
|
|
|
107
|
-
MIT
|
|
98
|
+
[MIT](LICENSE)
|