dsh-web-remote 0.4.0 → 0.5.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/dist/index.d.ts +4 -24
- package/dist/index.js +38 -4
- package/dist/index.js.map +1 -1
- package/dist/rpc-route.d.ts +73 -0
- package/dist/rpc-route.js +148 -0
- package/dist/rpc-route.js.map +1 -0
- package/package.json +4 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,30 +1,10 @@
|
|
|
1
|
+
import type { ConnectionService, WebServerService } from "./rpc-route.ts";
|
|
1
2
|
/** 面板状态(client 半 §2 五态 + 断开后态) */
|
|
2
3
|
export type Status = "unconfigured" | "disconnected" | "connecting" | "connected" | "reconnecting" | "external";
|
|
3
|
-
type RpcResult = {
|
|
4
|
-
ok: true;
|
|
5
|
-
value: unknown;
|
|
6
|
-
} | {
|
|
7
|
-
ok: false;
|
|
8
|
-
error: {
|
|
9
|
-
code: string;
|
|
10
|
-
message: string;
|
|
11
|
-
details?: unknown;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
interface RpcHandler {
|
|
15
|
-
handle(channel: string, handler: (endpoint: string, payload: {
|
|
16
|
-
args?: Record<string, unknown>;
|
|
17
|
-
}, signal: AbortSignal) => Promise<RpcResult>, options?: {
|
|
18
|
-
authority?: string;
|
|
19
|
-
}): void;
|
|
20
|
-
}
|
|
21
4
|
interface Ctx {
|
|
22
|
-
connection:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
webServer: {
|
|
26
|
-
port: number;
|
|
27
|
-
};
|
|
5
|
+
connection: ConnectionService;
|
|
6
|
+
webServer: WebServerService;
|
|
7
|
+
effect(callback: () => unknown, label: string): void;
|
|
28
8
|
on(event: string, cb: () => void): void;
|
|
29
9
|
}
|
|
30
10
|
export declare const inject: string[];
|
package/dist/index.js
CHANGED
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
* (`127.0.0.1:<webServer.port>`), and exposes the `/remote-access` RPC channel
|
|
6
6
|
* (`connect` / `disconnect` / `revoke` / `state`) to the browser client half.
|
|
7
7
|
*
|
|
8
|
+
* The channel is a native prefix route on the web server (see `./rpc-route.ts`),
|
|
9
|
+
* not `connection.rpc.handle(...)`: since 0.1.5-rc.2 that helper reads
|
|
10
|
+
* `owner.webServer` through a service shadow whose fiber cannot resolve
|
|
11
|
+
* `webServer` for third-party plugins and aborts the whole plugin tree
|
|
12
|
+
* (upstream regression, deepseek-harness discussion #5926).
|
|
13
|
+
*
|
|
8
14
|
* Function-plugin form (export `inject` + `apply`) — no `@deepseek-ai/cordis`
|
|
9
15
|
* runtime import, only a minimal local `Ctx` type.
|
|
10
16
|
*/
|
|
11
17
|
import { existsSync } from "node:fs";
|
|
12
|
-
import { registerJoin, startJoin, selfRevoke, clearPersistedToken, readPersistedToken, readJoinLock, loadConfig, saveConfig, DEFAULT_HOST_CONFIG_PATH, } from "rdsh-gateway";
|
|
18
|
+
import { registerJoin, startJoin, selfRevoke, clearPersistedToken, readPersistedToken, readJoinLock, loadConfig, saveConfig, exchangeDshSessionCookie, DEFAULT_HOST_CONFIG_PATH, } from "rdsh-gateway";
|
|
19
|
+
import { RPC_CHANNEL, handleRpcRoute } from "./rpc-route.js";
|
|
13
20
|
const ok = (value) => ({ ok: true, value });
|
|
14
21
|
const err = (code, message) => ({ ok: false, error: { code, message, details: {} } });
|
|
15
22
|
function mapState(s) {
|
|
@@ -35,6 +42,26 @@ export function apply(ctx) {
|
|
|
35
42
|
let liveCompat; // 运行中切换的 dshUiCompat(覆盖 host.json)
|
|
36
43
|
let liveAccessCode; // 运行中切换的访问密码(undefined=未初始化;null=关闭)
|
|
37
44
|
let currentConfig = null; // 最近一次读到的 host.json
|
|
45
|
+
let dshAuthCookieHeader = null; // 0.1.2+ 进程内换发的 dsh 会话 cookie
|
|
46
|
+
// 0.1.2+ 进程内换发:能力探测 authenticatedUrl → 换发浏览器会话 cookie(0.1.1 无此方法 → 跳过)
|
|
47
|
+
const authConn = ctx.connection;
|
|
48
|
+
if (typeof authConn.authenticatedUrl === "function") {
|
|
49
|
+
void (async () => {
|
|
50
|
+
try {
|
|
51
|
+
const url = authConn.authenticatedUrl(`http://127.0.0.1:${ctx.webServer.port}`);
|
|
52
|
+
const token = new URL(url).searchParams.get("token");
|
|
53
|
+
if (token !== null) {
|
|
54
|
+
dshAuthCookieHeader = await exchangeDshSessionCookie(ctx.webServer.port, token);
|
|
55
|
+
if (dshAuthCookieHeader === null) {
|
|
56
|
+
lastMessage = "dsh 0.1.2 认证换发失败,远程访问将不可用";
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
/* 能力探测失败静默:0.1.1 无认证,无需 cookie */
|
|
62
|
+
}
|
|
63
|
+
})();
|
|
64
|
+
}
|
|
38
65
|
const hooks = {
|
|
39
66
|
onState: (s, detail) => {
|
|
40
67
|
liveState = s;
|
|
@@ -122,6 +149,7 @@ export function apply(ctx) {
|
|
|
122
149
|
role: "plugin",
|
|
123
150
|
dshUiCompat: config.dshUiCompat,
|
|
124
151
|
gateway: config.gateway,
|
|
152
|
+
dshAuthCookieHeader,
|
|
125
153
|
name,
|
|
126
154
|
hooks,
|
|
127
155
|
});
|
|
@@ -286,8 +314,9 @@ export function apply(ctx) {
|
|
|
286
314
|
return err("internal", e instanceof Error ? e.message : String(e));
|
|
287
315
|
}
|
|
288
316
|
}
|
|
289
|
-
|
|
290
|
-
|
|
317
|
+
/** Business dispatch of the browser half's channel; the envelope is handled by `handleRpcRoute`. */
|
|
318
|
+
const dispatch = async (endpoint, payload) => {
|
|
319
|
+
const args = payload.args ?? {};
|
|
291
320
|
switch (endpoint) {
|
|
292
321
|
case "connect":
|
|
293
322
|
return await connect(args);
|
|
@@ -304,7 +333,12 @@ export function apply(ctx) {
|
|
|
304
333
|
default:
|
|
305
334
|
return err("bad-request", `unknown endpoint ${endpoint}`);
|
|
306
335
|
}
|
|
307
|
-
}
|
|
336
|
+
};
|
|
337
|
+
ctx.effect(() => ctx.webServer.register({
|
|
338
|
+
kind: "prefix",
|
|
339
|
+
path: RPC_CHANNEL,
|
|
340
|
+
handler: (req, res) => void handleRpcRoute(ctx.connection, req, res, dispatch),
|
|
341
|
+
}), `dsh-web-remote: ${RPC_CHANNEL} RPC route`);
|
|
308
342
|
// 启动自动接入(静默;CLI 托管时跳过,见 autoConnect 前置条件)
|
|
309
343
|
void autoConnect();
|
|
310
344
|
ctx.on("dispose", () => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `/remote-access` HTTP route: the browser half's unary RPC channel.
|
|
3
|
+
*
|
|
4
|
+
* The plugin registers it on the DSH web server (`ctx.webServer.register`)
|
|
5
|
+
* instead of using the connection service's own `rpc.handle(...)`: since dsh
|
|
6
|
+
* `0.1.5-rc.2` that helper reaches `owner.webServer` through a service shadow
|
|
7
|
+
* that cannot resolve `webServer` for third-party plugin rows and aborts the
|
|
8
|
+
* whole plugin tree at boot (upstream regression, deepseek-harness discussion
|
|
9
|
+
* #5926). The wire contract is deliberately the connection service's own —
|
|
10
|
+
* `POST <channel>/<endpoint>` carrying a `client-request` envelope and
|
|
11
|
+
* answering with a `server-response` envelope, behind the same official
|
|
12
|
+
* Host/Origin + browser-session fence — so the browser half is unchanged and
|
|
13
|
+
* one code path serves both dsh `0.1.2-rc.1` and `0.1.5-rc.2`.
|
|
14
|
+
*
|
|
15
|
+
* The status semantics mirror `dsh-client-connection`'s `rpcFetchHandler`:
|
|
16
|
+
* 404 wrong method/endpoint, 415 wrong content type, 400 unparsable body,
|
|
17
|
+
* 500 a throwing handler, and 200 for every envelope-level outcome — including
|
|
18
|
+
* an invalid envelope or a `method` that disagrees with the path, which are
|
|
19
|
+
* reported as `gateway/bad-request` business failures.
|
|
20
|
+
*
|
|
21
|
+
* Kept free of filesystem and tunnel state so the protocol can be unit-tested
|
|
22
|
+
* without touching the host's real rdsh configuration.
|
|
23
|
+
* @module
|
|
24
|
+
*/
|
|
25
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
26
|
+
/** One business result, enveloped for the browser half. */
|
|
27
|
+
export type RpcResult = {
|
|
28
|
+
ok: true;
|
|
29
|
+
value: unknown;
|
|
30
|
+
} | {
|
|
31
|
+
ok: false;
|
|
32
|
+
error: {
|
|
33
|
+
code: string;
|
|
34
|
+
message: string;
|
|
35
|
+
details?: unknown;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/** One business endpoint of the browser half's RPC channel. */
|
|
39
|
+
export type RpcDispatch = (endpoint: string, payload: {
|
|
40
|
+
args?: Record<string, unknown>;
|
|
41
|
+
}, signal: AbortSignal) => Promise<RpcResult>;
|
|
42
|
+
/** Channel path the browser half calls (`client.js`): POST `<path>/<endpoint>`. */
|
|
43
|
+
export declare const RPC_CHANNEL = "/remote-access";
|
|
44
|
+
/** Business payloads are tiny (hub url, token, access code); the cap bounds a hostile body. */
|
|
45
|
+
export declare const MAX_REQUEST_BODY_BYTES: number;
|
|
46
|
+
/** The slice of the DSH connection service this plugin uses. */
|
|
47
|
+
export interface ConnectionService {
|
|
48
|
+
/** Official Host/Origin fence + browser-session check, shared with DSH's own routes. */
|
|
49
|
+
requestRejection(request: Request): number | undefined;
|
|
50
|
+
/** 0.1.2+ in-process launch-token exchange; absent on older dsh. */
|
|
51
|
+
authenticatedUrl?: (baseUrl: string) => string;
|
|
52
|
+
}
|
|
53
|
+
/** One prefix route as the DSH web server (`webServer.register`) accepts it. */
|
|
54
|
+
export interface WebServerRoute {
|
|
55
|
+
kind: "prefix";
|
|
56
|
+
path: string;
|
|
57
|
+
handler: (req: IncomingMessage, res: ServerResponse) => void | Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
/** The slice of the DSH web-server service this plugin uses. */
|
|
60
|
+
export interface WebServerService {
|
|
61
|
+
port: number;
|
|
62
|
+
register(route: WebServerRoute): unknown;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Serve one call on the browser half's RPC channel: the official Host/Origin +
|
|
66
|
+
* browser-session fence first, then the connection service's own status
|
|
67
|
+
* semantics.
|
|
68
|
+
* @param connection - connection service providing the official fence.
|
|
69
|
+
* @param req - incoming node request.
|
|
70
|
+
* @param res - node response this handler owns to completion.
|
|
71
|
+
* @param dispatch - business endpoint switch of the channel.
|
|
72
|
+
*/
|
|
73
|
+
export declare function handleRpcRoute(connection: ConnectionService, req: IncomingMessage, res: ServerResponse, dispatch: RpcDispatch): Promise<void>;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/** Channel path the browser half calls (`client.js`): POST `<path>/<endpoint>`. */
|
|
2
|
+
export const RPC_CHANNEL = "/remote-access";
|
|
3
|
+
/** Business payloads are tiny (hub url, token, access code); the cap bounds a hostile body. */
|
|
4
|
+
export const MAX_REQUEST_BODY_BYTES = 64 * 1024;
|
|
5
|
+
/** Correlation id the connection service answers with when the envelope carries none. */
|
|
6
|
+
const INVALID_REQUEST_RPC_ID = "invalid-request";
|
|
7
|
+
/** Endpoint segment shape the connection service accepts. */
|
|
8
|
+
const ENDPOINT_SEGMENT_PATTERN = /^[A-Za-z0-9_$.-]+$/;
|
|
9
|
+
/** Serialize one business result into the envelope the browser half parses. */
|
|
10
|
+
function serverResponse(rpcId, result) {
|
|
11
|
+
return JSON.stringify({ type: "server-response", rpcId, result });
|
|
12
|
+
}
|
|
13
|
+
/** Answer an envelope failure the way the connection service does: 200 + `gateway/bad-request`. */
|
|
14
|
+
function envelopeFailure(res, rpcId, message) {
|
|
15
|
+
res.writeHead(200, { "content-type": "application/json" });
|
|
16
|
+
res.end(serverResponse(rpcId, { ok: false, error: { code: "gateway/bad-request", message, details: {} } }));
|
|
17
|
+
}
|
|
18
|
+
/** Whether a parsed JSON value is a non-null, non-array object. */
|
|
19
|
+
function isRecord(value) {
|
|
20
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21
|
+
}
|
|
22
|
+
/** Endpoint named by the path, or `undefined` when the path is not exactly `<channel>/<segment>`. */
|
|
23
|
+
function endpointFromPath(pathname) {
|
|
24
|
+
if (!pathname.startsWith(`${RPC_CHANNEL}/`))
|
|
25
|
+
return undefined;
|
|
26
|
+
const endpoint = pathname.slice(RPC_CHANNEL.length + 1);
|
|
27
|
+
const segments = endpoint.split("/");
|
|
28
|
+
if (segments.some((segment) => segment === "" || segment === "." || segment === ".." || !ENDPOINT_SEGMENT_PATTERN.test(segment))) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return endpoint;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Buffer the request body under `MAX_REQUEST_BODY_BYTES`. When the cap is
|
|
35
|
+
* exceeded the caller has already answered 413 and destroyed the socket, so a
|
|
36
|
+
* hostile caller cannot grow the buffer.
|
|
37
|
+
* @param req - incoming request.
|
|
38
|
+
* @param res - response used to refuse an oversized body.
|
|
39
|
+
* @returns the body, or `null` when the request was refused.
|
|
40
|
+
*/
|
|
41
|
+
async function readBody(req, res) {
|
|
42
|
+
const declared = req.headers["content-length"];
|
|
43
|
+
if (declared !== undefined && Number(declared) > MAX_REQUEST_BODY_BYTES) {
|
|
44
|
+
res.writeHead(413, { connection: "close" });
|
|
45
|
+
res.end();
|
|
46
|
+
req.destroy();
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const chunks = [];
|
|
50
|
+
let received = 0;
|
|
51
|
+
for await (const chunk of req) {
|
|
52
|
+
const buffer = chunk;
|
|
53
|
+
received += buffer.byteLength;
|
|
54
|
+
if (received > MAX_REQUEST_BODY_BYTES) {
|
|
55
|
+
res.writeHead(413, { connection: "close" });
|
|
56
|
+
res.end();
|
|
57
|
+
req.destroy();
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
chunks.push(buffer);
|
|
61
|
+
}
|
|
62
|
+
return Buffer.concat(chunks);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Serve one call on the browser half's RPC channel: the official Host/Origin +
|
|
66
|
+
* browser-session fence first, then the connection service's own status
|
|
67
|
+
* semantics.
|
|
68
|
+
* @param connection - connection service providing the official fence.
|
|
69
|
+
* @param req - incoming node request.
|
|
70
|
+
* @param res - node response this handler owns to completion.
|
|
71
|
+
* @param dispatch - business endpoint switch of the channel.
|
|
72
|
+
*/
|
|
73
|
+
export async function handleRpcRoute(connection, req, res, dispatch) {
|
|
74
|
+
/* node:http always sets url/method on server requests; the fallbacks keep the
|
|
75
|
+
handler total for hand-built requests. */
|
|
76
|
+
const url = new URL(req.url ?? `${RPC_CHANNEL}/`, "http://dsh.internal");
|
|
77
|
+
/* String-valued headers only: the fence reads Host/Origin/Cookie, and
|
|
78
|
+
set-cookie style array headers never appear on a request. */
|
|
79
|
+
const headers = {};
|
|
80
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
81
|
+
if (typeof value === "string")
|
|
82
|
+
headers[key] = value;
|
|
83
|
+
}
|
|
84
|
+
// The body is deliberately not read yet: an unauthenticated caller is
|
|
85
|
+
// rejected before any buffering happens.
|
|
86
|
+
const rejection = connection.requestRejection(new Request(`${url.origin}${url.pathname}`, { method: req.method ?? "POST", headers }));
|
|
87
|
+
if (rejection !== undefined) {
|
|
88
|
+
res.writeHead(rejection, { "content-type": "text/plain" });
|
|
89
|
+
res.end(rejection === 401 ? "unauthorized" : "forbidden");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const endpoint = endpointFromPath(url.pathname);
|
|
93
|
+
if ((req.method ?? "GET") !== "POST" || endpoint === undefined) {
|
|
94
|
+
res.writeHead(404, { "content-type": "text/plain" });
|
|
95
|
+
res.end("not found");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if ((req.headers["content-type"] ?? "").split(";", 1)[0]?.trim().toLowerCase() !== "application/json") {
|
|
99
|
+
res.writeHead(415, { "content-type": "text/plain" });
|
|
100
|
+
res.end("content type must be application/json");
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const body = await readBody(req, res);
|
|
104
|
+
if (body === null)
|
|
105
|
+
return;
|
|
106
|
+
let envelope;
|
|
107
|
+
try {
|
|
108
|
+
envelope = JSON.parse(body.toString("utf8"));
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
res.writeHead(400, { "content-type": "text/plain" });
|
|
112
|
+
res.end("body is not JSON");
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const rpcId = isRecord(envelope) && typeof envelope.rpcId === "string" ? envelope.rpcId : undefined;
|
|
116
|
+
if (!isRecord(envelope)
|
|
117
|
+
|| envelope.type !== "client-request"
|
|
118
|
+
|| rpcId === undefined
|
|
119
|
+
|| typeof envelope.method !== "string") {
|
|
120
|
+
envelopeFailure(res, rpcId ?? INVALID_REQUEST_RPC_ID, "invalid client-request message");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// The path names the endpoint; the envelope must agree, exactly as the
|
|
124
|
+
// connection service's own bridge requires.
|
|
125
|
+
if (envelope.method !== endpoint) {
|
|
126
|
+
envelopeFailure(res, rpcId, `method ${JSON.stringify(envelope.method)} does not match endpoint ${JSON.stringify(endpoint)}`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// Abort the business call when the caller goes away mid-request.
|
|
130
|
+
const abort = new AbortController();
|
|
131
|
+
res.on("close", () => {
|
|
132
|
+
if (!res.writableEnded)
|
|
133
|
+
abort.abort();
|
|
134
|
+
});
|
|
135
|
+
const payload = isRecord(envelope.payload) ? envelope.payload : {};
|
|
136
|
+
let result;
|
|
137
|
+
try {
|
|
138
|
+
result = await dispatch(endpoint, payload, abort.signal);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
res.writeHead(500, { "content-type": "text/plain" });
|
|
142
|
+
res.end(`handler failure: ${String(error)}`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
res.writeHead(200, { "content-type": "application/json" });
|
|
146
|
+
res.end(serverResponse(rpcId, result));
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=rpc-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-route.js","sourceRoot":"","sources":["../src/rpc-route.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-web-remote",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Remote access for DeepSeek Harness: join a rdsh hub from the DSH web UI (plugin, no CLI)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"node": ">=22"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"rdsh-gateway": "0.
|
|
28
|
+
"rdsh-gateway": "0.8.2"
|
|
29
29
|
},
|
|
30
30
|
"dsh": {
|
|
31
31
|
"bundle": {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
|
-
"build": "tsc -p tsconfig.json"
|
|
45
|
+
"build": "tsc -p tsconfig.json",
|
|
46
|
+
"test": "node --test \"test/*.test.ts\""
|
|
46
47
|
}
|
|
47
48
|
}
|