ds-harness-remote 0.3.35 → 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.
Files changed (53) hide show
  1. package/README.md +26 -24
  2. package/dist/client-runtime.d.ts +9 -4
  3. package/dist/client-runtime.d.ts.map +1 -1
  4. package/dist/client-runtime.js +137 -35
  5. package/dist/client-runtime.js.map +1 -1
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.github.js +79 -32
  8. package/dist/client.js +79 -32
  9. package/dist/client.js.map +1 -1
  10. package/dist/harness-api-bridge.d.ts +2 -9
  11. package/dist/harness-api-bridge.d.ts.map +1 -1
  12. package/dist/harness-api-bridge.js.map +1 -1
  13. package/dist/harness-remote-bridge.d.ts +46 -0
  14. package/dist/harness-remote-bridge.d.ts.map +1 -0
  15. package/dist/harness-remote-bridge.js +321 -0
  16. package/dist/harness-remote-bridge.js.map +1 -0
  17. package/dist/index.d.ts +4 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +870 -81
  20. package/dist/index.js.map +4 -4
  21. package/dist/remote-file-content-provider.d.ts +3 -1
  22. package/dist/remote-file-content-provider.d.ts.map +1 -1
  23. package/dist/remote-file-content-provider.js +10 -1
  24. package/dist/remote-file-content-provider.js.map +1 -1
  25. package/dist/remote-typert-gateway.d.ts +13 -0
  26. package/dist/remote-typert-gateway.d.ts.map +1 -0
  27. package/dist/remote-typert-gateway.js +242 -0
  28. package/dist/remote-typert-gateway.js.map +1 -0
  29. package/dist/rpc-router.d.ts +7 -2
  30. package/dist/rpc-router.d.ts.map +1 -1
  31. package/dist/rpc-router.js +61 -12
  32. package/dist/rpc-router.js.map +1 -1
  33. package/dist/server-api.d.ts +1 -1
  34. package/dist/server-api.d.ts.map +1 -1
  35. package/dist/server-api.js +14 -3
  36. package/dist/server-api.js.map +1 -1
  37. package/dist/service.d.ts +5 -3
  38. package/dist/service.d.ts.map +1 -1
  39. package/dist/service.js +26 -8
  40. package/dist/service.js.map +1 -1
  41. package/dist/typert-gateway-contract.d.ts +48 -0
  42. package/dist/typert-gateway-contract.d.ts.map +1 -0
  43. package/dist/typert-gateway-contract.js +2 -0
  44. package/dist/typert-gateway-contract.js.map +1 -0
  45. package/dist/typert-gateway-switch.d.ts +28 -7
  46. package/dist/typert-gateway-switch.d.ts.map +1 -1
  47. package/dist/typert-gateway-switch.js +114 -23
  48. package/dist/typert-gateway-switch.js.map +1 -1
  49. package/dist/version.d.ts +1 -1
  50. package/dist/version.d.ts.map +1 -1
  51. package/dist/version.js +1 -1
  52. package/dist/version.js.map +1 -1
  53. package/package.json +13 -8
package/README.md CHANGED
@@ -8,9 +8,9 @@ DeepSeek Remote plugin for DSH Host + Remote workspaces. One install provides en
8
8
 
9
9
  DeepSeek Remote 是 DSH Host + Remote 工作区插件。一次安装可提供本地设备到远端的加密远程访问能力,以及在现有 Harness UI 内切换远端工作区。
10
10
 
11
- No Client mode switch is required. Choosing a remote workspace keeps the local UI unchanged, routes requests through `RemoteHarnessApiProxy`, and falls back to local ApiProxy on disconnect or exit.
11
+ No Client mode switch is required. Choosing a remote workspace keeps the local UI unchanged, routes rc.2 through `RemoteHarnessApiProxy` or alpha.1 through the Typert Remote Gateway carrier, and falls back to the matching local transport on disconnect or exit.
12
12
 
13
- 无需启动或切换 Client 模式。选择远端工作区后,本地 UI 不变,请求通过 `RemoteHarnessApiProxy` 路由,断线或退出时恢复本地 ApiProxy。
13
+ 无需启动或切换 Client 模式。选择远端工作区后,本地 UI 不变:rc.2 请求通过 `RemoteHarnessApiProxy` 路由,alpha.1 请求通过 Typert Remote Gateway carrier 路由;断线或退出时恢复对应的本地 transport。
14
14
 
15
15
  ## User flow / 用户流程
16
16
 
@@ -24,17 +24,18 @@ No Client mode switch is required. Choosing a remote workspace keeps the local U
24
24
  3. 为当前机器启用远端控制,或直接选择另一台在线设备并控制它。
25
25
  4. 进入已有 Workspace,或浏览远端目录后打开 Workspace;使用 **退出** 回到本地并停止转发。
26
26
 
27
- ## Harness rc.2 images / Harness rc.2 图片
27
+ ## Harness images / Harness 图片
28
28
 
29
- With DSH `dsh-v0.1.1-rc.2`, the native conversation UI can send images through
30
- `session.prompt` and render them through the read-only `session.attachment`
31
- lookup. Large native ApiProxy envelopes use bounded 512 KiB transfer chunks;
32
- image preprocessing, DeepSeek Files API upload, and file-id reuse stay on the
33
- Host in the official adapter.
29
+ With DSH `dsh-v0.1.1-rc.2` or `dsh-v0.1.2-alpha.1`, the native conversation UI
30
+ can send images through `session.prompt` and render them through the read-only
31
+ `session.attachment` lookup. Large ApiProxy or Gateway envelopes use bounded
32
+ 512 KiB transfer chunks; image preprocessing, DeepSeek Files API upload, and
33
+ file-id reuse stay on the Host in the official adapter.
34
34
 
35
- 使用 DSH `dsh-v0.1.1-rc.2` 时,原生会话 UI 可通过 `session.prompt` 发送图片,并通过只读
36
- `session.attachment` 回读显示。较大的原生 ApiProxy envelope 使用受限的 512 KiB 分块;
37
- 图片预处理、DeepSeek Files API 上传与 file-id 复用仍由 Host 官方 adapter 完成。
35
+ 使用 DSH `dsh-v0.1.1-rc.2` 或 `dsh-v0.1.2-alpha.1` 时,原生会话 UI 可通过
36
+ `session.prompt` 发送图片,并通过只读 `session.attachment` 回读显示。较大的 ApiProxy 或
37
+ Gateway envelope 使用受限的 512 KiB 分块;图片预处理、DeepSeek Files API 上传与 file-id
38
+ 复用仍由 Host 官方 adapter 完成。
38
39
 
39
40
  ## Directory browsing / 目录浏览
40
41
 
@@ -68,22 +69,22 @@ general filesystem RPC.
68
69
 
69
70
  ```text
70
71
  Local Harness UI
71
- -> ApiProxySwitch
72
- -> RemoteHarnessApiProxy
72
+ -> ApiProxySwitch (rc.2) / TypertGatewaySwitch (alpha.1)
73
+ -> RemoteHarnessApiProxy / RemoteTypertGateway
73
74
  -> Adaptive transport (LAN / P2P / TURN / Relay)
74
75
  -> Noise IK secure channel
75
- -> HarnessApiBridge allowlist
76
- -> Remote Harness ApiProxy / FileViewerHost read-only bridge
76
+ -> HarnessApiBridge / HarnessRemoteBridge allowlist
77
+ -> Remote Harness ApiProxy or TypertGateway / FileViewerHost read-only bridge
77
78
  ```
78
79
 
79
80
  ```text
80
81
  本地 Harness UI
81
- -> ApiProxySwitch
82
- -> RemoteHarnessApiProxy
82
+ -> ApiProxySwitch(rc.2)/ TypertGatewaySwitch(alpha.1)
83
+ -> RemoteHarnessApiProxy / RemoteTypertGateway
83
84
  -> 自适应传输(LAN / P2P / TURN / Relay)
84
85
  -> Noise IK 安全通道
85
- -> HarnessApiBridge allowlist
86
- -> 远端 Harness ApiProxy / FileViewerHost 只读桥
86
+ -> HarnessApiBridge / HarnessRemoteBridge 白名单
87
+ -> 远端 Harness ApiProxy 或 TypertGateway / FileViewerHost 只读桥
87
88
  ```
88
89
 
89
90
  ## Key modules / 核心模块
@@ -92,6 +93,7 @@ Local Harness UI
92
93
  - `client-runtime.ts`: device list, connection, workspace actions / 设备列表、连接、工作区操作
93
94
  - `client.ts`: settings UI, remote modal, sidebar, remote header / 设置卡片、Remote 弹窗、侧边栏、远端 Header
94
95
  - `harness-api-bridge.ts`: ApiProxy allowlist and stream bridge / ApiProxy 白名单与 stream 桥接
96
+ - `harness-remote-bridge.ts`: alpha.1 Typert Remote allowlist and stream carrier / alpha.1 Typert Remote 白名单与 stream carrier
95
97
  - `file-viewer-bridge.ts`: bounded File Viewer read bridge / 受限 File Viewer 读取桥
96
98
  - `identity-store.ts` / `server-credentials.ts`: account-scoped identity and credentials / 账号隔离的身份与凭证
97
99
 
@@ -99,14 +101,14 @@ Local Harness UI
99
101
 
100
102
  - The Harness Host does not require a public listening port. Clients can connect from anywhere with internet access over a bidirectional end-to-end encrypted channel.
101
103
  - Host/Client authenticate with long-lived X25519 keys using Noise IK.
102
- - ApiProxy methods are allowlist-driven (fail-closed).
104
+ - ApiProxy methods and Typert Remote endpoints are allowlist-driven (fail-closed).
103
105
  - Workspace-picker browsing is metadata-only. Optional File Viewer preview is read-only, bounded, and provider-authorized.
104
106
  - Remote does not expose a direct shell, PTY, general tool RPC, remote desktop, or direct file-mutation API. Harness tools may still modify files or run commands under the Host's normal permission controls.
105
107
  - Data is stored under `$DSH_HOME/remote/servers/<origin-hash>/{host,client}`. Unix private keys must be `0600`.
106
108
 
107
109
  - Harness 主机无需开放公网监听端口;Client 可以从任意可上网的地方通过双向端到端加密链路连接。
108
110
  - Host/Client 使用长期 X25519 key + Noise IK 进行相互认证。
109
- - ApiProxy 仅允许白名单方法(未命中即拒绝)。
111
+ - ApiProxy 方法与 Typert Remote endpoint 均使用固定白名单(未命中即拒绝)。
110
112
  - Workspace 选择器目录浏览仅返回元数据;可选的 File Viewer 预览只读、分块且继续执行 provider 授权。
111
113
  - Remote 不开放直接 Shell、PTY、通用工具 RPC、远程桌面或直接文件修改 API。Harness 工具仍可以在 Host 原有权限控制下修改文件或运行命令。
112
114
  - 数据位于 `$DSH_HOME/remote/servers/<origin-hash>/{host,client}`,私钥权限需 `0600`。
@@ -126,7 +128,7 @@ Install the npm package for the `web` profile:
126
128
  通过 npm 包安装到 `web` profile:
127
129
 
128
130
  ```sh
129
- dsh plugin --profile web add ds-harness-remote@0.3.35
131
+ dsh plugin --profile web add ds-harness-remote@0.4.0
130
132
  ```
131
133
 
132
134
  npm / npm 包地址:<https://www.npmjs.com/package/ds-harness-remote>
@@ -136,11 +138,11 @@ Alternatively, install the pinned GitHub release in DSH Desktop or with the CLI:
136
138
  也可以在 DSH Desktop 中安装固定版本的 GitHub Release,或使用命令行安装:
137
139
 
138
140
  ```text
139
- github:liguobao/deepseek-harness-remote#v0.3.35
141
+ github:liguobao/deepseek-harness-remote#v0.4.0
140
142
  ```
141
143
 
142
144
  ```sh
143
- dsh plugin --profile web add "github:liguobao/deepseek-harness-remote#v0.3.35"
145
+ dsh plugin --profile web add "github:liguobao/deepseek-harness-remote#v0.4.0"
144
146
  ```
145
147
 
146
148
  GitHub / 项目地址:<https://github.com/liguobao/deepseek-harness-remote>
@@ -1,15 +1,18 @@
1
1
  import type { ApiProxy, RpcResult } from '@deepseek-ai/dsh-host-apiproxy/api';
2
+ import { RemoteClientCore } from '@dsh-remote/client-core';
2
3
  import { type RtcPeerConnectionFactory } from '@dsh-remote/webrtc';
3
4
  import { type HarnessMode } from './api-proxy-switch.js';
4
5
  import type { ResolvedConfig } from './config.js';
5
6
  import type { IdentityStore } from './identity-store.js';
6
- import type { TypertGatewayLike } from './harness-api-bridge.js';
7
+ import type { TypertGatewayLike } from './typert-gateway-contract.js';
7
8
  import type { SafeLogger } from './logging.js';
8
9
  import { ClientServerApi, type OAuthProvider } from './server-api.js';
9
10
  import { type WeriftFactoryOptions } from './werift-rtc.js';
10
11
  export interface RemoteHostFeatures {
11
12
  commandList: boolean;
12
13
  fileViewer: boolean;
14
+ apiProxy: boolean;
15
+ remoteGateway: boolean;
13
16
  }
14
17
  export interface RemoteDirectoryEntry {
15
18
  name: string;
@@ -74,10 +77,10 @@ export declare class ClientModeRuntime {
74
77
  private identity?;
75
78
  private connected?;
76
79
  private pendingWorkspaceSelection?;
77
- private readonly proxySwitch;
80
+ private readonly proxySwitch?;
78
81
  private readonly gatewaySwitch;
79
82
  private closed;
80
- constructor(config: ResolvedConfig, identities: IdentityStore, server: ClientServerApi, apiProxy: ApiProxy, typertGateway: TypertGatewayLike, logger: SafeLogger, host?: HostAuthorizationControl | undefined, rtcFactoryProvider?: (options?: WeriftFactoryOptions) => Promise<RtcPeerConnectionFactory | undefined>);
83
+ constructor(config: ResolvedConfig, identities: IdentityStore, server: ClientServerApi, apiProxy: ApiProxy | undefined, typertGateway: TypertGatewayLike, logger: SafeLogger, host?: HostAuthorizationControl | undefined, rtcFactoryProvider?: (options?: WeriftFactoryOptions) => Promise<RtcPeerConnectionFactory | undefined>);
81
84
  start(): Promise<void>;
82
85
  registerControl(connection: HostConnectionHandle): () => Promise<void>;
83
86
  status(): Record<string, unknown>;
@@ -95,7 +98,8 @@ export declare class ClientModeRuntime {
95
98
  private consumeWorkspaceSelection;
96
99
  close(): Promise<void>;
97
100
  private callRemoteFileViewer;
98
- private selectRemoteCommands;
101
+ private selectRemoteTarget;
102
+ private assertRemoteCompatible;
99
103
  private connect;
100
104
  private ensureConnected;
101
105
  handleControl(endpoint: string, payload: unknown, signal: AbortSignal): Promise<RpcResult<unknown>>;
@@ -109,4 +113,5 @@ export declare class ClientModeError extends Error {
109
113
  }
110
114
  /** Conservative feature profile for Hosts that predate fine-grained capability discovery. */
111
115
  export declare function remoteHostFeatures(clientVersion?: string): RemoteHostFeatures;
116
+ export declare function probeRemoteHostFeatures(client: RemoteClientCore, clientVersion?: string): Promise<RemoteHostFeatures>;
112
117
  //# sourceMappingURL=client-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-runtime.d.ts","sourceRoot":"","sources":["../src/client-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-runtime.d.ts","sourceRoot":"","sources":["../src/client-runtime.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { ClientSecureTransport } from './client-secure-transport.js';
5
5
  import { CONTROL_RPC_PREFIX } from './control-route.js';
6
6
  import { uuidV7 } from './ids.js';
7
7
  import { RemoteHarnessApiProxy } from './remote-api-proxy.js';
8
+ import { RemoteTypertGateway } from './remote-typert-gateway.js';
8
9
  import { ServerApiError, } from './server-api.js';
9
10
  import { TypertGatewaySwitch } from './typert-gateway-switch.js';
10
11
  import { loadNodeRtcFactory } from './werift-rtc.js';
@@ -31,7 +32,7 @@ export class ClientModeRuntime {
31
32
  this.logger = logger;
32
33
  this.host = host;
33
34
  this.rtcFactoryProvider = rtcFactoryProvider;
34
- this.proxySwitch = new ApiProxySwitch(apiProxy);
35
+ this.proxySwitch = apiProxy === undefined ? undefined : new ApiProxySwitch(apiProxy);
35
36
  this.gatewaySwitch = new TypertGatewaySwitch(typertGateway);
36
37
  }
37
38
  async start() {
@@ -39,7 +40,7 @@ export class ClientModeRuntime {
39
40
  throw new Error('client remote-mode runtime is closed');
40
41
  this.identity = await this.identities.loadOrCreate(this.config.deviceName);
41
42
  this.server.bindIdentity(this.identity);
42
- this.proxySwitch.install();
43
+ this.proxySwitch?.install();
43
44
  this.gatewaySwitch.install();
44
45
  this.logger.info('client remote-mode identity ready', {
45
46
  deviceId: shortId(this.identity.deviceId),
@@ -52,13 +53,16 @@ export class ClientModeRuntime {
52
53
  });
53
54
  }
54
55
  status() {
56
+ const targetStatus = this.gatewaySwitch.supportsCarrier()
57
+ ? this.gatewaySwitch.status()
58
+ : this.proxySwitch?.status() ?? this.gatewaySwitch.status();
55
59
  return {
56
60
  available: this.config.serverUrl !== undefined,
57
61
  identityReady: this.identity !== undefined,
58
62
  deviceId: this.identity?.deviceId,
59
63
  deviceName: this.identity?.name,
60
64
  serverUrl: this.config.serverUrl,
61
- ...this.proxySwitch.status(),
65
+ ...targetStatus,
62
66
  connected: this.connected !== undefined,
63
67
  transport: this.connected?.client.getStats().mode ?? 'Disconnected',
64
68
  preferredTransports: this.config.forceRelay ? ['relay'] : ['lan', 'p2p', 'turn', 'relay'],
@@ -123,26 +127,21 @@ export class ClientModeRuntime {
123
127
  return this.server.startOAuthQrLogin(provider);
124
128
  }
125
129
  async pollClientOAuthQrLogin(qrId) {
126
- try {
127
- const result = await this.server.pollOAuthQrLogin(this.requireIdentity(), qrId);
128
- if (result.status === 'complete')
129
- this.logger.info('Client account authorized with QR login');
130
- return result;
131
- }
132
- catch (error) {
133
- if (!(error instanceof ServerApiError) || error.code !== 'DEVICE_REVOKED')
134
- throw error;
130
+ const result = await this.server.pollOAuthQrLogin(this.requireIdentity(), qrId, async () => {
135
131
  this.identity = await this.identities.reset(this.config.deviceName);
136
132
  this.server.bindIdentity(this.identity);
137
- this.logger.info('Rotated revoked Client identity before QR retry');
138
- return { status: 'expired' };
139
- }
133
+ this.logger.info('Rotated revoked Client identity before QR authorization retry');
134
+ return this.identity;
135
+ });
136
+ if (result.status === 'complete')
137
+ this.logger.info('Client account authorized with QR login');
138
+ return result;
140
139
  }
141
140
  async clearClientAuthorization() {
142
141
  const previous = this.connected;
143
142
  this.connected = undefined;
144
143
  this.pendingWorkspaceSelection = undefined;
145
- this.proxySwitch.selectLocal();
144
+ this.proxySwitch?.selectLocal();
146
145
  this.gatewaySwitch.selectLocal();
147
146
  await previous?.client.close().catch(() => undefined);
148
147
  await this.server.revokeCurrentDevice();
@@ -162,7 +161,7 @@ export class ClientModeRuntime {
162
161
  }
163
162
  async setMode(mode, targetDeviceId, signal) {
164
163
  if (mode === 'local') {
165
- this.proxySwitch.selectLocal();
164
+ this.proxySwitch?.selectLocal();
166
165
  this.gatewaySwitch.selectLocal();
167
166
  const previous = this.connected;
168
167
  this.connected = undefined;
@@ -175,18 +174,32 @@ export class ClientModeRuntime {
175
174
  throw new ClientModeError('INVALID_MESSAGE', 'A targetDeviceId is required for remote mode.');
176
175
  }
177
176
  const next = await this.connect(targetDeviceId, signal);
177
+ try {
178
+ this.assertRemoteCompatible(next);
179
+ }
180
+ catch (error) {
181
+ await next.client.close().catch(() => undefined);
182
+ throw error;
183
+ }
178
184
  const previous = this.connected;
179
185
  this.connected = next;
180
186
  this.pendingWorkspaceSelection = undefined;
181
- const remoteApi = new RemoteHarnessApiProxy(next.client).api;
182
- this.proxySwitch.selectRemote(remoteApi, { deviceId: next.target.deviceId, name: next.target.name });
183
- this.selectRemoteCommands(next);
187
+ this.selectRemoteTarget(next);
184
188
  await previous?.client.close().catch(() => undefined);
185
189
  this.logger.info('Harness target switched', { mode: 'remote', targetDeviceId: shortId(next.target.deviceId) });
186
190
  return this.status();
187
191
  }
188
192
  async listRemoteDirectory(targetDeviceId, path, signal) {
189
193
  const remote = await this.ensureConnected(targetDeviceId, signal);
194
+ if (remote.features.remoteGateway) {
195
+ const value = await new RemoteTypertGateway(remote.client).invoke({
196
+ namespace: 'directoryPicker',
197
+ method: 'list',
198
+ args: path === undefined ? {} : { path },
199
+ ...(signal === undefined ? {} : { signal }),
200
+ });
201
+ return value;
202
+ }
190
203
  const api = new RemoteHarnessApiProxy(remote.client).api;
191
204
  const response = await api.host.listDirectory({
192
205
  rpcId: `remote-directory-${Date.now()}`,
@@ -196,6 +209,9 @@ export class ClientModeRuntime {
196
209
  }
197
210
  async listRemoteWorkspaces(targetDeviceId, signal) {
198
211
  const remote = await this.ensureConnected(targetDeviceId, signal);
212
+ if (remote.features.remoteGateway) {
213
+ return readRemoteWorkspaceBaseline(new RemoteTypertGateway(remote.client), signal);
214
+ }
199
215
  const api = new RemoteHarnessApiProxy(remote.client).api;
200
216
  const response = await api.workspace.list({
201
217
  rpcId: `remote-workspaces-${Date.now()}`,
@@ -208,14 +224,25 @@ export class ClientModeRuntime {
208
224
  if (path.trim() === '')
209
225
  throw new ClientModeError('INVALID_MESSAGE', 'A remote working directory is required.');
210
226
  const remote = await this.ensureConnected(targetDeviceId, signal);
211
- const api = new RemoteHarnessApiProxy(remote.client).api;
212
- const response = await api.workspace.create({
213
- rpcId: `remote-workspace-${Date.now()}`,
214
- payload: { path },
215
- });
216
- const workspace = unwrapNativeResult(response);
217
- this.proxySwitch.selectRemote(api, { deviceId: remote.target.deviceId, name: remote.target.name });
218
- this.selectRemoteCommands(remote);
227
+ this.assertRemoteCompatible(remote);
228
+ let workspace;
229
+ if (remote.features.remoteGateway) {
230
+ workspace = await new RemoteTypertGateway(remote.client).invoke({
231
+ namespace: 'workspace',
232
+ method: 'create',
233
+ args: { request: { path } },
234
+ ...(signal === undefined ? {} : { signal }),
235
+ });
236
+ }
237
+ else {
238
+ const api = new RemoteHarnessApiProxy(remote.client).api;
239
+ const response = await api.workspace.create({
240
+ rpcId: `remote-workspace-${Date.now()}`,
241
+ payload: { path },
242
+ });
243
+ workspace = unwrapNativeResult(response);
244
+ }
245
+ this.selectRemoteTarget(remote);
219
246
  const workspaceId = workspaceRecordId(workspace.workspace);
220
247
  this.pendingWorkspaceSelection = { targetDeviceId: remote.target.deviceId, workspaceId };
221
248
  this.logger.info('Remote workspace opened', { targetDeviceId: shortId(remote.target.deviceId) });
@@ -232,17 +259,17 @@ export class ClientModeRuntime {
232
259
  if (this.closed)
233
260
  return;
234
261
  this.closed = true;
235
- this.proxySwitch.selectLocal();
262
+ this.proxySwitch?.selectLocal();
236
263
  this.gatewaySwitch.selectLocal();
237
264
  this.pendingWorkspaceSelection = undefined;
238
265
  await this.connected?.client.close().catch(() => undefined);
239
266
  this.connected = undefined;
240
- this.proxySwitch.restore();
267
+ this.proxySwitch?.restore();
241
268
  this.gatewaySwitch.restore();
242
269
  }
243
270
  async callRemoteFileViewer(endpoint, payload, signal) {
244
271
  const remote = this.connected;
245
- if (remote === undefined || this.proxySwitch.status().mode !== 'remote') {
272
+ if (remote === undefined || this.status().mode !== 'remote') {
246
273
  throw new ClientModeError('REMOTE_NOT_CONNECTED', 'No Remote Host is selected.', true);
247
274
  }
248
275
  if (!remote.features.fileViewer) {
@@ -250,11 +277,26 @@ export class ClientModeRuntime {
250
277
  }
251
278
  return remote.client.rpc('fileviewer.call', { endpoint, payload }, signal);
252
279
  }
253
- selectRemoteCommands(remote) {
280
+ selectRemoteTarget(remote) {
281
+ const target = { deviceId: remote.target.deviceId, name: remote.target.name };
282
+ if (this.gatewaySwitch.supportsCarrier()) {
283
+ this.gatewaySwitch.selectRemote(new RemoteTypertGateway(remote.client), undefined, target);
284
+ return;
285
+ }
286
+ this.proxySwitch.selectRemote(new RemoteHarnessApiProxy(remote.client).api, target);
254
287
  this.gatewaySwitch.selectRemote(request => invokeRemoteCommand(remote.client, request), {
255
288
  execute: true,
256
289
  list: remote.features.commandList,
257
- });
290
+ }, target);
291
+ }
292
+ assertRemoteCompatible(remote) {
293
+ const localRemoteGateway = this.gatewaySwitch.supportsCarrier();
294
+ if ((localRemoteGateway && remote.features.remoteGateway)
295
+ || (!localRemoteGateway && this.proxySwitch !== undefined && remote.features.apiProxy))
296
+ return;
297
+ throw new ClientModeError('HARNESS_VERSION_INCOMPATIBLE', localRemoteGateway
298
+ ? 'The selected Host does not provide the Harness alpha Remote Gateway transport.'
299
+ : 'The selected Host does not provide the legacy Harness ApiProxy transport.');
258
300
  }
259
301
  async connect(targetDeviceId, signal) {
260
302
  signal?.throwIfAborted();
@@ -327,7 +369,7 @@ export class ClientModeRuntime {
327
369
  return;
328
370
  this.connected = undefined;
329
371
  this.pendingWorkspaceSelection = undefined;
330
- this.proxySwitch.selectLocal();
372
+ this.proxySwitch?.selectLocal();
331
373
  this.gatewaySwitch.selectLocal();
332
374
  void connectedClient.close().catch(() => undefined);
333
375
  this.logger.warn('remote Harness transport closed; falling back to local mode', {
@@ -340,7 +382,8 @@ export class ClientModeRuntime {
340
382
  transport: connectedClient.getStats().mode,
341
383
  ...webrtcDiagnosticsLogFields(connectionDetails?.webRtc?.diagnostics),
342
384
  });
343
- return { client: connectedClient, target, transport: connectedTransport, features: remoteHostFeatures(serverDevice.clientVersion) };
385
+ const features = await probeRemoteHostFeatures(connectedClient, serverDevice.clientVersion);
386
+ return { client: connectedClient, target, transport: connectedTransport, features };
344
387
  }
345
388
  catch (error) {
346
389
  await client?.close().catch(() => undefined);
@@ -525,6 +568,9 @@ function record(value) {
525
568
  }
526
569
  return value;
527
570
  }
571
+ function isRecord(value) {
572
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
573
+ }
528
574
  function ok(value) { return { ok: true, value }; }
529
575
  async function invokeRemoteCommand(client, request) {
530
576
  const rpcId = uuidV7();
@@ -538,6 +584,32 @@ async function invokeRemoteCommand(client, request) {
538
584
  }
539
585
  return unwrapNativeResult(response);
540
586
  }
587
+ async function readRemoteWorkspaceBaseline(gateway, signal) {
588
+ const lifetime = new AbortController();
589
+ const activeSignal = signal === undefined
590
+ ? lifetime.signal
591
+ : AbortSignal.any([signal, lifetime.signal]);
592
+ const source = await gateway.open('workspace/follow', { args: {} }, activeSignal);
593
+ const iterator = source[Symbol.asyncIterator]();
594
+ try {
595
+ const first = await iterator.next();
596
+ if (first.done || !isRecord(first.value) || first.value.type !== 'baseline'
597
+ || !isRecord(first.value.value) || !Array.isArray(first.value.value.items)) {
598
+ throw new ClientModeError('INVALID_MESSAGE', 'The remote Host returned an invalid Workspace baseline.');
599
+ }
600
+ return first.value.value.items.map((item) => {
601
+ if (!isRecord(item) || typeof item.workspaceId !== 'string'
602
+ || typeof item.path !== 'string' || typeof item.title !== 'string') {
603
+ throw new ClientModeError('INVALID_MESSAGE', 'The remote Host returned an invalid Workspace row.');
604
+ }
605
+ return { workspaceId: item.workspaceId, path: item.path, title: item.title };
606
+ });
607
+ }
608
+ finally {
609
+ lifetime.abort('workspace-baseline-read');
610
+ await iterator.return?.();
611
+ }
612
+ }
541
613
  function unwrapNativeResult(response) {
542
614
  const result = response.result;
543
615
  if (typeof result !== 'object' || result === null || !('ok' in result)) {
@@ -582,6 +654,36 @@ export function remoteHostFeatures(clientVersion) {
582
654
  return {
583
655
  commandList: isVersionAtLeast(clientVersion, REMOTE_COMMAND_LIST_MIN_VERSION),
584
656
  fileViewer: isVersionAtLeast(clientVersion, REMOTE_FILE_VIEWER_MIN_VERSION),
657
+ apiProxy: true,
658
+ remoteGateway: false,
659
+ };
660
+ }
661
+ export async function probeRemoteHostFeatures(client, clientVersion) {
662
+ const fallback = remoteHostFeatures(clientVersion);
663
+ let value;
664
+ try {
665
+ value = await client.rpc('harness.transport.describe', {});
666
+ }
667
+ catch (error) {
668
+ if (error instanceof Error && 'code' in error && error.code === 'METHOD_NOT_FOUND')
669
+ return fallback;
670
+ throw error;
671
+ }
672
+ if (!isRecord(value) || !Array.isArray(value.capabilities)
673
+ || value.capabilities.some(capability => typeof capability !== 'string')) {
674
+ throw new ClientModeError('INVALID_MESSAGE', 'The remote Host returned invalid transport capabilities.');
675
+ }
676
+ const capabilities = new Set(value.capabilities);
677
+ const apiProxy = capabilities.has('harness.api.v1');
678
+ const remoteGateway = capabilities.has('harness.remote.v1');
679
+ if (!apiProxy && !remoteGateway) {
680
+ throw new ClientModeError('FEATURE_NOT_SUPPORTED', 'The remote Host exposes no supported Harness transport.');
681
+ }
682
+ return {
683
+ commandList: remoteGateway || (apiProxy && fallback.commandList),
684
+ fileViewer: capabilities.has('fileviewer.read.v1'),
685
+ apiProxy,
686
+ remoteGateway,
585
687
  };
586
688
  }
587
689
  function isVersionAtLeast(value, minimum) {
@@ -1 +1 @@
1
- {"version":3,"file":"client-runtime.js","sourceRoot":"","sources":["../src/client-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-runtime.js","sourceRoot":"","sources":["../src/client-runtime.ts"],"names":[],"mappings":"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"}