dsh-vscode-workbench 0.1.6 → 0.1.8
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.en.md +16 -2
- package/README.md +18 -2
- package/lib/client.js +45249 -3409
- package/lib/client.js.map +1 -1
- package/lib/index.js +252 -10
- package/lib/index.js.map +1 -1
- package/lib/types/client/Icon.d.ts +1 -1
- package/lib/types/client/TerminalPanel.d.ts +3 -0
- package/lib/types/client/Workbench.d.ts +6 -0
- package/lib/types/client/documentPreview.d.ts +11 -0
- package/lib/types/client/shortcuts.d.ts +4 -0
- package/lib/types/client/terminal.d.ts +43 -0
- package/lib/types/host.d.ts +10 -0
- package/lib/types/terminal.d.ts +41 -0
- package/package.json +6 -1
- package/src/client/Icon.tsx +1 -1
- package/src/client/TerminalPanel.tsx +90 -0
- package/src/client/Workbench.tsx +64 -8
- package/src/client/documentPreview.tsx +122 -0
- package/src/client/index.tsx +3 -0
- package/src/client/shortcuts.ts +17 -1
- package/src/client/styles.ts +22 -4
- package/src/client/terminal.ts +83 -0
- package/src/host.ts +8 -0
- package/src/index.ts +16 -3
- package/src/terminal.ts +145 -0
package/README.en.md
CHANGED
|
@@ -34,6 +34,9 @@ Resizable and collapsible primary view, an extensible bottom panel, and a status
|
|
|
34
34
|
### DSH conversation
|
|
35
35
|
Reuses the official conversation UI with messages, coding tools, models, attachments, and permissions.
|
|
36
36
|
|
|
37
|
+
### Terminal
|
|
38
|
+
The workbench includes an interactive local terminal powered by `node-pty` and xterm. Use the terminal icon in the left activity bar to open the bottom panel; it supports multiple terminals, renaming, resize, ANSI output, and Ctrl+C.
|
|
39
|
+
|
|
37
40
|
### Restore
|
|
38
41
|
Persists the active view, tabs, widths, and panel state per workspace across reloads.
|
|
39
42
|
|
|
@@ -51,12 +54,21 @@ The workbench mounts through the official `sidebar.footer.action` and `shell.ove
|
|
|
51
54
|
<br><em>Source control and commit graph</em>
|
|
52
55
|
</p>
|
|
53
56
|
|
|
57
|
+

|
|
58
|
+
|
|
54
59
|
## Installation
|
|
55
60
|
|
|
56
61
|
```bash
|
|
57
62
|
dsh plugin --profile web add dsh-vscode-workbench
|
|
58
63
|
```
|
|
59
64
|
|
|
65
|
+
With pnpm, `node-pty` needs approval to run its native build script. If pnpm asks for it, add the following to the active profile's `pnpm-workspace.yaml`:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
allowBuilds:
|
|
69
|
+
node-pty: true
|
|
70
|
+
```
|
|
71
|
+
|
|
60
72
|
## Shortcuts
|
|
61
73
|
|
|
62
74
|
| Shortcut | Action |
|
|
@@ -66,10 +78,12 @@ dsh plugin --profile web add dsh-vscode-workbench
|
|
|
66
78
|
| `Ctrl+Shift+G` | Open Source Control |
|
|
67
79
|
| `Ctrl+S` | Save the active file |
|
|
68
80
|
| `Ctrl+Alt+B` | Toggle the DSH conversation panel |
|
|
81
|
+
| `Ctrl+\`` | Show or hide the terminal |
|
|
82
|
+
| `Ctrl+Shift+\`` | Create a terminal |
|
|
69
83
|
|
|
70
84
|
## Security
|
|
71
85
|
|
|
72
|
-
The host accepts only paths relative to the active DSH session workspace and rejects traversal and symlink escape. Saves use revision checks and atomic replacement. Git and ripgrep run with argument arrays rather than shell-concatenated commands.
|
|
86
|
+
The host accepts only paths relative to the active DSH session workspace and rejects traversal and symlink escape. Saves use revision checks and atomic replacement. Git and ripgrep run with argument arrays rather than shell-concatenated commands. The terminal accepts same-origin loopback requests only, starts in the session workspace, and removes API keys, tokens, secrets, and similar environment variables.
|
|
73
87
|
|
|
74
88
|
## Development
|
|
75
89
|
|
|
@@ -80,7 +94,7 @@ pnpm test
|
|
|
80
94
|
pnpm build
|
|
81
95
|
```
|
|
82
96
|
|
|
83
|
-
Requires Node.js `^22.19 || >=24`, pnpm 11.7, and
|
|
97
|
+
Requires Node.js `^22.19 || >=24`, pnpm 11.7, system Git, and the native build prerequisites for `node-pty` when no prebuild is available.
|
|
84
98
|
|
|
85
99
|
## License
|
|
86
100
|
|
package/README.md
CHANGED
|
@@ -35,6 +35,9 @@ Markdown 默认渲染,可切换源码与大纲;支持工作区相对链接
|
|
|
35
35
|
### DSH 对话
|
|
36
36
|
右侧复用官方会话界面,保留消息、编程工具、模型、附件与权限能力。
|
|
37
37
|
|
|
38
|
+
### 终端
|
|
39
|
+
内置由 `node-pty` 与 xterm 驱动的本地交互终端。点击左侧活动栏终端图标打开底部面板,支持多终端、重命名、尺寸自适应、ANSI 输出与 Ctrl+C。
|
|
40
|
+
|
|
38
41
|
### 状态恢复
|
|
39
42
|
按工作区保存活动视图、标签、栏宽与面板状态,刷新后继续工作。
|
|
40
43
|
|
|
@@ -52,12 +55,21 @@ Markdown 默认渲染,可切换源码与大纲;支持工作区相对链接
|
|
|
52
55
|
<br><em>源代码管理与提交图表</em>
|
|
53
56
|
</p>
|
|
54
57
|
|
|
58
|
+

|
|
59
|
+
|
|
55
60
|
## 安装
|
|
56
61
|
|
|
57
62
|
```bash
|
|
58
63
|
dsh plugin --profile web add dsh-vscode-workbench
|
|
59
64
|
```
|
|
60
65
|
|
|
66
|
+
使用 pnpm 安装时,`node-pty` 需要执行受限的原生构建脚本。若出现构建许可提示,请在当前 profile 的 `pnpm-workspace.yaml` 中加入:
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
allowBuilds:
|
|
70
|
+
node-pty: true
|
|
71
|
+
```
|
|
72
|
+
|
|
61
73
|
## 快捷键
|
|
62
74
|
|
|
63
75
|
| 快捷键 | 操作 |
|
|
@@ -67,10 +79,14 @@ dsh plugin --profile web add dsh-vscode-workbench
|
|
|
67
79
|
| `Ctrl+Shift+G` | 打开源代码管理 |
|
|
68
80
|
| `Ctrl+S` | 保存当前文件 |
|
|
69
81
|
| `Ctrl+Alt+B` | 显示或隐藏 DSH 对话栏 |
|
|
82
|
+
| `Ctrl+\`` | 显示或隐藏终端 |
|
|
83
|
+
| `Ctrl+Shift+\`` | 新建终端 |
|
|
84
|
+
|
|
85
|
+
左侧活动栏的终端按钮会展开终端面板;已打开时再次点击不会关闭它。
|
|
70
86
|
|
|
71
87
|
## 安全
|
|
72
88
|
|
|
73
|
-
Host 只接受当前 DSH 会话工作目录内的相对路径,并阻止目录穿越与符号链接越界。保存使用版本校验与原子替换;Git 与 ripgrep 使用参数数组启动,不拼接 Shell
|
|
89
|
+
Host 只接受当前 DSH 会话工作目录内的相对路径,并阻止目录穿越与符号链接越界。保存使用版本校验与原子替换;Git 与 ripgrep 使用参数数组启动,不拼接 Shell 命令。终端只接受同源 loopback 请求,固定在会话工作目录启动,并移除 API key、token、secret 等敏感环境变量。
|
|
74
90
|
|
|
75
91
|
## 开发
|
|
76
92
|
|
|
@@ -81,7 +97,7 @@ pnpm test
|
|
|
81
97
|
pnpm build
|
|
82
98
|
```
|
|
83
99
|
|
|
84
|
-
需要 Node.js `^22.19 || >=24`、pnpm 11.7
|
|
100
|
+
需要 Node.js `^22.19 || >=24`、pnpm 11.7、系统 Git,以及 `node-pty` 所需的本机构建环境(预编译产物不可用时)。
|
|
85
101
|
|
|
86
102
|
## 许可证
|
|
87
103
|
|