dsh-vscode-workbench 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 +82 -0
- package/README.md +81 -0
- package/lib/client.js +6039 -0
- package/lib/client.js.map +1 -0
- package/lib/index.js +832 -0
- package/lib/index.js.map +1 -0
- package/lib/types/client/DshConversationPanel.d.ts +14 -0
- package/lib/types/client/DshMark.d.ts +4 -0
- package/lib/types/client/Icon.d.ts +8 -0
- package/lib/types/client/MarkdownPreview.d.ts +14 -0
- package/lib/types/client/MonacoEditor.d.ts +28 -0
- package/lib/types/client/Workbench.d.ts +34 -0
- package/lib/types/client/api.d.ts +1 -0
- package/lib/types/client/index.d.ts +20 -0
- package/lib/types/client/service.d.ts +60 -0
- package/lib/types/client/styles.d.ts +1 -0
- package/lib/types/context.d.ts +30 -0
- package/lib/types/host.d.ts +41 -0
- package/lib/types/index.d.ts +6 -0
- package/lib/types/types.d.ts +72 -0
- package/lib/types/wire.d.ts +11 -0
- package/package.json +97 -0
- package/src/client/DshConversationPanel.tsx +56 -0
- package/src/client/DshMark.tsx +16 -0
- package/src/client/Icon.tsx +23 -0
- package/src/client/MarkdownPreview.tsx +18 -0
- package/src/client/MonacoEditor.tsx +56 -0
- package/src/client/Workbench.tsx +185 -0
- package/src/client/api.ts +8 -0
- package/src/client/index.tsx +39 -0
- package/src/client/service.ts +58 -0
- package/src/client/styles.ts +49 -0
- package/src/context.ts +16 -0
- package/src/host.ts +306 -0
- package/src/index.ts +96 -0
- package/src/types.ts +18 -0
- package/src/wire.ts +49 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-vscode-workbench 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,82 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<h1 align="center">DSH VS Code Workbench</h1>
|
|
4
|
+
|
|
5
|
+
<p align="center">A VS Code-style local development workbench for DeepSeek Harness.</p>
|
|
6
|
+
<p align="center"><a href="README.md">中文</a> · <b>English</b></p>
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- Explorer: lazy directory loading with create, rename, delete, and refresh actions.
|
|
12
|
+
- Editor: Monaco tabs, dirty state, atomic saves, revision conflicts, and external-change notices.
|
|
13
|
+
- Preview: rendered Markdown by default with source and outline modes, workspace-relative links, and image previews.
|
|
14
|
+
- Search: `@vscode/ripgrep` full-text search with case, whole-word, regex, and include/exclude controls.
|
|
15
|
+
- Git: grouped status, stage, unstage, discard, commit, branch switching, inline/side-by-side diffs, and a commit graph.
|
|
16
|
+
- Layout: resizable and collapsible primary view, bottom panel, and status bar, with centralized theme and width settings.
|
|
17
|
+
- DSH conversation: reuses the official conversation UI with messages, coding tools, models, attachments, and permissions.
|
|
18
|
+
- Restore: persists the active view, tabs, widths, and panel state per workspace across reloads.
|
|
19
|
+
|
|
20
|
+
The workbench mounts through the official `sidebar.footer.action` and `shell.overlay` extension points. It does not replace or disable `ui-layout`.
|
|
21
|
+
|
|
22
|
+
## Screenshots
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/explorer.png" width="800" alt="Explorer and Monaco editor">
|
|
26
|
+
<br><em>Explorer and Monaco editor</em>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control.png" width="800" alt="Source control and commit graph">
|
|
32
|
+
<br><em>Source control and commit graph</em>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
## Installation
|
|
36
|
+
|
|
37
|
+
Install the aggregate package for the complete workbench with terminal integration:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
dsh plugin --profile web add dsh-vscode-plugin
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Install only the workbench and its extension API:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
dsh plugin --profile web add dsh-vscode-workbench
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Shortcuts
|
|
50
|
+
|
|
51
|
+
| Shortcut | Action |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `Ctrl+Shift+E` | Open Explorer |
|
|
54
|
+
| `Ctrl+Shift+F` | Open Search |
|
|
55
|
+
| `Ctrl+Shift+G` | Open Source Control |
|
|
56
|
+
| `Ctrl+S` | Save the active file |
|
|
57
|
+
| `Ctrl+Alt+B` | Toggle the DSH conversation panel |
|
|
58
|
+
|
|
59
|
+
Terminal shortcuts are registered by `dsh-vscode-plugin`.
|
|
60
|
+
|
|
61
|
+
## Extension API
|
|
62
|
+
|
|
63
|
+
The browser exposes a `vscodeWorkbench` service for registering bottom panels and commands and controlling workbench visibility. `dsh-vscode-plugin` uses this API to mount `@xterm/xterm`.
|
|
64
|
+
|
|
65
|
+
## Security
|
|
66
|
+
|
|
67
|
+
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.
|
|
68
|
+
|
|
69
|
+
## Development
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pnpm install
|
|
73
|
+
pnpm typecheck
|
|
74
|
+
pnpm test
|
|
75
|
+
pnpm build
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Requires Node.js `^22.19 || >=24`, pnpm 11.7, and system Git.
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
[MIT](LICENSE)
|
package/README.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
|
|
2
|
+
<h1 align="center">DSH VS Code Workbench</h1>
|
|
3
|
+
|
|
4
|
+
<p align="center">在 DeepSeek Harness 中叠加 VS Code 风格的本地开发工作台。</p>
|
|
5
|
+
|
|
6
|
+
<p align="center"><b>中文</b> · <a href="README.en.md">English</a></p>
|
|
7
|
+
|
|
8
|
+
## 功能
|
|
9
|
+
|
|
10
|
+
- 资源管理器:懒加载目录,支持新建、重命名、删除和刷新。
|
|
11
|
+
- 编辑器:Monaco 多标签编辑、脏状态、原子保存、版本冲突和外部变更提示。
|
|
12
|
+
- 预览:Markdown 默认渲染,可切换源码与大纲;支持工作区相对链接、图片和常见图片文件预览。
|
|
13
|
+
- 搜索:基于 `@vscode/ripgrep` 的全文搜索,支持大小写、全词、正则和包含/排除规则。
|
|
14
|
+
- Git:状态分组、暂存、撤销暂存、丢弃、提交、分支切换、内联/并排差异和提交图表。
|
|
15
|
+
- 布局:可调节和折叠的左侧视图、底部面板与状态栏;设置统一管理主题和栏宽。
|
|
16
|
+
- DSH 对话:右侧复用官方会话界面,保留消息、编程工具、模型、附件和权限能力。
|
|
17
|
+
- 状态恢复:按工作区保存活动视图、标签、栏宽和面板状态,刷新后继续工作。
|
|
18
|
+
|
|
19
|
+
工作台通过官方 `sidebar.footer.action` 和 `shell.overlay` 扩展点挂载,不替换或卸载 `ui-layout`。
|
|
20
|
+
|
|
21
|
+
## 截图
|
|
22
|
+
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/explorer.png" width="800" alt="资源管理器与 Monaco 编辑器">
|
|
25
|
+
<br><em>资源管理器与 Monaco 编辑器</em>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
<p align="center">
|
|
30
|
+
<img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control.png" width="800" alt="源代码管理与提交图表">
|
|
31
|
+
<br><em>源代码管理与提交图表</em>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
## 安装
|
|
35
|
+
|
|
36
|
+
推荐安装包含终端适配器的聚合包:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
dsh plugin --profile web add dsh-vscode-plugin
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
仅使用工作台和扩展 API:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
dsh plugin --profile web add dsh-vscode-workbench
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 快捷键
|
|
49
|
+
|
|
50
|
+
| 快捷键 | 操作 |
|
|
51
|
+
| --- | --- |
|
|
52
|
+
| `Ctrl+Shift+E` | 打开资源管理器 |
|
|
53
|
+
| `Ctrl+Shift+F` | 打开搜索 |
|
|
54
|
+
| `Ctrl+Shift+G` | 打开源代码管理 |
|
|
55
|
+
| `Ctrl+S` | 保存当前文件 |
|
|
56
|
+
| `Ctrl+Alt+B` | 显示或隐藏 DSH 对话栏 |
|
|
57
|
+
|
|
58
|
+
终端快捷键由 `dsh-vscode-plugin` 注册。
|
|
59
|
+
|
|
60
|
+
## 扩展
|
|
61
|
+
|
|
62
|
+
浏览器端提供 `vscodeWorkbench` 服务,可注册底部面板和命令,并控制工作台与面板显隐。`dsh-vscode-plugin` 使用该接口挂载 `@xterm/xterm`。
|
|
63
|
+
|
|
64
|
+
## 安全
|
|
65
|
+
|
|
66
|
+
Host 只接受当前 DSH 会话工作目录内的相对路径,并阻止目录穿越与符号链接越界。保存使用版本校验和原子替换;Git 与 ripgrep 使用参数数组启动,不拼接 Shell 命令。
|
|
67
|
+
|
|
68
|
+
## 开发
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pnpm install
|
|
72
|
+
pnpm typecheck
|
|
73
|
+
pnpm test
|
|
74
|
+
pnpm build
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
需要 Node.js `^22.19 || >=24`、pnpm 11.7 和系统 Git。
|
|
78
|
+
|
|
79
|
+
## 许可证
|
|
80
|
+
|
|
81
|
+
[MIT](LICENSE)
|