@lyhue1991/dsh-soup 0.2.0 → 0.4.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/README.md +98 -104
- package/lib/client.js +477 -82
- package/lib/index.js +78 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,140 +1,134 @@
|
|
|
1
|
-
# dsh-soup
|
|
2
|
-
|
|
3
|
-
一个可安装的 DSH(DeepSeek Harness)插件:在会话右侧以**并列网格列**的形式提供项目文件树,与左侧工作区同款配色、同宽(默认 280px,可拖拽 264–420px)。文件「预览」在会话区新增**「预览」标签页**(原生 `conversation.view`,与 对话/轨迹 同级),采用**只读预览**:Markdown / HTML / JSON / CSV·TSV 专属渲染、图片预览、其余纯文本(不提供编辑保存)。并附带**模型吞吐徽标**(输入框正上方实时显示「正在等待模型...」与彩色 `t/s` 速率)与**GoalBar 多行展示**(把原生单行截断 GoalBar 放开为多行完整显示)。**三平台通用**(macOS / Linux / Windows)。
|
|
4
|
-
|
|
5
|
-
## 功能
|
|
6
|
-
|
|
7
|
-
### 文件标签页
|
|
8
|
-
- **入口**:资源管理器中右键「👁 预览」或双击文件,会话头部自动出现「预览」tab(原生 `conversation.view` 槽位,`ui-trajectory` 同款注册方式,不改 DSH 源码)。
|
|
9
|
-
- **多文件**:单个「文件」tab 内部子 tab 条管理多个已开文件;切走再切回内容不丢;子 tab 可单独关闭。
|
|
10
|
-
- **只读预览**:不提供编辑与保存(宿主也无 `write` 动作),所见即磁盘内容,⟳ 重载刷新。
|
|
11
|
-
- **Markdown 预览**:复用 DSH 客户端自带的不可信渲染器 `MarkdownText`(micromark 管线,禁不安全协议/相对链接;旧版宿主缺该模块时自动回退纯文本)。
|
|
12
|
-
- **HTML 预览**:可交互沙箱 iframe(`allow-scripts/popups/forms/modals`,**不给 `allow-same-origin`**——页面脚本跑在 opaque origin,触不到 GUI 的 DOM/存储/Cookie)+ `srcdoc` 注入 + `no-referrer`。
|
|
13
|
-
- **JSON 预览**:解析后 pretty-print + 轻量语法着色(键/字符串/数字/布尔/null);解析失败回退纯文本并提示。
|
|
14
|
-
- **CSV / TSV 预览**:RFC 4180 引号感知解析(内嵌逗号/换行/`""` 转义)、首行作表头(sticky)、最多预览 500 行 × 64 列并提示截断。
|
|
15
|
-
- **代码语法高亮**:常见语言(js/ts/jsx/tsx、python、go、rust、java、c/cpp、c#、ruby、php、kotlin、swift、shell、yaml/toml/ini、css/scss/less、sql、xml、lua 等)复用 DSH 的 `CodeBlock`(Shiki JS 引擎,主题跟随 `--shiki-*` token),扩展名映射对齐 DSH 读卡片;语法包懒加载——首帧可能纯文本,加载完成后自动补上高亮;超 40 万字符的大文件与未知扩展名回退纯文本。
|
|
16
|
-
- **PDF 预览**:整文件 base64(≤20MB)交给浏览器原生 PDF 查看器渲染——JupyterLab pdf-extension 同思路(base64 → Blob → object 嵌入,含缩放/搜索工具栏);超限提示用系统打开。
|
|
17
|
-
- **Notebook 预览(.ipynb)**:GitHub 风格静态渲染——markdown 单元走 `MarkdownText`、代码单元走 `CodeBlock` 高亮、gutter 显示执行序号;输出按 MIME 择优:image/png·jpeg·gif·svg 内联、text/html 沙箱 iframe(禁脚本)、stream/error 分别以输出块与红块 traceback 展示(剥离 ANSI);兼容 nbformat 4 与 v3(worksheets)。读取上限放宽至 20MB(含图输出的 base64 膨胀)。
|
|
18
|
-
- **会话隔离**:预览列表跟随当前会话工作目录;切换到其他项目的会话时,范围外的预览 tab 自动关闭。
|
|
19
|
-
- **FIFO 上限**:同时最多 5 个预览 tab,打开第 6 个时自动关闭最早的一个(先进先出)。
|
|
20
|
-
- **图片预览**:png/jpg/gif/webp/svg 等按 base64 内联展示(上限 8 MB)。
|
|
21
|
-
- **二进制**:NUL 嗅探判定后只读提示;文本超过 2 MB 截断展示并提示。
|
|
22
|
-
|
|
23
|
-
### 资源管理器
|
|
24
|
-
- **右侧详情列(details)文件树**:与会话区真正并列(三列网格 `侧栏 | 会话 | 资源管理器`),不悬浮、不遮挡。
|
|
25
|
-
- **宽度与左侧工作区完全一致**:默认 280px,拖左边缘在 264–420px 间调整(shell 自带 details 列被硬限制在 300–520px,本插件直接改写网格轨实现同宽)。
|
|
26
|
-
- **切换按钮**:有 Session log 时保持在「Session log」胶囊右侧;空白新会话则在输入框上方右端显示 📁,与 workspace / preset 控件同一水平线。
|
|
27
|
-
- **上传与分块**:拖入/选择多文件上传;超过 1MB 自动走分块通道(JupyterLab 同款语义:首块覆盖、后续追加),面板路径栏下方显示实时进度行(队列 n/m + 百分比),完成后短暂提示 ✓。
|
|
28
|
-
- **文件类型图标**:采用 JupyterLab `ui-components` 的 filetype SVG 集(BSD-3-Clause)——notebook 橙、markdown 紫、json 黄、pdf 红、表格绿等固定品牌色,16px 渲染;未命中扩展名按「已知代码语言 → 文本编辑器图标,其余 → 空白文件」兜底。
|
|
29
|
-
- **跟随会话**:默认展示当前会话工作目录(`session.header.cwd`),切换会话/工作区自动跟随;路径栏只读展示,不可跳转。
|
|
30
|
-
- **文件操作**(右键菜单):预览、用系统打开、重命名、移到废纸篓、复制完整路径、⬇ 下载到本机(菜单末项)——POST 换取一次性 2 分钟时效票据 URL;≤100MB 页面内 fetch 流式进度 + Blob 另存(进度行同上传),>100MB 浏览器原生下载(零内存,提示浏览器接管);空白处右键可刷新。
|
|
31
|
-
- **多选**:⌘/Ctrl 加选、Shift 连选;多选时批量移到废纸篓、批量拖拽移动。
|
|
32
|
-
- **拖拽**:文件/文件夹拖到目录移动;系统文件拖入上传。
|
|
33
|
-
- **交互**:单击选中、双击文件夹展开/收起、双击文件系统打开、⌘ 打开文件、F2/回车/Delete/Escape 等键位习惯(行内重命名选中扩展名前半段)。
|
|
34
|
-
|
|
35
|
-
### 模型吞吐徽标
|
|
36
|
-
- 输入框**正上方居中**显示,运行中(`llm/stream` 流期间)出现、结束后自动消失。
|
|
37
|
-
- **等待阶段**:`正在等待模型...` 灰色文字,省略号 `.`→`..`→`...` 原地循环(文字不滚动)。
|
|
38
|
-
- **流式阶段**:token 计数(向下箭头)+ 彩色 `xx.x t/s` 徽标(≥50 青 / ≥30 绿 / ≥15 黄 / 其余红)。
|
|
39
|
-
- **数据源**:Host 包 `llm/stream` waterfall 实时统计真实 chunk/token(优先 usage 的 `outputTokens`,退化 CJK 字符估算),比浏览器端估算更准。
|
|
40
|
-
|
|
41
|
-
### GoalBar 多行展示
|
|
42
|
-
- 在 DSH 原生 GoalBar 基础上**仅调整展示**:把单行截断(`text-overflow: ellipsis`)放开为**多行完整显示**(`white-space: pre-wrap`),编辑控件从 `input` 改为 `textarea`。不改 DSH 源码,用 `conversation.input.dock` 槽位同 id + 更低 priority 遮蔽默认实现。
|
|
43
|
-
- **数据与工具**:完全复用原生 goal projection 与原生 `create_goal` / `get_goal` / `update_goal` 工具,不替换、不遮蔽。
|
|
44
|
-
- **操作按钮**:暂停 / 恢复 / 编辑 / 清除(与原生 GoalBar 一致)。
|
|
45
|
-
- **轮次**:显示原生 goal projection 的 `roundsStarted/maxGoalRounds`。
|
|
46
|
-
- **编辑**:点击 ✏️ 进入 textarea 编辑,`Ctrl/⌘ + Enter` 保存、`Esc` 取消。
|
|
1
|
+
# dsh-soup
|
|
47
2
|
|
|
48
|
-
|
|
3
|
+
> DeepSeek Harness 本身是一大锅汤——营养丰富,但尝起来略显寡淡,不太好喝。dsh-soup 给它加上点 UI 调料,让它变得美味起来。
|
|
49
4
|
|
|
50
|
-
|
|
5
|
+
## 为什么叫 soup
|
|
51
6
|
|
|
52
|
-
|
|
53
|
-
# 安装最新版(npm 包名 @lyhue1991/dsh-soup)
|
|
54
|
-
dsh plugin add @lyhue1991/dsh-soup
|
|
55
|
-
```
|
|
7
|
+
DSH(DeepSeek Harness)功能很强:会话、工具、轨迹、Goal 一应俱全,营养都在汤里。但 UI 上略显寡淡——文件散在终端里、预览要跳出去、模型在跑你却看不到速度、长一点的目标被截成一行省略号。
|
|
56
8
|
|
|
57
|
-
|
|
9
|
+
**dsh-soup** 不重写 DSH,而是像下厨一样给这锅汤加几样调料:
|
|
58
10
|
|
|
59
|
-
|
|
11
|
+
- 🧅 **葱** —— 右侧文件树,提鲜点缀,让项目结构在会话旁长出来;
|
|
12
|
+
- 🫚 **姜** —— 会话内「预览」tab,去腥增香,Markdown / 代码 / 图片 / PDF / Notebook 就地看;
|
|
13
|
+
- 🧄 **蒜** —— 多行 GoalBar,味重提味,把那条总被截断的目标条熬成完整一行行;
|
|
14
|
+
- 🧂 **盐** —— 输入框上方的实时 `t/s` 速率徽标,百味之首,虽小却提味,实时知道模型跑得多快。
|
|
60
15
|
|
|
61
|
-
|
|
16
|
+
四样调料,一个插件,三平台通用(macOS / Linux / Windows)。装上之后——DSH 还是那锅汤,只是变得美味了。
|
|
62
17
|
|
|
63
|
-
|
|
18
|
+

|
|
64
19
|
|
|
65
|
-
|
|
66
|
-
- 宿主半区新增 `read`(文本截断读取 / 图片 base64 / NUL 二进制嗅探)动作,走 `node:fs/promises`。
|
|
67
|
-
- 单 tab 内子 tab 条管理多文件;只读预览(md/html/json/csv 渲染 + 纯文本兜底)、⟳ 重载;图片内联预览。
|
|
68
|
-
- 右键菜单第一项为「👁 预览」(标签页展示),原「🖥 用系统打开」保留为第二项。
|
|
20
|
+
## 速览
|
|
69
21
|
|
|
70
|
-
|
|
22
|
+
| 调料 | 是什么 | 一句话 |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| 🧅 右侧文件树 | 和左侧工作区并列的右列文件浏览器 | 提鲜点缀,结构在旁长出来 |
|
|
25
|
+
| 🫚 会话内预览 | 会话区顶部新增「预览」标签页 | 去腥增香,内容就地入味 |
|
|
26
|
+
| 🧄 多行 GoalBar | 不再被截断的多行目标条 | 味重提味,目标完整入味 |
|
|
27
|
+
| 🧂 速率徽标 | 输入框上方的彩色 `t/s` 指示 | 百味之首,小而提味 |
|
|
71
28
|
|
|
72
|
-
|
|
73
|
-
- 流式输出开始后立即显示 token 计数,不再因速率暖机窗口(0.5s)而停留在「正在等待模型...」(此前短输出全程显示等待)。
|
|
74
|
-
- 速率改为**滑动窗口瞬时值**(近 2s 采样),不再是从首 chunk 起的累计平均——中途停顿不会把 t/s 慢慢摊到个位数。
|
|
75
|
-
- 新增**停顿检测**:流中超过 2s 无新 chunk 时回到「正在等待模型...」。
|
|
29
|
+
---
|
|
76
30
|
|
|
77
|
-
|
|
31
|
+
## 它能给你什么
|
|
78
32
|
|
|
79
|
-
|
|
33
|
+
### 🧅 右侧文件树(主打 · 葱 · 提鲜点缀)
|
|
80
34
|
|
|
81
|
-
|
|
35
|
+
一个真正和左侧工作区并列的文件浏览器——不悬浮、不遮挡,配色与宽度都与左侧一致(默认 280px,拖左缘在 264–420px 间调整)。
|
|
82
36
|
|
|
83
|
-
-
|
|
84
|
-
-
|
|
37
|
+
- **跟随会话**:自动展示当前会话的工作目录,切会话/工作区时跟着走。
|
|
38
|
+
- **右键菜单**:预览、用系统打开、重命名、移到废纸篓、复制完整路径、下载到本机。
|
|
39
|
+
- **多选与拖拽**:⌘/Ctrl 加选、Shift 连选;文件拖进目录即移动;系统文件拖入即上传(>1MB 自动分块,带实时进度)。
|
|
40
|
+
- **类型图标**:按品牌色区分文件类型(notebook 橙、markdown 紫、json 黄、pdf 红…)。
|
|
41
|
+
- **沙箱围栏**:所有文件操作只能落在你的工作区与会话目录内,越界自动拒绝。
|
|
42
|
+
- **自动刷新**:每 3 秒轻量探测一次目录签名(mtime),有变化才重拉——agent 或终端里的文件增删改无需手动刷新即可出现;面板关闭且无预览时零开销;宿主不可达(如 DSH 重启中)自动指数退避(封顶 60s)。
|
|
43
|
+
- **一键刷新**:顶部 ⟳ 重拉整个文件树,已展开的子目录保持展开不收起。
|
|
85
44
|
|
|
86
|
-
###
|
|
45
|
+
### 🫚 会话内文件预览(主打 · 姜 · 去腥增香)
|
|
87
46
|
|
|
88
|
-
|
|
47
|
+
双击文件、或右键「👁 预览」,会话区顶部就会新增一个**「预览」标签页**,和「对话 / 轨迹」同级——看文件不用跳出当前会话。
|
|
89
48
|
|
|
90
|
-
-
|
|
49
|
+
- **多文件子标签**:单个「预览」tab 内用子标签条管理多个文件,切走再切回内容不丢;最多同时开 5 个,超出按先进先出挤掉最早的。
|
|
50
|
+
- **只读预览**(⟳ 可重载,不提供编辑/保存),按类型自动选渲染方式:
|
|
51
|
+
- **Markdown**:渲染为富文本(复用 DSH 聊天同款渲染器)。
|
|
52
|
+
- **HTML**:可交互沙箱(脚本被隔离,碰不到 GUI 的 DOM/存储)。
|
|
53
|
+
- **JSON**:格式化 + 语法着色。
|
|
54
|
+
- **CSV / TSV**:表格视图(引号感知、首行作表头、最多 500 行 × 64 列)。
|
|
55
|
+
- **代码**:常见语言语法高亮(Shiki,主题跟随 DSH 明暗)。
|
|
56
|
+
- **PDF**:浏览器原生查看器(≤20MB,含缩放/搜索)。
|
|
57
|
+
- **Notebook(.ipynb)**:GitHub 风格静态渲染(代码高亮 + 图片/输出内联)。
|
|
58
|
+
- **图片**:png/jpg/gif/webp/svg 等内联展示(≤8MB)。
|
|
59
|
+
- **其余**:二进制给出提示,超大文本截断为纯文本。
|
|
60
|
+
- **跟随会话**:切到别的项目时,范围外的预览自动关闭。
|
|
61
|
+
- **自动重读**:正在看的文件被外部(agent / 编辑器)修改时,预览内容几秒内自动更新,无需手动点「⟳ 重载」。
|
|
91
62
|
|
|
92
|
-
###
|
|
63
|
+
### 🧄 多行 GoalBar(附赠 · 蒜 · 味重提味)
|
|
93
64
|
|
|
94
|
-
|
|
95
|
-
- **模型吞吐徽标**:输入框正上方显示「正在等待模型...」(省略号 1→2→3 循环)与彩色 `t/s` 徽标,数据来自 `llm/stream` 真实流。
|
|
65
|
+
把 DSH 原生那条总是被截断成一行、末尾 `…` 的 GoalBar,放开成**多行完整显示**,编辑控件也从单行 `input` 换成 `textarea`。
|
|
96
66
|
|
|
97
|
-
|
|
67
|
+
- **数据与工具完全复用原生**:goal 的增删改查仍走 DSH 原生 `create_goal` / `get_goal` / `update_goal`,不替换、不遮蔽数据。
|
|
68
|
+
- **操作一致**:暂停 / 恢复 / 编辑 / 清除按钮与原生 GoalBar 相同;编辑时 `Ctrl/⌘ + Enter` 保存、`Esc` 取消。
|
|
69
|
+
- **不改 DSH 源码**:以更低优先级遮蔽默认实现,主题跟随桌面明暗。
|
|
98
70
|
|
|
99
|
-
|
|
100
|
-
- 修复浏览器半区的布局实例引用,供文件树面板的布局操作正常使用。
|
|
71
|
+
### 🧂 模型实时速率徽标(附赠 · 盐 · 百味之首)
|
|
101
72
|
|
|
102
|
-
|
|
73
|
+
输入框正上方的一枚小徽标,模型生成时出现、结束自动消失——让你对「现在到底在等还是在跑、跑得多快」有直观感受。
|
|
74
|
+
|
|
75
|
+
- **等待阶段**:灰色「正在等待模型...」(省略号 1→2→3 原地循环)。
|
|
76
|
+
- **流式阶段**:token 计数 + 彩色 `t/s` 速率(≥50 青 / ≥30 绿 / ≥15 黄 / 其余红)。
|
|
77
|
+
- **数据可信**:来自模型真实流(不是浏览器端估算);用近 2 秒滑动窗口算瞬时速率,中途停顿会回到等待态,不会被摊成个位数。
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 安装
|
|
82
|
+
|
|
83
|
+
> 需要 DSH Desktop(或任何支持 `dsh plugin add` 的 DSH 安装)。
|
|
103
84
|
|
|
104
85
|
```sh
|
|
105
|
-
|
|
106
|
-
cd dsh-soup
|
|
107
|
-
# 纯 JS 产物,无需构建:
|
|
108
|
-
# lib/index.js —— 宿主半区(webServer 路由 /api/dsh-soup,含 llm/stream 统计)
|
|
109
|
-
# lib/client.js —— 浏览器半区(__ModuleLoader__ 工厂,内联 CSS)
|
|
86
|
+
dsh plugin add @lyhue1991/dsh-soup
|
|
110
87
|
```
|
|
111
88
|
|
|
112
|
-
|
|
89
|
+
或在 DSH Desktop「设置 → 插件 → 插件市场」搜索 **dsh-soup** 安装。安装后**重启 DSH** 即可生效。
|
|
113
90
|
|
|
114
|
-
##
|
|
91
|
+
## 上手
|
|
115
92
|
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
|
|
121
|
-
|
|
93
|
+
- **打开文件树**:点击 Session log 右侧的 📁;空白新会话则在输入框上方右端找 📁。
|
|
94
|
+
- **预览文件**:在文件树里双击文件,或右键选「👁 预览」。
|
|
95
|
+
- **看速率**:向任意会话发一条消息,输入框上方即出现徽标。
|
|
96
|
+
- **多行 GoalBar**:创建 goal 后自动以多行展示。
|
|
97
|
+
|
|
98
|
+
## 更新日志
|
|
122
99
|
|
|
123
|
-
|
|
100
|
+
- **0.4.0(当前)** —
|
|
101
|
+
- **语言适配(i18n)**:dsh-soup 全部文案(资源管理器、预览页、右键菜单、上传/下载、速度徽标、GoalBar)跟随 DSH 通用设置的语言切换(zh/en),切换即时生效。
|
|
102
|
+
- **预览 tab 纯阅读模式**:激活预览时隐藏底部输入框、「N 轮 · M 步」统计行、GoalBar 与速度徽标——整屏干净内容区,切回对话/轨迹恢复。
|
|
103
|
+
- **0.3.0** —
|
|
104
|
+
- **Markdown 预览渲染相对路径图片**:`` 经同源 `/api/dsh-soup/img` 端点内联加载(confine 围栏 + 仅图片类型 + 拒跨站)。
|
|
105
|
+
- **自动刷新**:资源管理器与预览页每 3 秒轻量探测目录/文件签名(mtime),变了才重拉;面板关闭且无预览时零开销;宿主不可达时指数退避(封顶 60s)。
|
|
106
|
+
- **顶部 ⟳ 刷新按钮**:重拉整棵树并保持已展开子目录不收起;空白右键「刷新」项同步升级为同一枚图标。
|
|
107
|
+
- **工具栏按钮升级**:头部 ⟳/⬆/✕ 与预览「重载」对齐 JupyterLab 设计(26px 触达区 + SVG 图标,BSD-3 引用);修复关闭按钮渲染异常。
|
|
108
|
+
- **0.2.0** — 改名 `dsh-tree → dsh-soup`(npm 包 `@lyhue1991/dsh-soup`)。
|
|
109
|
+
- **0.1.18** — 下载进度行 + 完成通知自动消失。
|
|
110
|
+
- **0.1.17** — 大文件流式下载(一次性票据 URL + 流式发送),替代 base64-over-JSON,任意大小零内存放大。
|
|
111
|
+
- **0.1.16** — 下载菜单项 + 复制完整路径修复 + 目录展开态图标。
|
|
112
|
+
- **0.1.15** — 只读文件预览系统:会话区新增「预览」tab(md/html/json/csv·tsv 渲染 + 图片/PDF/Notebook/代码高亮 + 纯文本兜底);宿主新增 `read` 动作;路由安全加固。
|
|
113
|
+
- **0.1.12** — 吞吐徽标状态修复:流式即显 token 计数、滑动窗口瞬时 `t/s`、停顿检测回等待态。
|
|
114
|
+
- **0.1.11** — 空白新会话入口(输入框上方右端 📁)。
|
|
115
|
+
- **0.1.10** — GoalBar 改用原生 goal 工具 + 多行展示(textarea)。
|
|
116
|
+
- **0.1.7** — 速度徽标稳定化(贴附 Deep diving 状态行)。
|
|
117
|
+
- **0.1.5** — 跨平台:文件核心走 `node:fs`;新增模型吞吐徽标。
|
|
118
|
+
- **0.1.3** — 修复 details 插槽优先级与布局实例引用。
|
|
124
119
|
|
|
125
|
-
|
|
126
|
-
- **路径围栏**:除 `list` 走沙箱 `fs.resolve` 外,所有具名文件操作(`read`/`move`/`trash`/`open`/`create`/`upload`)先经 `confine()`:realpath 解析后必须落在「workspace 根 ∪ 所有已知会话 cwd」子树内(请求可携带 sessionId,供新会话注册滞后时直查其 cwd 兜底;list/read/download 遇竞态 403 自动重试),越界返回 403。realpath 解析可防符号链接逃逸,且容忍目标末级尚不存在(新建/上传/移动目的地)。已知残留:confine 与实际操作之间存在理论上的 TOCTOU 窗口(符号链接竞态),Node 可移植 API 无法根除。
|
|
127
|
-
- **文件名校验**:`create` 与 `upload` 的 `name` 一律拒绝 `.`、`..`、路径分隔符与 NUL,杜绝 `../` 穿越。
|
|
120
|
+
## 开发
|
|
128
121
|
|
|
129
|
-
|
|
122
|
+
纯 JS 产物,无需构建:
|
|
130
123
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
| Linux | `xdg-open` | `gio trash`(回退 `trash-cli`) | `node:fs` |
|
|
135
|
-
| Windows | `cmd /c start` | PowerShell `Shell.Application`(回收站) | `node:fs` |
|
|
124
|
+
- `lib/index.js` — 宿主半区(注册 `/api/dsh-soup` 文件操作路由 + `llm/stream` 速率统计)。
|
|
125
|
+
- `lib/client.js` — 浏览器半区(右侧文件树面板 + 预览 tab + 速率徽标 + 多行 GoalBar,内联 CSS)。
|
|
126
|
+
- `cordis.patch.yml` — 在组合中插入 `ui-dsh-soup`。
|
|
136
127
|
|
|
137
|
-
|
|
128
|
+
```sh
|
|
129
|
+
git clone https://github.com/lyhue1991/dsh-soup.git
|
|
130
|
+
cd dsh-soup
|
|
131
|
+
```
|
|
138
132
|
|
|
139
133
|
## 许可证
|
|
140
134
|
|