remote-dsh 0.1.0 → 0.2.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/README.md +3 -3
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +98 -7
- package/dist/index.d.ts +8 -2
- package/dist/index.js +4 -4
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
#
|
|
1
|
+
# remote-dsh
|
|
2
2
|
|
|
3
|
-
Secure remote access for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness).
|
|
3
|
+
Secure remote access for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). The npm package name is `remote-dsh`; the CLI command is `rdsh`.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install -g
|
|
6
|
+
npm install -g remote-dsh
|
|
7
7
|
rdsh serve # LAN auth gateway in front of dsh web (M1 MVP)
|
|
8
8
|
```
|
|
9
9
|
|
package/dist/bin.d.ts
ADDED
package/dist/bin.js
CHANGED
|
@@ -1,11 +1,102 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* rdsh CLI
|
|
3
|
+
* rdsh CLI 入口(手写参数解析,零依赖)。
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* rdsh
|
|
8
|
-
* rdsh hub ... # hub server commands (prototype phase, TS)
|
|
9
|
-
* rdsh status # local gateway status
|
|
5
|
+
* rdsh serve [--port <n>] [--host <ip>] [--pair-code <code>]
|
|
6
|
+
* [--session-ttl <sec>] [--dsh <path>] [--reset]
|
|
7
|
+
* rdsh --version | --help
|
|
10
8
|
*/
|
|
11
|
-
|
|
9
|
+
import { serve } from "rdsh-gateway";
|
|
10
|
+
import { VERSION } from "./index.js";
|
|
11
|
+
const HELP = `rdsh — secure remote access for DeepSeek Harness
|
|
12
|
+
|
|
13
|
+
Usage:
|
|
14
|
+
rdsh serve [options] Start the LAN auth gateway in front of dsh web
|
|
15
|
+
|
|
16
|
+
Options (serve):
|
|
17
|
+
--port <n> Listen port (default 8443; 0 = OS-assigned)
|
|
18
|
+
--host <ip> Bind address (default 0.0.0.0)
|
|
19
|
+
--pair-code <code> Preset pairing code (default: random, shown on start)
|
|
20
|
+
--session-ttl <sec> Session cookie lifetime in seconds (default 43200)
|
|
21
|
+
--dsh <path> Path to the dsh executable (default: from PATH)
|
|
22
|
+
--reset Reset session keys (all devices must pair again)
|
|
23
|
+
--no-code SKIP pairing auth — any device on the network gets
|
|
24
|
+
full DSH access. ONLY for fully trusted LANs!
|
|
25
|
+
|
|
26
|
+
Global:
|
|
27
|
+
--version, -v Print version
|
|
28
|
+
--help, -h Print this help
|
|
29
|
+
`;
|
|
30
|
+
async function main() {
|
|
31
|
+
const argv = process.argv.slice(2);
|
|
32
|
+
if (argv.length === 0 || argv[0] === "--help" || argv[0] === "-h") {
|
|
33
|
+
console.log(HELP);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (argv[0] === "--version" || argv[0] === "-v") {
|
|
37
|
+
console.log(`rdsh ${VERSION}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const command = argv[0];
|
|
41
|
+
if (command === "serve") {
|
|
42
|
+
try {
|
|
43
|
+
const opts = parseServeArgs(argv.slice(1));
|
|
44
|
+
await serve(opts);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.error(`rdsh: ${err instanceof Error ? err.message : String(err)}`);
|
|
48
|
+
process.exitCode = 1;
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
console.error(`rdsh: unknown command '${command}'. Run 'rdsh --help'.`);
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
}
|
|
55
|
+
function parseServeArgs(args) {
|
|
56
|
+
const opts = { host: "0.0.0.0", port: 8443, sessionTtlSeconds: 12 * 3600 };
|
|
57
|
+
for (let i = 0; i < args.length; i++) {
|
|
58
|
+
const flag = args[i];
|
|
59
|
+
const value = (name) => {
|
|
60
|
+
i += 1;
|
|
61
|
+
if (i >= args.length)
|
|
62
|
+
throw new Error(`missing value for ${name}`);
|
|
63
|
+
return args[i] ?? "";
|
|
64
|
+
};
|
|
65
|
+
switch (flag) {
|
|
66
|
+
case "--port": {
|
|
67
|
+
const v = Number(value(flag));
|
|
68
|
+
if (!Number.isInteger(v) || v < 0 || v > 65535)
|
|
69
|
+
throw new Error(`invalid --port '${args[i]}'`);
|
|
70
|
+
opts.port = v;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case "--host":
|
|
74
|
+
opts.host = value(flag);
|
|
75
|
+
break;
|
|
76
|
+
case "--pair-code":
|
|
77
|
+
opts.pairCode = value(flag);
|
|
78
|
+
break;
|
|
79
|
+
case "--session-ttl": {
|
|
80
|
+
const v = Number(value(flag));
|
|
81
|
+
if (!Number.isInteger(v) || v <= 0)
|
|
82
|
+
throw new Error(`invalid --session-ttl '${args[i]}'`);
|
|
83
|
+
opts.sessionTtlSeconds = v;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case "--dsh":
|
|
87
|
+
opts.dshPath = value(flag);
|
|
88
|
+
break;
|
|
89
|
+
case "--reset":
|
|
90
|
+
opts.reset = true;
|
|
91
|
+
break;
|
|
92
|
+
case "--no-code":
|
|
93
|
+
opts.noCode = true;
|
|
94
|
+
break;
|
|
95
|
+
default:
|
|
96
|
+
throw new Error(`unknown option '${flag}'`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return opts;
|
|
100
|
+
}
|
|
101
|
+
void main();
|
|
102
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rdsh — secure remote access for DeepSeek Harness.
|
|
3
|
+
*
|
|
4
|
+
* This package is the unified CLI (`rdsh serve` / `rdsh join` / `rdsh hub`).
|
|
5
|
+
* v0.1.0 is a name-reservation skeleton; commands land with the M1 MVP.
|
|
6
|
+
*/
|
|
1
7
|
export declare const NAME = "rdsh";
|
|
2
|
-
export declare const VERSION = "0.
|
|
3
|
-
export declare const DESCRIPTION:
|
|
8
|
+
export declare const VERSION = "0.2.0";
|
|
9
|
+
export declare const DESCRIPTION = "Secure remote access for DeepSeek Harness: rdsh serve / rdsh join / rdsh hub";
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* rdsh — secure remote access for DeepSeek Harness.
|
|
3
3
|
*
|
|
4
|
+
* This package is the unified CLI (`rdsh serve` / `rdsh join` / `rdsh hub`).
|
|
4
5
|
* v0.1.0 is a name-reservation skeleton; commands land with the M1 MVP.
|
|
5
|
-
* (Hand-built dist for the reservation release; replaced by tsc output from M1.)
|
|
6
6
|
*/
|
|
7
7
|
export const NAME = "rdsh";
|
|
8
|
-
export const VERSION = "0.
|
|
9
|
-
export const DESCRIPTION =
|
|
10
|
-
|
|
8
|
+
export const VERSION = "0.2.0";
|
|
9
|
+
export const DESCRIPTION = "Secure remote access for DeepSeek Harness: rdsh serve / rdsh join / rdsh hub";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "remote-dsh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Secure remote access for DeepSeek Harness: rdsh serve / rdsh join / rdsh hub",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -16,11 +16,15 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
|
-
"dist"
|
|
19
|
+
"dist",
|
|
20
|
+
"!dist/**/*.map"
|
|
20
21
|
],
|
|
21
22
|
"engines": {
|
|
22
23
|
"node": ">=22"
|
|
23
24
|
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"rdsh-gateway": "0.1.0"
|
|
27
|
+
},
|
|
24
28
|
"scripts": {
|
|
25
29
|
"build": "tsc -p tsconfig.json",
|
|
26
30
|
"test": "node --test test/"
|