dsh-synapse 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/LICENSE +21 -0
- package/README.md +81 -0
- package/app.js +1252 -0
- package/client.js +217 -0
- package/cordis.patch.yml +13 -0
- package/deepseek-mark.svg +3 -0
- package/docs/architecture.md +104 -0
- package/docs/development.md +137 -0
- package/docs/en/README.md +161 -0
- package/docs/images/native-webui.png +0 -0
- package/docs/images/synapse-ui.png +0 -0
- package/docs/zh-CN/README.md +154 -0
- package/index.js +802 -0
- package/package.json +44 -0
- package/styles.css +337 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# dsh-synapse 中文指南
|
|
2
|
+
|
|
3
|
+
`dsh-synapse` 是 DeepSeek Harness(DSH)的 Web 插件。它在 DSH 原生对话界面上增加会话地图,把同一工作区中的会话、追问和分支组织成可浏览、可拖拽和可缩放的画布。
|
|
4
|
+
|
|
5
|
+
插件不替代 DSH 的模型、工具、会话、权限或 Web 服务;所有对话操作仍由 DSH 完成。
|
|
6
|
+
|
|
7
|
+
## 前提条件
|
|
8
|
+
|
|
9
|
+
- 支持 `dsh plugin` profile 插件机制的 DeepSeek Harness(2026-08 或之后版本)。
|
|
10
|
+
- Node.js `>= 22.19.0`。
|
|
11
|
+
- 使用 `web` profile;其他 profile 暂不支持。
|
|
12
|
+
|
|
13
|
+
## 安装
|
|
14
|
+
|
|
15
|
+
### 从 npm 安装
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
corepack pnpm dsh plugin --profile web add dsh-synapse
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
npm 包分发的是预构建产物,无需任何构建授权——最简单的安装方式。下方 GitHub 与本地 checkout 为备选。
|
|
22
|
+
|
|
23
|
+
### 从 GitHub 安装
|
|
24
|
+
|
|
25
|
+
```powershell
|
|
26
|
+
corepack pnpm dsh plugin --profile web add github:liangmianya/dsh-synapse
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
GitHub 安装会运行本包的 `prepare` 脚本,通过 `node --check` 验证 JavaScript 语法。
|
|
30
|
+
|
|
31
|
+
### pnpm 10+ 的 allowBuilds
|
|
32
|
+
|
|
33
|
+
pnpm 10 及之后版本默认可能阻止 Git 依赖执行构建脚本。如果安装被拦截,请将 pnpm 输出的**完整键**复制到 DSH Web profile 的 `pnpm-workspace.yaml`:
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
allowBuilds:
|
|
37
|
+
"dsh-synapse@https://codeload.github.com/liangmianya/dsh-synapse/tar.gz/<commit>": true
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
必须使用包含 tarball URL 和 commit 的完整键,不能只填写裸包名 `dsh-synapse`。上游 commit 变化后,键也会变化;届时使用 pnpm 新输出的值。
|
|
41
|
+
|
|
42
|
+
### 本地开发安装
|
|
43
|
+
|
|
44
|
+
```powershell
|
|
45
|
+
corepack pnpm dsh plugin --profile web add link:E:\path\to\dsh-synapse
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`link:` 会直接引用本地 checkout,适合开发和调试。普通运行模式下修改代码后,建议重启 `dsh web` 并刷新页面。
|
|
49
|
+
|
|
50
|
+
## 启动
|
|
51
|
+
|
|
52
|
+
```powershell
|
|
53
|
+
corepack pnpm dsh web
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
默认地址:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
http://127.0.0.1:3080/
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
如果 3080 被占用,可以让 DSH 自动选择端口:
|
|
63
|
+
|
|
64
|
+
```powershell
|
|
65
|
+
corepack pnpm dsh web --port 0
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
启动后点击顶部“会话地图”进入 Synapse。不要同时运行两个共享同一 profile 的 `dsh web` 实例。
|
|
69
|
+
|
|
70
|
+
## 使用方式
|
|
71
|
+
|
|
72
|
+
1. 在 DSH 中选择工作目录,或打开已有会话。
|
|
73
|
+
2. 发送至少一条消息,使会话进入工作区历史。
|
|
74
|
+
3. 点击顶部“会话地图”。
|
|
75
|
+
4. 点击卡片或侧边栏会话,在地图与原生对话之间同步当前会话。
|
|
76
|
+
5. 使用“分支”从已完成的回答创建替代路径。
|
|
77
|
+
6. 点击卡片底部“详情”查看完整会话记录。
|
|
78
|
+
7. 使用“打开 DSH”或顶部“对话”返回原生对话界面。
|
|
79
|
+
|
|
80
|
+
画布支持:
|
|
81
|
+
|
|
82
|
+
- 拖动画布和缩放视图(最高 4×)。
|
|
83
|
+
- 拖动卡片并自动保存位置。
|
|
84
|
+
- 展开或折叠后续对话子树。
|
|
85
|
+
- 一键定位当前会话。
|
|
86
|
+
- 卡片内部平滑滚动和 Markdown 表格渲染。
|
|
87
|
+
- 将工具调用和结果按 `callId` 折叠到对应助手回答中。
|
|
88
|
+
|
|
89
|
+
## 配置
|
|
90
|
+
|
|
91
|
+
插件通过 profile 的 `cordis.patch.yml` 注入。可以在自己的 patch 中通过行 id `synapse` 覆盖配置。
|
|
92
|
+
|
|
93
|
+
> DSH patch 会整体替换该行的 `config`,覆盖时需要重述所有需要保留的键。
|
|
94
|
+
|
|
95
|
+
| 键 | 默认值 | 说明 |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| `dataFile` | `$DSH_HOME/synapse/workspaces.json` | 画布元数据持久化文件 |
|
|
98
|
+
| `autoProjection` | `true` | 自动将已提交的 DSH 会话事件投影为卡片 |
|
|
99
|
+
| `projectionWorkspaceTitle` | `DSH 任务` | 自动投影工作区的标题 |
|
|
100
|
+
| `trustedHosts` | `[]` | `/synapse` Host 检查额外允许的主机名或 `主机:端口`;`localhost` 和 `127.0.0.1` 始终允许 |
|
|
101
|
+
|
|
102
|
+
配置示例:
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
- id: synapse
|
|
106
|
+
config:
|
|
107
|
+
dataFile: !!js dshHomePath('synapse/my-workspaces.json')
|
|
108
|
+
autoProjection: true
|
|
109
|
+
projectionWorkspaceTitle: 我的任务
|
|
110
|
+
trustedHosts: []
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
局域网访问时,需要将实际访问主机加入 `trustedHosts`。
|
|
114
|
+
|
|
115
|
+
## 卸载与数据清理
|
|
116
|
+
|
|
117
|
+
卸载插件:
|
|
118
|
+
|
|
119
|
+
```powershell
|
|
120
|
+
corepack pnpm dsh plugin --profile web remove dsh-synapse
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
`remove` 只移除插件依赖和 profile 激活层,不会删除画布数据。重新安装后,旧数据会继续使用并按需迁移。
|
|
124
|
+
|
|
125
|
+
彻底清理时,手动删除:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
$DSH_HOME/synapse/
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`pnpm-workspace.yaml` 中遗留的 `allowBuilds` 键没有副作用,也可以一并移除。
|
|
132
|
+
|
|
133
|
+
## 数据与运行边界
|
|
134
|
+
|
|
135
|
+
- DSH session log 保存真实对话内容。
|
|
136
|
+
- Synapse 的 `workspaces.json` 只保存画布元数据、布局和分支锚点。
|
|
137
|
+
- 删除 `workspaces.json` 会丢失画布布局,但不会删除 DSH 会话。
|
|
138
|
+
- 单条消息投影上限为 8000 字符;超出部分在卡片中截断并标注“—…(详情查看全文)”,完整内容仍可在会话详情中查看。
|
|
139
|
+
- 插件不启动第二个 Web 服务,也不创建第二套 Agent。
|
|
140
|
+
- 插件只读取已经提交的会话事件,不修改模型请求、系统提示、工具 schema 或 KV cache 前缀。
|
|
141
|
+
|
|
142
|
+
更详细的内部说明见[架构与运行边界](../architecture.md)。
|
|
143
|
+
|
|
144
|
+
## 已知限制
|
|
145
|
+
|
|
146
|
+
- 仅支持 `web` profile。
|
|
147
|
+
- 两个 DSH Web 实例共享同一个 profile 时会写入同一个 `workspaces.json`。虽然存在跨进程写锁和外部修改警告,仍可能出现最后写入覆盖,请只运行一个实例。
|
|
148
|
+
- v3 数据迁移时,旧工具卡片按顺序将每次调用与下一条结果配对;实时事件使用 `callId`。
|
|
149
|
+
|
|
150
|
+
## 开发与发布
|
|
151
|
+
|
|
152
|
+
贡献者命令、GitHub Actions 和 npm 发布流程见[开发与发布指南](../development.md)。
|
|
153
|
+
|
|
154
|
+
返回[项目主页](../../README.md)。
|