dsh-web-remote 0.5.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 CHANGED
@@ -1,31 +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
- rpc: RpcHandler;
24
- authenticatedUrl?: (baseUrl: string) => string;
25
- };
26
- webServer: {
27
- port: number;
28
- };
5
+ connection: ConnectionService;
6
+ webServer: WebServerService;
7
+ effect(callback: () => unknown, label: string): void;
29
8
  on(event: string, cb: () => void): void;
30
9
  }
31
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
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) {
@@ -307,8 +314,9 @@ export function apply(ctx) {
307
314
  return err("internal", e instanceof Error ? e.message : String(e));
308
315
  }
309
316
  }
310
- ctx.connection.rpc.handle("/remote-access", async (endpoint, payload, _signal) => {
311
- const args = payload?.args ?? {};
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 ?? {};
312
320
  switch (endpoint) {
313
321
  case "connect":
314
322
  return await connect(args);
@@ -325,7 +333,12 @@ export function apply(ctx) {
325
333
  default:
326
334
  return err("bad-request", `unknown endpoint ${endpoint}`);
327
335
  }
328
- }, { authority: "loopback" });
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`);
329
342
  // 启动自动接入(静默;CLI 托管时跳过,见 autoConnect 前置条件)
330
343
  void autoConnect();
331
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.5.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.8.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
  }