dsh-treecom 0.0.0-stage → 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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Minchuan Deng
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.md CHANGED
@@ -1,3 +1,54 @@
1
- # Temporary Holding Version
1
+ # TreeCom — 对话树
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 把一段对话的所有分叉管理成一棵可平移、可缩放的画布树。每个分支仍然是普通 DSH 会话,会正常出现在左侧工作区。
4
+
5
+ ![TreeCom 对话树界面](assets/runtime.webp)
6
+
7
+ 版本 **1.0.2** · MIT · DeepSeek Harness Web 插件
8
+
9
+ ## 功能介绍
10
+
11
+ - **两个入口**:标题栏右上角的「对话树」按钮打开右侧边栏;会话视图中的「对话树」标签页全宽显示画布和详情。
12
+ - **画布树**:根节点在上方,分支向下生长;拖动空白处平移,滚轮或触控板缩放,树可以无限延伸。
13
+ - **查看节点**:点击节点只会选中并在右侧显示详情,不会切换分支;点「回到这一轮」才会切到该分支并定位。
14
+ - **悬停预览**:鼠标停在节点上可快速查看本轮提问、上下文占用和后续轮数;移入预览框不会消失,可直接选中文字、滚动查看完整问答。
15
+ - **分叉**:在节点详情里点「分叉」创建新分支;新分支会从父节点逐渐生长出来,并自动获得焦点。空白分支可以直接在右侧的「提问」框里开始对话。
16
+ - **详情面板**:显示上下文占用、后续轮数、完整提问 / 回答,支持 Markdown 渲染、复制、重命名、归档和分叉。
17
+ - **连续轮次折叠**:没有分叉的连续轮次会合并成一个带数字的节点,点击展开;展开后可折叠上方部分。
18
+ - **左侧分组**:左侧会话按对话树分组,同一根节点的会话放在一起,可整体展开 / 收起;当前对话树带一个绿色圆点,生成中时闪烁。
19
+ - **树管理**:树文件夹和「全部对话树」列表都支持删除整棵树;删除前会确认,并归档树内所有会话。
20
+
21
+ ## 安装
22
+
23
+ `dsh plugin` 会把参数转发给 profile 目录里的 pnpm,npm 包名、`github:`、`link:`、`file:` 等 spec 都支持。
24
+
25
+ **从 npm 安装:**
26
+
27
+ ```bash
28
+ dsh plugin --profile web add dsh-treecom
29
+ ```
30
+
31
+ **从 GitHub 安装:**
32
+
33
+ ```bash
34
+ dsh plugin --profile web add github:Serenity-2026/dsh-treecom
35
+ ```
36
+
37
+ **本地开发:**
38
+
39
+ ```bash
40
+ git clone https://github.com/Serenity-2026/dsh-treecom.git
41
+ dsh plugin --profile web add link:"$PWD/dsh-treecom"
42
+ ```
43
+
44
+ 安装或更新后需要重新启动 DSH Host,并刷新 Web 页面。
45
+
46
+ ## 如何使用
47
+
48
+ 1. 点标题栏右上角的「对话树」,或切换到会话视图里的「对话树」标签页。
49
+ 2. 拖动空白区域平移画布,滚轮缩放;用左上角「回到当前」定位当前叶子,用「居中」把树移回视野。
50
+ 3. 点击任意节点查看右侧详情;点「回到这一轮」切换到该分支继续对话。
51
+ 4. 在详情里点「分叉」创建新分支。新分支会出现在左侧工作区,但当前对话区仍停留在原分支;点击新分支详情里的「回到这一轮」即可切过去。
52
+ 5. 对「新分支 / 等待提问」节点,可以直接在右侧「提问」框输入问题并发送,回答会显示在同一个「回答」框中。
53
+ 6. 用详情里的「重命名」「归档」管理分支;左侧取消归档后,分支会重新回到树里。
54
+ 7. 连续无分叉的轮次会折叠成带数字的节点,点击展开;悬停展开后的节点可只折叠上方部分。
Binary file
@@ -0,0 +1,7 @@
1
+ # treecom mounts one loader row. The row loads the Host half (the read-only
2
+ # /treecom index route); the Client half is discovered from dsh.client in
3
+ # package.json and registers the floating tree panel, the header entry, and the
4
+ # Conversation "Tree" view.
5
+ - insert:
6
+ - id: treecom
7
+ name: dsh-treecom
package/icon.svg ADDED
@@ -0,0 +1,14 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64" role="img" aria-label="TreeCom conversation tree">
2
+ <rect width="64" height="64" rx="14" fill="#1f6feb"/>
3
+ <g fill="none" stroke="#ffffff" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round">
4
+ <path d="M24 14v10a8 8 0 0 0 8 8h4"/>
5
+ <path d="M40 14v10a8 8 0 0 1-8 8h-4"/>
6
+ <path d="M32 32v18"/>
7
+ </g>
8
+ <g fill="#ffffff">
9
+ <circle cx="24" cy="12" r="4.4"/>
10
+ <circle cx="40" cy="12" r="4.4"/>
11
+ <circle cx="32" cy="52" r="4.4"/>
12
+ <circle cx="32" cy="32" r="3.2"/>
13
+ </g>
14
+ </svg>