dsh-task-groups 0.0.0-stage → 0.1.0
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 +21 -0
- package/README.en.md +153 -0
- package/README.md +152 -2
- package/cordis.patch.yml +4 -0
- package/docs/badges/dsh.svg +5 -0
- package/docs/badges/license.svg +5 -0
- package/docs/badges/node.svg +5 -0
- package/docs/images/activity.png +0 -0
- package/docs/images/groups.png +0 -0
- package/docs/images/projects.png +0 -0
- package/lib/client.js +2596 -0
- package/lib/index.d.ts +20 -0
- package/lib/index.js +194 -0
- package/package.json +69 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-task-groups contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 🗂️ DSH Task Groups
|
|
4
|
+
|
|
5
|
+
**Organize your tasks. Keep active conversations in sight.**
|
|
6
|
+
|
|
7
|
+
Custom task groups and an activity bell for the DeepSeek Harness sidebar.
|
|
8
|
+
|
|
9
|
+
[](package.json)
|
|
10
|
+
[](package.json)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
[中文](README.md) · **English**
|
|
14
|
+
|
|
15
|
+
[Preview](#preview) · [Install](#install) · [Usage](#usage) · [Report an issue](https://github.com/spike237/dsh-task-groups/issues)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<a id="preview"></a>
|
|
20
|
+
|
|
21
|
+
## ✨ Two small additions to your sidebar
|
|
22
|
+
|
|
23
|
+
Group conversations the way you work, then check the bell when several tasks are active at once.
|
|
24
|
+
|
|
25
|
+
<table>
|
|
26
|
+
<tr>
|
|
27
|
+
<th width="50%">🗂️ Task groups</th>
|
|
28
|
+
<th width="50%">🔔 Activity bell</th>
|
|
29
|
+
</tr>
|
|
30
|
+
<tr>
|
|
31
|
+
<td align="center" valign="top">
|
|
32
|
+
<p>Group by topic. Drag to arrange.</p>
|
|
33
|
+
<a href="docs/images/groups.png"><img src="docs/images/groups.png" width="380" alt="Group view with color-coded plugin and documentation groups and their tasks."></a>
|
|
34
|
+
</td>
|
|
35
|
+
<td align="center" valign="top">
|
|
36
|
+
<p>Find running, waiting and unread conversations.</p>
|
|
37
|
+
<a href="docs/images/activity.png"><img src="docs/images/activity.png" width="380" alt="Activity view with priority conversations at the top and other conversations below."></a>
|
|
38
|
+
</td>
|
|
39
|
+
</tr>
|
|
40
|
+
</table>
|
|
41
|
+
|
|
42
|
+
### 🗂️ Organize tasks your way
|
|
43
|
+
|
|
44
|
+
- **Custom groups:** name, color, collapse and expand groups of related conversations.
|
|
45
|
+
- **Drag to organize:** reorder tasks and groups, move tasks into or out of a group, and place groups between ungrouped tasks.
|
|
46
|
+
- **Group actions:** start a task inside a group, mark its conversations as read, or archive them in bulk.
|
|
47
|
+
- **Project view:** switch back to workspace-based browsing, with “Show more” to expand the task list.
|
|
48
|
+
|
|
49
|
+
<details>
|
|
50
|
+
<summary>📁 See the project view</summary>
|
|
51
|
+
|
|
52
|
+
<p align="center">
|
|
53
|
+
<a href="docs/images/projects.png"><img src="docs/images/projects.png" width="420" alt="Project view with demo-app and docs workspaces, Show more, and an ungrouped section."></a>
|
|
54
|
+
</p>
|
|
55
|
+
|
|
56
|
+
</details>
|
|
57
|
+
|
|
58
|
+
### 🔔 Keep important activity in sight
|
|
59
|
+
|
|
60
|
+
Click the bell to open the activity panel. **Running conversations, pending confirmations and unread conversations** appear under “Priority” (优先级); the rest appear under “Others” (其他).
|
|
61
|
+
|
|
62
|
+
Opening an unread conversation keeps it in the priority list so you can return to it. When you are done, click the **broom** to move eligible conversations to “Others”; running conversations and pending confirmations stay in place. Click the bell again to return to your task list.
|
|
63
|
+
|
|
64
|
+
<a id="install"></a>
|
|
65
|
+
|
|
66
|
+
## 🚀 Install
|
|
67
|
+
|
|
68
|
+
You need an existing **DeepSeek Harness** installation that has been launched at least once, **Git**, and **Node.js 20.11+**. For the default `desktop` profile on Windows:
|
|
69
|
+
|
|
70
|
+
```powershell
|
|
71
|
+
git clone https://github.com/spike237/dsh-task-groups.git
|
|
72
|
+
cd dsh-task-groups
|
|
73
|
+
node tools/enable-profile.mjs
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Restart DSH.** The sidebar will show the “Groups / Projects” toggle and the bell.
|
|
77
|
+
|
|
78
|
+
> [!NOTE]
|
|
79
|
+
> The installer backs up and updates an existing profile configuration, then links the plugin to this checkout. Keep the repository directory in place; moving it requires updating the link.
|
|
80
|
+
|
|
81
|
+
<details>
|
|
82
|
+
<summary>Other profiles, custom paths and uninstalling</summary>
|
|
83
|
+
|
|
84
|
+
Choose an existing profile:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
node tools/enable-profile.mjs --profile my-profile
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Choose a DSH data directory that already contains the corresponding `profiles/<name>/package.json`:
|
|
91
|
+
|
|
92
|
+
```powershell
|
|
93
|
+
node tools/enable-profile.mjs --home "D:\DSH" --profile desktop
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Without `--home`, the installer uses `DSH_HOME` if set, otherwise `%USERPROFILE%\.dsh`.
|
|
97
|
+
|
|
98
|
+
To uninstall from the default profile, run this command and restart DSH:
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
node tools/enable-profile.mjs --remove
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
If you installed with `--home` or `--profile`, use the same arguments when uninstalling. Uninstalling removes the plugin configuration and directory link, while keeping saved group data.
|
|
105
|
+
|
|
106
|
+
</details>
|
|
107
|
+
|
|
108
|
+
<a id="usage"></a>
|
|
109
|
+
|
|
110
|
+
## 🧭 Usage
|
|
111
|
+
|
|
112
|
+
Start with **`⋯` → New group (新建分组)** at the top of the sidebar, then drag related tasks into it.
|
|
113
|
+
|
|
114
|
+
| Action | How |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| Switch views | Click “Groups / Projects” (分组 / 项目) |
|
|
117
|
+
| Rename or recolor a group | Click its colored `#` icon |
|
|
118
|
+
| Start a task in a group | Click the group’s `⊕` button |
|
|
119
|
+
| Reorder or move tasks | Drag a task or group and follow the insertion line |
|
|
120
|
+
| Check activity | Click the bell; click again to go back |
|
|
121
|
+
| Clear the activity list | Click the broom in the activity panel |
|
|
122
|
+
| Search tasks | Top `⋯` → Search tasks (搜索任务) |
|
|
123
|
+
| More task actions | Right-click to rename, pin, mark unread, branch, move to a group or archive |
|
|
124
|
+
|
|
125
|
+
Deleting a group removes its assignments and keeps its tasks. To archive conversations in bulk, use the archive action in the group’s `⋯` menu.
|
|
126
|
+
|
|
127
|
+
## 🛠️ Development and data
|
|
128
|
+
|
|
129
|
+
Groups, task assignments, ordering and view preferences are saved to `$DSH_HOME/task-groups/state.json`, or `.dsh` under your home directory when `DSH_HOME` is unset. The Host validates and writes state atomically so it survives restarts.
|
|
130
|
+
|
|
131
|
+
<details>
|
|
132
|
+
<summary>Run checks</summary>
|
|
133
|
+
|
|
134
|
+
Host state persistence and validation:
|
|
135
|
+
|
|
136
|
+
```powershell
|
|
137
|
+
npm run smoke
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
UI checks need a development environment with `react`, `react-dom` and `jsdom` installed. Point `DSH_DEV_CHECKOUT` to that environment’s `package.json`:
|
|
141
|
+
|
|
142
|
+
```powershell
|
|
143
|
+
$env:DSH_DEV_CHECKOUT = "D:\path\to\dev-project\package.json"
|
|
144
|
+
npm test
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Covers groups, drag and drop, project view, activity and menus.
|
|
148
|
+
|
|
149
|
+
</details>
|
|
150
|
+
|
|
151
|
+
## 📄 License
|
|
152
|
+
|
|
153
|
+
[MIT](LICENSE)
|
package/README.md
CHANGED
|
@@ -1,3 +1,153 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# 🗂️ DSH Task Groups
|
|
4
|
+
|
|
5
|
+
**给任务分个组,把正在发生的事放到眼前。**
|
|
6
|
+
|
|
7
|
+
为 DeepSeek Harness 侧边栏添加自定义任务分组和活动铃铛。
|
|
8
|
+
|
|
9
|
+
[](package.json)
|
|
10
|
+
[](package.json)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
**中文** · [English](README.en.md)
|
|
14
|
+
|
|
15
|
+
[功能预览](#preview) · [快速安装](#install) · [使用指南](#usage) · [反馈问题](https://github.com/spike237/dsh-task-groups/issues)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<a id="preview"></a>
|
|
20
|
+
|
|
21
|
+
## ✨ 两个小功能,让侧边栏更好用
|
|
22
|
+
|
|
23
|
+
任务多了,按自己的习惯整理;同时开着多个会话,点一下铃铛查看进展。
|
|
24
|
+
|
|
25
|
+
<table>
|
|
26
|
+
<tr>
|
|
27
|
+
<th width="50%">🗂️ 任务分组</th>
|
|
28
|
+
<th width="50%">🔔 活动铃铛</th>
|
|
29
|
+
</tr>
|
|
30
|
+
<tr>
|
|
31
|
+
<td align="center" valign="top">
|
|
32
|
+
<p>按主题归类,自由拖拽排序。</p>
|
|
33
|
+
<a href="docs/images/groups.png"><img src="docs/images/groups.png" width="380" alt="任务分组视图:用不同颜色区分插件与文档分组,组内展示相关任务。"></a>
|
|
34
|
+
</td>
|
|
35
|
+
<td align="center" valign="top">
|
|
36
|
+
<p>集中查看运行中、待确认和未读会话。</p>
|
|
37
|
+
<a href="docs/images/activity.png"><img src="docs/images/activity.png" width="380" alt="活动视图:需要关注的会话集中显示在优先级区域,其余会话显示在其他区域。"></a>
|
|
38
|
+
</td>
|
|
39
|
+
</tr>
|
|
40
|
+
</table>
|
|
41
|
+
|
|
42
|
+
### 🗂️ 按自己的方式整理任务
|
|
43
|
+
|
|
44
|
+
- **自定义分组**:把相关会话放在一起,为分组命名、换色,随时折叠或展开。
|
|
45
|
+
- **拖拽整理**:调整任务和分组的顺序;拖进分组即可归类,拖到组外即可移出。分组也可以放在未分组任务之间。
|
|
46
|
+
- **组内操作**:直接新建任务,或批量标为已读、归档会话。
|
|
47
|
+
- **保留项目视图**:随时切回按工作区查看,继续使用「显示更多」展开任务列表。
|
|
48
|
+
|
|
49
|
+
<details>
|
|
50
|
+
<summary>📁 查看项目视图</summary>
|
|
51
|
+
|
|
52
|
+
<p align="center">
|
|
53
|
+
<a href="docs/images/projects.png"><img src="docs/images/projects.png" width="420" alt="项目视图:按 demo-app、docs 等工作区展示任务,保留显示更多和未分组区域。"></a>
|
|
54
|
+
</p>
|
|
55
|
+
|
|
56
|
+
</details>
|
|
57
|
+
|
|
58
|
+
### 🔔 一眼找到需要关注的会话
|
|
59
|
+
|
|
60
|
+
点击侧边栏的小铃铛,打开「活动」面板。**运行中、等待确认和未读的会话**会集中在「优先级」,其余会话列在「其他」。
|
|
61
|
+
|
|
62
|
+
打开未读会话后,它仍会留在「优先级」,方便来回查看。处理完后,点击右上角的**扫帚(清除已读)**,将可清理的会话移入「其他」;运行中或等待确认的会话会继续保留。再次点击铃铛即可返回任务列表。
|
|
63
|
+
|
|
64
|
+
<a id="install"></a>
|
|
65
|
+
|
|
66
|
+
## 🚀 快速安装
|
|
67
|
+
|
|
68
|
+
需要已安装并运行过的 **DeepSeek Harness**,以及 **Git** 和 **Node.js 20.11+**。以下以 Windows 的默认 `desktop` profile 为例:
|
|
69
|
+
|
|
70
|
+
```powershell
|
|
71
|
+
git clone https://github.com/spike237/dsh-task-groups.git
|
|
72
|
+
cd dsh-task-groups
|
|
73
|
+
node tools/enable-profile.mjs
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**重启 DSH**,侧边栏出现「分组 / 项目」切换和小铃铛后即可使用。
|
|
77
|
+
|
|
78
|
+
> [!NOTE]
|
|
79
|
+
> 安装脚本会备份并修改已有的 profile 配置,将插件链接到当前仓库目录。安装后请保留这个目录;如果移动了目录,需要重新设置链接。
|
|
80
|
+
|
|
81
|
+
<details>
|
|
82
|
+
<summary>其他 profile、自定义路径与卸载</summary>
|
|
83
|
+
|
|
84
|
+
指定已有的 profile:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
node tools/enable-profile.mjs --profile my-profile
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
指定 DSH 数据目录(其中需已有对应的 `profiles/<name>/package.json`):
|
|
91
|
+
|
|
92
|
+
```powershell
|
|
93
|
+
node tools/enable-profile.mjs --home "D:\DSH" --profile desktop
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
未传入 `--home` 时,脚本优先使用环境变量 `DSH_HOME`,否则使用 `%USERPROFILE%\.dsh`。
|
|
97
|
+
|
|
98
|
+
卸载默认 profile 中的插件,然后重启 DSH:
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
node tools/enable-profile.mjs --remove
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
如果安装时指定了 `--home` 或 `--profile`,卸载时使用相同参数。卸载会移除插件配置与目录链接,保留分组数据。
|
|
105
|
+
|
|
106
|
+
</details>
|
|
107
|
+
|
|
108
|
+
<a id="usage"></a>
|
|
109
|
+
|
|
110
|
+
## 🧭 使用指南
|
|
111
|
+
|
|
112
|
+
从侧边栏右上角的 **`⋯` → 新建分组** 开始,再把相关任务拖进去。
|
|
113
|
+
|
|
114
|
+
| 想做什么 | 怎么操作 |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| 切换整理方式 | 点击顶部「分组 / 项目」 |
|
|
117
|
+
| 修改分组名称或颜色 | 点击分组前的彩色 `#` 图标 |
|
|
118
|
+
| 在组内新建任务 | 点击分组右侧的 `⊕` |
|
|
119
|
+
| 调整顺序或所属分组 | 拖动任务或分组,按插入线放置 |
|
|
120
|
+
| 查看当前活动 | 点击小铃铛;再次点击返回 |
|
|
121
|
+
| 清理活动列表 | 点击活动面板右上角的扫帚 |
|
|
122
|
+
| 搜索任务 | 顶部 `⋯` → 搜索任务 |
|
|
123
|
+
| 更多任务操作 | 右键任务,可重命名、置顶、标记未读、分支、移动到分组或归档 |
|
|
124
|
+
|
|
125
|
+
删除分组只会解除任务的分组关系,任务仍然保留。需要批量归档时,使用分组 `⋯` 菜单中的归档操作。
|
|
126
|
+
|
|
127
|
+
## 🛠️ 开发与数据
|
|
128
|
+
|
|
129
|
+
分组、任务归属、排序和视图偏好保存在 `$DSH_HOME/task-groups/state.json`;未设置 `DSH_HOME` 时使用用户目录下的 `.dsh`。由 Host 校验并原子写入,重启后可恢复。
|
|
130
|
+
|
|
131
|
+
<details>
|
|
132
|
+
<summary>运行检查</summary>
|
|
133
|
+
|
|
134
|
+
Host 状态读写与校验:
|
|
135
|
+
|
|
136
|
+
```powershell
|
|
137
|
+
npm run smoke
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
界面渲染与交互检查需要一个已安装 `react`、`react-dom` 和 `jsdom` 的开发环境。将 `DSH_DEV_CHECKOUT` 指向该环境的 `package.json`:
|
|
141
|
+
|
|
142
|
+
```powershell
|
|
143
|
+
$env:DSH_DEV_CHECKOUT = "D:\path\to\dev-project\package.json"
|
|
144
|
+
npm test
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
覆盖分组、拖拽、项目视图、活动面板与菜单交互。
|
|
148
|
+
|
|
149
|
+
</details>
|
|
150
|
+
|
|
151
|
+
## 📄 许可
|
|
152
|
+
|
|
153
|
+
[MIT](LICENSE)
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="82" height="20" role="img" aria-label="DSH: Plugin">
|
|
2
|
+
<title>DSH: Plugin</title>
|
|
3
|
+
<path fill="#555" d="M0 0h34v20H0z"/><path fill="#4a90d9" d="M34 0h48v20H34z"/>
|
|
4
|
+
<g fill="#fff" font-family="Verdana,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle"><text x="17" y="14">DSH</text><text x="58" y="14">Plugin</text></g>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="20" role="img" aria-label="License: MIT">
|
|
2
|
+
<title>License: MIT</title>
|
|
3
|
+
<path fill="#555" d="M0 0h54v20H0z"/><path fill="#64748b" d="M54 0h34v20H54z"/>
|
|
4
|
+
<g fill="#fff" font-family="Verdana,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle"><text x="27" y="14">License</text><text x="71" y="14">MIT</text></g>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="110" height="20" role="img" aria-label="Node.js: 20.11+">
|
|
2
|
+
<title>Node.js: 20.11+</title>
|
|
3
|
+
<path fill="#555" d="M0 0h54v20H0z"/><path fill="#339933" d="M54 0h56v20H54z"/>
|
|
4
|
+
<g fill="#fff" font-family="Verdana,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle"><text x="27" y="14">Node.js</text><text x="82" y="14">20.11+</text></g>
|
|
5
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|