dsh-remote-bridge 2.3.0 → 2.3.1
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 +10 -10
- package/README.md +11 -13
- package/docs/api/asyncapi.yaml +1 -1
- package/docs/api/openapi.yaml +2 -2
- package/kotlin-sdk/build.gradle.kts +1 -1
- package/lib/index.d.ts +19 -0
- package/lib/index.js +16 -3
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<img alt="Version" src="https://img.shields.io/badge/version-v2.3.
|
|
12
|
+
<img alt="Version" src="https://img.shields.io/badge/version-v2.3.1-087f8c">
|
|
13
13
|
<img alt="DSH plugin" src="https://img.shields.io/badge/DeepSeek_Harness-plugin-1f2328">
|
|
14
14
|
<img alt="Platforms" src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-586069">
|
|
15
15
|
<img alt="License" src="https://img.shields.io/badge/license-AGPL--3.0-2da44e">
|
|
@@ -30,7 +30,7 @@ The interface is bilingual and defaults to Chinese. Prebuilt packages run on Win
|
|
|
30
30
|
|
|
31
31
|
## What it looks like
|
|
32
32
|
|
|
33
|
-
The desktop entry lives **inside your DSH settings**:
|
|
33
|
+
The desktop entry lives **inside your DSH settings**: look for the section titled **📱 Phone settings**, which renders seven collapsible cards inline — no second dialog. It is settings-only and contains **no file tree**: the standalone page `/dsh-workspace` and its file tree and CodeMirror editor were deleted in 2.2.0. The reason and the cost are covered in "No file-management UI on the desktop" below.
|
|
34
34
|
|
|
35
35
|
Remote access remains disabled until a local administrator chooses a bind address, port, and initial device permissions.
|
|
36
36
|
|
|
@@ -73,10 +73,10 @@ dsh plugin --profile web add dsh-remote-bridge
|
|
|
73
73
|
dsh plugin --profile web add dsh-remote-bridge --registry https://registry.npmmirror.com
|
|
74
74
|
|
|
75
75
|
# 2. tarball from the GitHub release
|
|
76
|
-
dsh plugin --profile web add https://github.com/westanke/dsh-remote-bridge/releases/download/v2.3.
|
|
76
|
+
dsh plugin --profile web add https://github.com/westanke/dsh-remote-bridge/releases/download/v2.3.1/dsh-remote-bridge-v2.3.1.tgz
|
|
77
77
|
|
|
78
78
|
# 3. tarball from the Gitee release (faster from mainland China)
|
|
79
|
-
dsh plugin --profile web add https://gitee.com/westanke/dsh-remote-bridge/releases/download/v2.3.
|
|
79
|
+
dsh plugin --profile web add https://gitee.com/westanke/dsh-remote-bridge/releases/download/v2.3.1/dsh-remote-bridge-v2.3.1.tgz
|
|
80
80
|
|
|
81
81
|
npx @deepseek-ai/dsh web
|
|
82
82
|
```
|
|
@@ -88,17 +88,17 @@ npx @deepseek-ai/dsh web
|
|
|
88
88
|
> are reading on, but `/releases/download/...` has no relative form. The npm package name is the
|
|
89
89
|
> same as the GitHub repository, so it reads identically on both hosts.
|
|
90
90
|
|
|
91
|
-
Restart DSH after installation, then open settings —
|
|
91
|
+
Restart DSH after installation, then open settings — The section is titled **📱 Phone settings**. It is settings-only and does **not** contain the file tree. The in-conversation **Files** tab was removed in 2.0.4. **The desktop no longer offers a UI for browsing or editing files**: the standalone page `/dsh-workspace` was deleted in 2.2.0 — use the phone app, or ask the agent to use its tools in a conversation.
|
|
92
92
|
|
|
93
93
|
To install a downloaded release archive:
|
|
94
94
|
|
|
95
95
|
```sh
|
|
96
|
-
dsh plugin --profile web add ./dsh-remote-bridge-v2.3.
|
|
96
|
+
dsh plugin --profile web add ./dsh-remote-bridge-v2.3.1.tgz
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
## First connection
|
|
100
100
|
|
|
101
|
-
1. Open DSH settings and go to **Phone settings** (
|
|
101
|
+
1. Open DSH settings and go to **Phone settings** (it lands on **Roots**).
|
|
102
102
|
2. Add a local directory under **Roots** and give it a recognizable label.
|
|
103
103
|
3. For mobile access, go to **Remote**, enter the bind IP and port, and save them.
|
|
104
104
|
4. Select **Enable and create pairing**, then enter the ten-minute one-time code in the app.
|
|
@@ -297,7 +297,7 @@ The user-visible consequence: **if this DSH build provides no attachment store,
|
|
|
297
297
|
|
|
298
298
|
**Phone settings is missing**
|
|
299
299
|
|
|
300
|
-
The entry is inside DSH settings,
|
|
300
|
+
The entry is inside DSH settings, under the title **📱 Phone settings**. If you cannot see it, make sure the plugin was installed into the `web` profile and **restart DSH** — plugins load in-process and a restart is required.
|
|
301
301
|
|
|
302
302
|
**There is no UI for browsing or editing files on the desktop**
|
|
303
303
|
|
|
@@ -327,11 +327,11 @@ pnpm pack
|
|
|
327
327
|
|
|
328
328
|
`npm pack` produces roughly a **0.25 MB** archive: 2.2.0 dropped the standalone page and its editor dependencies and turned source maps off, down from 1.72 MB.
|
|
329
329
|
|
|
330
|
-
v2.3.
|
|
330
|
+
v2.3.1 was developed against DSH `master@47f943859bef60e4160492346772ded9b24f765a`. CI covers Windows, Ubuntu, and macOS.
|
|
331
331
|
|
|
332
332
|
## Project
|
|
333
333
|
|
|
334
|
-
- Version: `v2.3.
|
|
334
|
+
- Version: `v2.3.1`
|
|
335
335
|
- Author: upstream [Hakunm](https://github.com/Hakunm); this fork maintained by [westanke](https://github.com/westanke)
|
|
336
336
|
- Repository: [GitHub](https://github.com/westanke/dsh-remote-bridge) · [Gitee](https://gitee.com/westanke/dsh-remote-bridge)
|
|
337
337
|
- npm: [`dsh-remote-bridge`](https://www.npmjs.com/package/dsh-remote-bridge) ([mainland-China mirror](https://registry.npmmirror.com/dsh-remote-bridge))
|
package/README.md
CHANGED
|
@@ -9,18 +9,17 @@
|
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<img alt="Version" src="https://img.shields.io/badge/version-v2.3.
|
|
12
|
+
<img alt="Version" src="https://img.shields.io/badge/version-v2.3.1-087f8c">
|
|
13
13
|
<img alt="DSH plugin" src="https://img.shields.io/badge/DeepSeek_Harness-plugin-1f2328">
|
|
14
14
|
<img alt="Platforms" src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-586069">
|
|
15
15
|
<img alt="License" src="https://img.shields.io/badge/license-AGPL--3.0-2da44e">
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
|
-
`dsh-remote-bridge` 是 DeepSeek Harness(DSH)的远程访问桥接插件:它把 DSH 内核的私有 remote 协议翻译成版本化的 REST 接口,让 dsh-companion([GitHub](https://github.com/westanke/dsh-companion) · [Gitee](https://gitee.com/westanke/dsh-companion))等受信任客户端在离开电脑后仍能使用同一套聊天、工作区与文件能力;桌面端在你的 DSH 设置里提供一个「手机设置」,内联七张设置卡片(根目录 / 远程访问 / 设备 / 识图 / 回收站 / 审计 / App
|
|
18
|
+
`dsh-remote-bridge` 是 DeepSeek Harness(DSH)的远程访问桥接插件:它把 DSH 内核的私有 remote 协议翻译成版本化的 REST 接口,让 dsh-companion([GitHub](https://github.com/westanke/dsh-companion) · [Gitee](https://gitee.com/westanke/dsh-companion))等受信任客户端在离开电脑后仍能使用同一套聊天、工作区与文件能力;桌面端在你的 DSH 设置里提供一个「手机设置」,内联七张设置卡片(根目录 / 远程访问 / 设备 / 识图 / 回收站 / 审计 / App 下载),每张卡片各自折叠、可多张同时展开。)。
|
|
19
19
|
|
|
20
20
|
界面默认中文,可随时切换 English。插件支持 Windows、macOS 和 Linux,安装包已经包含编译产物,不要求用户在服务器上重新构建。
|
|
21
21
|
|
|
22
|
-
>
|
|
23
|
-
> `v2.0.2` 与 `v2.0.3` **从未发布**,请不要按这两个版本号寻找安装包。
|
|
22
|
+
> **版本警告**:请务必使用 ≥ `v2.0.4`版本。
|
|
24
23
|
|
|
25
24
|
> **DSH 0.2.x 兼容性**:本分支在上游 `v1.0.0` 的基础上增加了对 DSH `0.2.0-rc.2` 的兼容层。
|
|
26
25
|
> 0.2.x 用 `dsh-api-gateway` 替换了提供 `apiProxy` 服务的 `dsh-host-apiproxy`,导致上游版本在
|
|
@@ -29,11 +28,10 @@
|
|
|
29
28
|
|
|
30
29
|
## 实际效果
|
|
31
30
|
|
|
32
|
-
桌面端的入口**就在你的 DSH
|
|
31
|
+
桌面端的入口**就在你的 DSH 设置里**:打开设置,找到标题为「📱 手机设置」的一节,点进去直接内联渲染七张折叠卡片,不再另开弹窗。它只做设置。
|
|
33
32
|
|
|
34
33
|
远程访问默认关闭。管理员可在本机 WebUI 中设置绑定 IP、端口和新设备的初始权限。
|
|
35
34
|
|
|
36
|
-
> 本节原先配有两张界面截图,但那是改名前的旧界面(标题仍是「DSH 文件工作区」;远程访问那张还标着 v1.0.0,且是文件树与设置两个弹窗叠加的形态),与上面描述的当前形态完全不符,已删除以免误导。缓存的旧截图不会自动更新,请以本节文字与 `docs/project/ARCHITECTURE.md` 为准。
|
|
37
35
|
|
|
38
36
|
## 关于改名(2.0.4)
|
|
39
37
|
|
|
@@ -72,10 +70,10 @@ dsh plugin --profile web add dsh-remote-bridge
|
|
|
72
70
|
dsh plugin --profile web add dsh-remote-bridge --registry https://registry.npmmirror.com
|
|
73
71
|
|
|
74
72
|
# ② GitHub Release 的 tarball
|
|
75
|
-
dsh plugin --profile web add https://github.com/westanke/dsh-remote-bridge/releases/download/v2.3.
|
|
73
|
+
dsh plugin --profile web add https://github.com/westanke/dsh-remote-bridge/releases/download/v2.3.1/dsh-remote-bridge-v2.3.1.tgz
|
|
76
74
|
|
|
77
75
|
# ③ Gitee Release 的 tarball(国内访问更快)
|
|
78
|
-
dsh plugin --profile web add https://gitee.com/westanke/dsh-remote-bridge/releases/download/v2.3.
|
|
76
|
+
dsh plugin --profile web add https://gitee.com/westanke/dsh-remote-bridge/releases/download/v2.3.1/dsh-remote-bridge-v2.3.1.tgz
|
|
79
77
|
|
|
80
78
|
npx @deepseek-ai/dsh web
|
|
81
79
|
```
|
|
@@ -91,7 +89,7 @@ npx @deepseek-ai/dsh web
|
|
|
91
89
|
从 GitHub Release 下载离线安装包时,可直接安装 tarball:
|
|
92
90
|
|
|
93
91
|
```sh
|
|
94
|
-
dsh plugin --profile web add ./dsh-remote-bridge-v2.3.
|
|
92
|
+
dsh plugin --profile web add ./dsh-remote-bridge-v2.3.1.tgz
|
|
95
93
|
```
|
|
96
94
|
|
|
97
95
|
## 第一次使用
|
|
@@ -142,7 +140,7 @@ dsh plugin --profile web add ./dsh-remote-bridge-v2.3.0.tgz
|
|
|
142
140
|
- **识图路径**默认 `.dsh-images`,在设置页「识图」里可以改,改完立即生效、不需要重启;**「当前默认」那一栏是只读的** —— 历史交接消息和识图工具都按它写过路径,它不跟着你的修改走。旁边还列出解析不出会话工作目录时用的兜底目录。
|
|
143
141
|
- **只认交接句式**,而且只认**你自己发的那条消息**:助手正文、上下文注入、工具输出里出现的 `.dsh-images/…` 不会被渲染成图(对话里到处都是这种引用,读它们只会把别人的话切成碎图)。
|
|
144
142
|
|
|
145
|
-
> 如果你此前装过
|
|
143
|
+
> 如果你此前装过 [dsh-image-paths](https://github.com/lunar-tear/dsh-plugins),请把它那一行**停用**:两个插件的图集会挂在同一个位置,同一张图会被画两遍。本插件已自带这套能力。
|
|
146
144
|
|
|
147
145
|
### 连接 Android App 或其他客户端
|
|
148
146
|
|
|
@@ -291,7 +289,7 @@ DSH 的 cordis 注入属性(`ctx.attachments` / `ctx.fileUploads`)是惰性
|
|
|
291
289
|
|
|
292
290
|
**安装后看不到「手机设置」**
|
|
293
291
|
|
|
294
|
-
入口在 DSH
|
|
292
|
+
入口在 DSH 设置里,标题为「📱 手机设置」。如果看不到,确认插件安装在 `web` profile,并在安装后**重启 DSH**(插件为进程内加载,不重启不生效)。
|
|
295
293
|
|
|
296
294
|
**桌面上找不到浏览或编辑文件的界面**
|
|
297
295
|
|
|
@@ -321,11 +319,11 @@ pnpm pack
|
|
|
321
319
|
|
|
322
320
|
`npm pack` 的产物约 **0.25 MB**:2.2.0 删除独立页及其编辑器依赖、并关闭 source map 之后,从 1.72 MB 降下来。
|
|
323
321
|
|
|
324
|
-
v2.3.
|
|
322
|
+
v2.3.1 基于 DSH `master@47f943859bef60e4160492346772ded9b24f765a` 开发,CI 覆盖 Windows、Ubuntu 和 macOS。
|
|
325
323
|
|
|
326
324
|
## 项目信息
|
|
327
325
|
|
|
328
|
-
- 当前版本:`v2.3.
|
|
326
|
+
- 当前版本:`v2.3.1`
|
|
329
327
|
- 作者:上游 [Hakunm](https://github.com/Hakunm),本 fork 维护 [westanke](https://github.com/westanke)
|
|
330
328
|
- 仓库:[GitHub](https://github.com/westanke/dsh-remote-bridge) · [Gitee](https://gitee.com/westanke/dsh-remote-bridge)
|
|
331
329
|
- npm:[`dsh-remote-bridge`](https://www.npmjs.com/package/dsh-remote-bridge)([国内镜像](https://registry.npmmirror.com/dsh-remote-bridge))
|
package/docs/api/asyncapi.yaml
CHANGED
package/docs/api/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: DeepSeek Harness Mobile API
|
|
4
|
-
version: 2.3.
|
|
4
|
+
version: 2.3.1
|
|
5
5
|
description: Versioned file and chat BFF for mobile and third-party DSH clients. HTTP and HTTPS are both supported.
|
|
6
6
|
servers:
|
|
7
7
|
- url: http://127.0.0.1:3090/api/v1
|
|
@@ -24,7 +24,7 @@ paths:
|
|
|
24
24
|
properties:
|
|
25
25
|
ok: { type: boolean, const: true }
|
|
26
26
|
version: { type: string, const: v1 }
|
|
27
|
-
pluginVersion: { type: string, const: 2.3.
|
|
27
|
+
pluginVersion: { type: string, const: 2.3.1 }
|
|
28
28
|
/pairings/exchange:
|
|
29
29
|
post:
|
|
30
30
|
security: []
|
package/lib/index.d.ts
CHANGED
|
@@ -512,6 +512,25 @@ interface SessionControllerLike {
|
|
|
512
512
|
}): Promise<{
|
|
513
513
|
sessionId: string;
|
|
514
514
|
}>;
|
|
515
|
+
/**
|
|
516
|
+
* Read one message-aligned history page without activating an Agent.
|
|
517
|
+
*
|
|
518
|
+
* `throughSeq` must be obtained from the corresponding follow opening frame's
|
|
519
|
+
* `cursor`; hard-coding one returns a well-formed but empty page.
|
|
520
|
+
* `beforeSeq` is optional and acts as an earlier boundary.
|
|
521
|
+
*/
|
|
522
|
+
page(request: {
|
|
523
|
+
address: {
|
|
524
|
+
kind: 'session';
|
|
525
|
+
sessionId: string;
|
|
526
|
+
};
|
|
527
|
+
throughSeq: number;
|
|
528
|
+
beforeSeq?: number;
|
|
529
|
+
maxMessages?: number;
|
|
530
|
+
}, signal: AbortSignal): Promise<{
|
|
531
|
+
records: readonly unknown[];
|
|
532
|
+
hasMore: boolean;
|
|
533
|
+
}>;
|
|
515
534
|
/**
|
|
516
535
|
* 取一张**被这个会话引用过**的图片字节(内核主机端方法,名字就叫 `attachment`)。
|
|
517
536
|
*
|
package/lib/index.js
CHANGED
|
@@ -2475,7 +2475,7 @@ function createDsh02ApiProxy(host, options = {}) {
|
|
|
2475
2475
|
}),
|
|
2476
2476
|
create: (request) => call(() => host.sessionController.create(request.payload)),
|
|
2477
2477
|
history: (request) => call(async () => {
|
|
2478
|
-
const { sessionId, maxMessages } = request.payload;
|
|
2478
|
+
const { sessionId, maxMessages, beforeSeq } = request.payload;
|
|
2479
2479
|
const controller = new AbortController();
|
|
2480
2480
|
try {
|
|
2481
2481
|
const snapshot = (await host.sessionController.follow({
|
|
@@ -2489,10 +2489,23 @@ function createDsh02ApiProxy(host, options = {}) {
|
|
|
2489
2489
|
events: [],
|
|
2490
2490
|
hasMore: false
|
|
2491
2491
|
};
|
|
2492
|
-
return {
|
|
2492
|
+
if (beforeSeq === void 0) return {
|
|
2493
2493
|
events: Array.isArray(snapshot.records) ? [...snapshot.records] : [],
|
|
2494
2494
|
hasMore: snapshot.hasMore === true
|
|
2495
2495
|
};
|
|
2496
|
+
const page = await host.sessionController.page({
|
|
2497
|
+
address: {
|
|
2498
|
+
kind: "session",
|
|
2499
|
+
sessionId
|
|
2500
|
+
},
|
|
2501
|
+
throughSeq: snapshot.cursor,
|
|
2502
|
+
beforeSeq,
|
|
2503
|
+
...maxMessages === void 0 ? {} : { maxMessages }
|
|
2504
|
+
}, controller.signal);
|
|
2505
|
+
return {
|
|
2506
|
+
events: Array.isArray(page.records) ? [...page.records] : [],
|
|
2507
|
+
hasMore: page.hasMore === true
|
|
2508
|
+
};
|
|
2496
2509
|
} finally {
|
|
2497
2510
|
controller.abort();
|
|
2498
2511
|
}
|
|
@@ -3422,7 +3435,7 @@ async function inspectResolvedPath(root, wirePath) {
|
|
|
3422
3435
|
}
|
|
3423
3436
|
//#endregion
|
|
3424
3437
|
//#region src/shared/version.ts
|
|
3425
|
-
const PLUGIN_VERSION = "2.3.
|
|
3438
|
+
const PLUGIN_VERSION = "2.3.1";
|
|
3426
3439
|
//#endregion
|
|
3427
3440
|
//#region src/host/router.ts
|
|
3428
3441
|
var ApiRouter = class {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-remote-bridge",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "Versioned REST bridge for DeepSeek Harness: remote access for trusted clients (chat, files, devices) plus a Phone-settings panel inside the DSH WebUI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@11.19.0",
|