remote-access-mcp 4.6.7 → 4.6.8
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/CHANGELOG.md +7 -0
- package/dist/core/tunnel-providers.d.ts.map +1 -1
- package/dist/core/tunnel-providers.js +60 -32
- package/dist/core/tunnel-providers.js.map +1 -1
- package/dist/core/tunnel-supervisor.d.ts +2 -0
- package/dist/core/tunnel-supervisor.d.ts.map +1 -0
- package/dist/core/tunnel-supervisor.js +56 -0
- package/dist/core/tunnel-supervisor.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# 4.6.8
|
|
2
|
+
|
|
3
|
+
- Replace the Windows localhost.run batch supervisor with a Node-based SSH supervisor that survives remote SSH disconnects and reconnects automatically.
|
|
4
|
+
- Keep the tunnel provider process alive across localhost.run remote-side session closures so the outer health monitor does not unnecessarily fail over to other providers.
|
|
5
|
+
- Preserve public URL detection and health verification across reconnects.
|
|
6
|
+
- Fix Windows NPort execution by invoking the resolved `npx.cmd` through the Windows shell without double-quoting the executable path.
|
|
7
|
+
|
|
1
8
|
# 4.6.7
|
|
2
9
|
|
|
3
10
|
- Fix Windows localhost.run SSH sessions by forcing the interactive PTY shape expected by localhost.run.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-providers.d.ts","sourceRoot":"","sources":["../../src/core/tunnel-providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tunnel-providers.d.ts","sourceRoot":"","sources":["../../src/core/tunnel-providers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGlE,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CAAC;AAEpF,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EAAsD,CAAC;AAExG,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6GAA6G;AAC7G,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAoBxH;AAwLD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgCtH;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAQxH"}
|
|
@@ -2,6 +2,7 @@ import { spawn } from 'node:child_process';
|
|
|
2
2
|
import { createWriteStream, mkdtempSync } from 'node:fs';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
5
6
|
import { randomBytes } from 'node:crypto';
|
|
6
7
|
import { startQuickTunnel } from './tunnel.js';
|
|
7
8
|
import { which } from './platform.js';
|
|
@@ -54,32 +55,41 @@ function startSshTunnel(name, opts, args) {
|
|
|
54
55
|
'-o', 'TCPKeepAlive=yes',
|
|
55
56
|
...args.filter((arg) => !['-o', 'StrictHostKeyChecking=accept-new', '-o', 'ExitOnForwardFailure=yes'].includes(arg)),
|
|
56
57
|
];
|
|
57
|
-
// localhost.run exposes the public URL through the remote shell, so stdin
|
|
58
|
-
// must stay open. On Windows, detach the SSH process from the console and
|
|
59
|
-
// unref it so terminal/console-handle teardown cannot close the tunnel.
|
|
60
58
|
const debugDir = opts.debug ? mkdtempSync(path.join(tmpdir(), 'ramcp-tunnel-')) : null;
|
|
61
59
|
const debugOut = debugDir ? createWriteStream(path.join(debugDir, `${name}.out.log`), { flags: 'a' }) : null;
|
|
62
60
|
const debugErr = debugDir ? createWriteStream(path.join(debugDir, `${name}.err.log`), { flags: 'a' }) : null;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
// localhost.run's SSH endpoint can close an anonymous session from the
|
|
62
|
+
// remote side. The server monitor must not confuse that expected provider
|
|
63
|
+
// disconnect with death of the tunnel supervisor. On Windows we therefore
|
|
64
|
+
// run a small Node supervisor process that owns SSH and reconnects it.
|
|
65
|
+
let child;
|
|
66
|
+
let supervisorPid = null;
|
|
67
|
+
if (process.platform === 'win32' && name === 'localhostrun') {
|
|
68
|
+
const supervisor = path.resolve(path.dirname(fileURLToPath(import.meta.url)), 'tunnel-supervisor.js');
|
|
69
|
+
child = spawn(process.execPath, [supervisor, JSON.stringify({ ssh, args: sshArgs })], {
|
|
70
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
71
|
+
windowsHide: true,
|
|
72
|
+
});
|
|
73
|
+
supervisorPid = child.pid ?? null;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
child = spawn(ssh, sshArgs, {
|
|
77
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
78
|
+
windowsHide: process.platform === 'win32',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
72
81
|
if (debugOut)
|
|
73
82
|
child.stdout?.pipe(debugOut);
|
|
74
83
|
if (debugErr)
|
|
75
84
|
child.stderr?.pipe(debugErr);
|
|
76
85
|
if (opts.debug)
|
|
77
|
-
opts.log?.(`${name}: debug pid=${child.pid ?? 'unknown'} platform=${process.platform} ssh=${ssh} args=${sshArgs.join(' ')}`);
|
|
86
|
+
opts.log?.(`${name}: debug pid=${child.pid ?? 'unknown'} supervisor=${supervisorPid ?? 'none'} platform=${process.platform} ssh=${ssh} args=${sshArgs.join(' ')}`);
|
|
78
87
|
const timeoutMs = opts.timeoutMs ?? 45_000;
|
|
79
88
|
const log = opts.log || (() => { });
|
|
80
89
|
return new Promise((resolve, reject) => {
|
|
81
90
|
let settled = false;
|
|
82
91
|
let buffer = '';
|
|
92
|
+
let resolvedHandle = null;
|
|
83
93
|
const cleanup = () => {
|
|
84
94
|
try {
|
|
85
95
|
child.stdin?.end();
|
|
@@ -89,6 +99,12 @@ function startSshTunnel(name, opts, args) {
|
|
|
89
99
|
child.kill();
|
|
90
100
|
}
|
|
91
101
|
catch { }
|
|
102
|
+
if (process.platform === 'win32' && name === 'localhostrun' && supervisorPid) {
|
|
103
|
+
try {
|
|
104
|
+
spawn('taskkill', ['/PID', String(supervisorPid), '/T', '/F'], { stdio: 'ignore', windowsHide: true });
|
|
105
|
+
}
|
|
106
|
+
catch { }
|
|
107
|
+
}
|
|
92
108
|
try {
|
|
93
109
|
debugOut?.end();
|
|
94
110
|
debugErr?.end();
|
|
@@ -106,14 +122,26 @@ function startSshTunnel(name, opts, args) {
|
|
|
106
122
|
}, timeoutMs);
|
|
107
123
|
const scan = (chunk) => {
|
|
108
124
|
buffer += chunk.toString();
|
|
109
|
-
const
|
|
110
|
-
|
|
125
|
+
const matches = [...buffer.matchAll(URL_PATTERNS[name])];
|
|
126
|
+
const m = matches.at(-1);
|
|
127
|
+
if (!m)
|
|
128
|
+
return;
|
|
129
|
+
const url = m[0].replace(/[.,;)]+$/, '');
|
|
130
|
+
if (resolvedHandle) {
|
|
131
|
+
if (resolvedHandle.url !== url) {
|
|
132
|
+
resolvedHandle.url = url;
|
|
133
|
+
log(`${name}: reconnected: ${url}`);
|
|
134
|
+
}
|
|
135
|
+
buffer = buffer.slice(-1200);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (settled)
|
|
111
139
|
return;
|
|
112
140
|
settled = true;
|
|
113
141
|
clearTimeout(timer);
|
|
114
|
-
const url = m[0].replace(/[.,;)]+$/, '');
|
|
115
142
|
log(`${name}: ${url}`);
|
|
116
143
|
const handle = { url, child, stop: cleanup, provider: name };
|
|
144
|
+
resolvedHandle = handle;
|
|
117
145
|
const healthDeadline = Date.now() + (opts.healthTimeoutMs ?? 20_000);
|
|
118
146
|
const verify = async () => {
|
|
119
147
|
if (!opts.expectedVersion) {
|
|
@@ -123,7 +151,7 @@ function startSshTunnel(name, opts, args) {
|
|
|
123
151
|
let health = await verifyTunnelHealth(url, opts.expectedVersion, 4_000);
|
|
124
152
|
while (!health.healthy && Date.now() < healthDeadline) {
|
|
125
153
|
await new Promise((r) => setTimeout(r, 1_500));
|
|
126
|
-
if (child.exitCode !== null)
|
|
154
|
+
if (child.exitCode !== null && process.platform !== 'win32')
|
|
127
155
|
break;
|
|
128
156
|
health = await verifyTunnelHealth(url, opts.expectedVersion, 4_000);
|
|
129
157
|
}
|
|
@@ -135,36 +163,36 @@ function startSshTunnel(name, opts, args) {
|
|
|
135
163
|
cleanup();
|
|
136
164
|
reject(new Error(`${name} public endpoint failed health verification: ${health.reason || 'unknown error'}`));
|
|
137
165
|
};
|
|
138
|
-
void verify().catch((error) => {
|
|
139
|
-
cleanup();
|
|
140
|
-
reject(error);
|
|
141
|
-
});
|
|
166
|
+
void verify().catch((error) => { cleanup(); reject(error); });
|
|
142
167
|
};
|
|
143
168
|
child.stdout?.on('data', (chunk) => { if (opts.debug)
|
|
144
169
|
opts.log?.(`${name}: stdout ${chunk.toString().trim().slice(0, 400)}`); scan(chunk); });
|
|
145
170
|
child.stderr?.on('data', (chunk) => { if (opts.debug)
|
|
146
171
|
opts.log?.(`${name}: stderr ${chunk.toString().trim().slice(0, 400)}`); scan(chunk); });
|
|
147
|
-
child.on('error', (e) => { if (!settled) {
|
|
172
|
+
child.on('error', (e) => { if (!resolvedHandle && !settled) {
|
|
148
173
|
settled = true;
|
|
149
174
|
clearTimeout(timer);
|
|
150
175
|
reject(e);
|
|
151
176
|
} });
|
|
152
|
-
child.on('exit', (code) => {
|
|
153
|
-
settled
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
177
|
+
child.on('exit', (code) => {
|
|
178
|
+
if (!resolvedHandle && !settled) {
|
|
179
|
+
settled = true;
|
|
180
|
+
clearTimeout(timer);
|
|
181
|
+
reject(new Error(`${name} exited with code ${code}\n${buffer.slice(-800)}`));
|
|
182
|
+
}
|
|
183
|
+
// A Windows localhost.run supervisor should never exit on a remote SSH
|
|
184
|
+
// disconnect; if it does, the outer monitor can still perform provider
|
|
185
|
+
// recovery normally.
|
|
186
|
+
});
|
|
157
187
|
});
|
|
158
188
|
}
|
|
159
189
|
function startProcessTunnel(name, opts, command, args) {
|
|
160
190
|
const isWindows = process.platform === 'win32';
|
|
161
|
-
const
|
|
162
|
-
const
|
|
163
|
-
? ['/d', '/s', '/c', [command, ...args].map((value) => /[\s&()^]/.test(value) ? `"${value.replace(/"/g, '\\"')}"` : value).join(' ')]
|
|
164
|
-
: args;
|
|
165
|
-
const child = spawn(spawnCommand, spawnArgs, {
|
|
191
|
+
const normalizedCommand = isWindows ? command.replace(/^"|"$/g, '') : command;
|
|
192
|
+
const child = spawn(normalizedCommand, args, {
|
|
166
193
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
167
194
|
windowsHide: isWindows,
|
|
195
|
+
shell: isWindows,
|
|
168
196
|
});
|
|
169
197
|
const timeoutMs = opts.timeoutMs ?? 60_000;
|
|
170
198
|
const log = opts.log || (() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-providers.js","sourceRoot":"","sources":["../../src/core/tunnel-providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tunnel-providers.js","sourceRoot":"","sources":["../../src/core/tunnel-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tunnel-supervisor.d.ts","sourceRoot":"","sources":["../../src/core/tunnel-supervisor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
let config;
|
|
3
|
+
try {
|
|
4
|
+
config = JSON.parse(process.argv[2] || '{}');
|
|
5
|
+
}
|
|
6
|
+
catch {
|
|
7
|
+
console.error('[ramcp] invalid tunnel supervisor configuration');
|
|
8
|
+
process.exit(2);
|
|
9
|
+
}
|
|
10
|
+
if (!config.ssh || !Array.isArray(config.args)) {
|
|
11
|
+
console.error('[ramcp] invalid tunnel supervisor configuration');
|
|
12
|
+
process.exit(2);
|
|
13
|
+
}
|
|
14
|
+
let stopping = false;
|
|
15
|
+
let current = null;
|
|
16
|
+
const stop = () => {
|
|
17
|
+
stopping = true;
|
|
18
|
+
try {
|
|
19
|
+
current?.kill();
|
|
20
|
+
}
|
|
21
|
+
catch { }
|
|
22
|
+
};
|
|
23
|
+
process.on('SIGINT', stop);
|
|
24
|
+
process.on('SIGTERM', stop);
|
|
25
|
+
process.on('exit', () => { stopping = true; try {
|
|
26
|
+
current?.kill();
|
|
27
|
+
}
|
|
28
|
+
catch { } });
|
|
29
|
+
const run = async () => {
|
|
30
|
+
while (!stopping) {
|
|
31
|
+
current = spawn(config.ssh, config.args, {
|
|
32
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
33
|
+
windowsHide: true,
|
|
34
|
+
});
|
|
35
|
+
current.stdout?.pipe(process.stdout, { end: false });
|
|
36
|
+
current.stderr?.pipe(process.stderr, { end: false });
|
|
37
|
+
const child = current;
|
|
38
|
+
const code = await new Promise((resolve) => {
|
|
39
|
+
child.once('error', (error) => {
|
|
40
|
+
console.error(`[ramcp] localhostrun ssh error: ${error.message}`);
|
|
41
|
+
resolve(null);
|
|
42
|
+
});
|
|
43
|
+
child.once('exit', (exitCode) => resolve(exitCode));
|
|
44
|
+
});
|
|
45
|
+
current = null;
|
|
46
|
+
if (stopping)
|
|
47
|
+
break;
|
|
48
|
+
console.error(`[ramcp] localhostrun ssh exited (code ${code ?? 'error'}); reconnecting...`);
|
|
49
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
void run().catch((error) => {
|
|
53
|
+
console.error(`[ramcp] tunnel supervisor failed: ${error?.message || error}`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=tunnel-supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tunnel-supervisor.js","sourceRoot":"","sources":["../../src/core/tunnel-supervisor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "remote-access-mcp",
|
|
3
|
-
"version": "4.6.
|
|
3
|
+
"version": "4.6.8",
|
|
4
4
|
"description": "Turn any laptop, desktop, VM, or server into a secure AI-agent workspace via MCP. Let ChatGPT, Claude, Grok, Qwen and other MCP clients read and edit files, run commands, test code, inspect systems, and complete real-world tasks.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|