autodev-cli 1.4.48 → 1.4.51
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/out/commands/mcpOperate.js +160 -2
- package/out/commands/mcpOperate.js.map +1 -1
- package/out/fileBrowser.d.ts +21 -0
- package/out/fileBrowser.js +205 -0
- package/out/fileBrowser.js.map +1 -0
- package/out/git/gitRequest.d.ts +22 -0
- package/out/git/gitRequest.js +146 -0
- package/out/git/gitRequest.js.map +1 -0
- package/out/officeSocket.d.ts +6 -0
- package/out/officeSocket.js +6 -0
- package/out/officeSocket.js.map +1 -1
- package/out/rdp/manager.d.ts +30 -0
- package/out/rdp/manager.js +134 -0
- package/out/rdp/manager.js.map +1 -0
- package/out/vnc/manager.d.ts +22 -0
- package/out/vnc/manager.js +99 -0
- package/out/vnc/manager.js.map +1 -0
- package/out/webSocketPoller.d.ts +3 -10
- package/out/webSocketPoller.js +47 -417
- package/out/webSocketPoller.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.handleGitRequest = handleGitRequest;
|
|
37
|
+
const pathSafe_1 = require("../core/pathSafe");
|
|
38
|
+
const gitService = __importStar(require("./gitService"));
|
|
39
|
+
/**
|
|
40
|
+
* Handle a git-panel request from the server (originated by the browser UI).
|
|
41
|
+
* Replies via `sendFrame({ type:'git_response', requestId, ok, ...extra })`.
|
|
42
|
+
*/
|
|
43
|
+
function handleGitRequest(opts) {
|
|
44
|
+
const { requestId, action, filePath, staged, message, branch, hash, sendFrame } = opts;
|
|
45
|
+
const respond = (ok, data, error) => {
|
|
46
|
+
sendFrame({ type: 'git_response', requestId, ok, ...(data ?? {}), ...(error ? { error } : {}) });
|
|
47
|
+
};
|
|
48
|
+
const root = opts.root;
|
|
49
|
+
if (!root) {
|
|
50
|
+
respond(false, undefined, 'No workspace root');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (!opts.enabled) {
|
|
54
|
+
respond(false, undefined, 'Git not enabled');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// Containment guard — mirror handleFbRequest. Every path-bearing arg
|
|
58
|
+
// (filePath) must resolve inside the workspace root both lexically AND after
|
|
59
|
+
// resolving symlinks; otherwise a git_request could read arbitrary host
|
|
60
|
+
// files (e.g. path '../../.claude/.credentials.json' via the readFileSync
|
|
61
|
+
// fallback in getDiff, or leak them through `git diff -- <path>`). An empty
|
|
62
|
+
// filePath means "whole repo" and is permitted (allowRoot).
|
|
63
|
+
if (filePath !== undefined && filePath !== '') {
|
|
64
|
+
if ((0, pathSafe_1.resolveWithinRoot)(root, filePath, true) === null) {
|
|
65
|
+
respond(false, undefined, 'Path outside workspace');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
(async () => {
|
|
70
|
+
try {
|
|
71
|
+
switch (action) {
|
|
72
|
+
case 'status': {
|
|
73
|
+
const status = await gitService.getStatus(root);
|
|
74
|
+
respond(true, { status });
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case 'log': {
|
|
78
|
+
const commits = await gitService.getLog(root);
|
|
79
|
+
respond(true, { commits });
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case 'diff': {
|
|
83
|
+
const diff = await gitService.getDiff(root, filePath ?? '', staged ?? false);
|
|
84
|
+
respond(true, { diff });
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case 'commit_diff': {
|
|
88
|
+
const diff = await gitService.getCommitDiff(root, hash ?? '', filePath);
|
|
89
|
+
respond(true, { diff });
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case 'stage': {
|
|
93
|
+
if (filePath)
|
|
94
|
+
await gitService.stageFile(root, filePath);
|
|
95
|
+
else
|
|
96
|
+
await gitService.stageAll(root);
|
|
97
|
+
respond(true);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case 'unstage': {
|
|
101
|
+
if (!filePath) {
|
|
102
|
+
respond(false, undefined, 'path required');
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
await gitService.unstageFile(root, filePath);
|
|
106
|
+
respond(true);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case 'commit': {
|
|
110
|
+
if (!message) {
|
|
111
|
+
respond(false, undefined, 'message required');
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
const commitHash = await gitService.commit(root, message);
|
|
115
|
+
respond(true, { hash: commitHash });
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
case 'fetch': {
|
|
119
|
+
await gitService.fetchOrigin(root);
|
|
120
|
+
respond(true);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case 'branches': {
|
|
124
|
+
const branches = await gitService.getBranches(root);
|
|
125
|
+
respond(true, { branches });
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case 'checkout': {
|
|
129
|
+
if (!branch) {
|
|
130
|
+
respond(false, undefined, 'branch required');
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
await gitService.checkoutBranch(root, branch);
|
|
134
|
+
respond(true);
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
default:
|
|
138
|
+
respond(false, undefined, `Unknown git action: ${action}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
respond(false, undefined, String(err));
|
|
143
|
+
}
|
|
144
|
+
})();
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=gitRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitRequest.js","sourceRoot":"","sources":["../../src/git/gitRequest.ts"],"names":[],"mappings":"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"}
|
package/out/officeSocket.d.ts
CHANGED
|
@@ -24,6 +24,12 @@ export declare class OfficeSocket {
|
|
|
24
24
|
start(): void;
|
|
25
25
|
/** True while a live connection is up. */
|
|
26
26
|
isConnected(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Send a JSON payload to the server as a WebSocket text frame. Used by the
|
|
29
|
+
* bridge to reply to control frames (e.g. fb_response for the office file
|
|
30
|
+
* browser). No-op if the socket isn't currently connected.
|
|
31
|
+
*/
|
|
32
|
+
sendFrame(obj: Record<string, unknown>): void;
|
|
27
33
|
destroy(): void;
|
|
28
34
|
private _log;
|
|
29
35
|
private _connect;
|
package/out/officeSocket.js
CHANGED
|
@@ -86,6 +86,12 @@ class OfficeSocket {
|
|
|
86
86
|
}
|
|
87
87
|
/** True while a live connection is up. */
|
|
88
88
|
isConnected() { return this._connected; }
|
|
89
|
+
/**
|
|
90
|
+
* Send a JSON payload to the server as a WebSocket text frame. Used by the
|
|
91
|
+
* bridge to reply to control frames (e.g. fb_response for the office file
|
|
92
|
+
* browser). No-op if the socket isn't currently connected.
|
|
93
|
+
*/
|
|
94
|
+
sendFrame(obj) { this._sendJson(obj); }
|
|
89
95
|
destroy() {
|
|
90
96
|
this._destroyed = true;
|
|
91
97
|
this._stopHeartbeat();
|
package/out/officeSocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"officeSocket.js","sourceRoot":"","sources":["../src/officeSocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"officeSocket.js","sourceRoot":"","sources":["../src/officeSocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface RdpManagerSettings {
|
|
2
|
+
host?: string;
|
|
3
|
+
port?: number;
|
|
4
|
+
username?: string;
|
|
5
|
+
password?: string;
|
|
6
|
+
domain?: string;
|
|
7
|
+
guacWsUrl?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class RdpSessionManager {
|
|
10
|
+
private readonly sendFrame;
|
|
11
|
+
private readonly log;
|
|
12
|
+
private _sessions;
|
|
13
|
+
private _settings;
|
|
14
|
+
private _enabled;
|
|
15
|
+
constructor(sendFrame: (frame: Record<string, unknown>) => void, log?: (m: string) => void);
|
|
16
|
+
/** Enable/disable RDP. Session-start frames are ignored while disabled. */
|
|
17
|
+
setEnabled(enabled: boolean): void;
|
|
18
|
+
/** Update the RDP connection settings (host/port/credentials/guac URL). */
|
|
19
|
+
setSettings(s: RdpManagerSettings): void;
|
|
20
|
+
/**
|
|
21
|
+
* Dispatch an RDP control frame. Returns true if `msgType` was an RDP frame
|
|
22
|
+
* (and was consumed), false otherwise so the caller can keep matching.
|
|
23
|
+
*/
|
|
24
|
+
handleFrame(msgType: string, msg: Record<string, unknown>): boolean;
|
|
25
|
+
private _onSession;
|
|
26
|
+
private _onInput;
|
|
27
|
+
private _onClose;
|
|
28
|
+
/** Stop all active RDP sessions (called on destroy/reconnect). */
|
|
29
|
+
stopAll(): void;
|
|
30
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RdpSessionManager = void 0;
|
|
4
|
+
const session_1 = require("./session");
|
|
5
|
+
class RdpSessionManager {
|
|
6
|
+
sendFrame;
|
|
7
|
+
log;
|
|
8
|
+
_sessions = new Map();
|
|
9
|
+
_settings = {};
|
|
10
|
+
_enabled = false;
|
|
11
|
+
constructor(sendFrame, log = () => { }) {
|
|
12
|
+
this.sendFrame = sendFrame;
|
|
13
|
+
this.log = log;
|
|
14
|
+
}
|
|
15
|
+
/** Enable/disable RDP. Session-start frames are ignored while disabled. */
|
|
16
|
+
setEnabled(enabled) { this._enabled = enabled; }
|
|
17
|
+
/** Update the RDP connection settings (host/port/credentials/guac URL). */
|
|
18
|
+
setSettings(s) { this._settings = s; }
|
|
19
|
+
/**
|
|
20
|
+
* Dispatch an RDP control frame. Returns true if `msgType` was an RDP frame
|
|
21
|
+
* (and was consumed), false otherwise so the caller can keep matching.
|
|
22
|
+
*/
|
|
23
|
+
handleFrame(msgType, msg) {
|
|
24
|
+
switch (msgType) {
|
|
25
|
+
case 'rdp_session':
|
|
26
|
+
this._onSession(msg);
|
|
27
|
+
return true;
|
|
28
|
+
case 'rdp_input':
|
|
29
|
+
this._onInput(msg);
|
|
30
|
+
return true;
|
|
31
|
+
case 'rdp_close':
|
|
32
|
+
this._onClose(msg);
|
|
33
|
+
return true;
|
|
34
|
+
default: return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
_onSession(msg) {
|
|
38
|
+
if (!this._enabled) {
|
|
39
|
+
this.log('rdp_session ignored — RDP not enabled');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const action = msg['action'];
|
|
43
|
+
if (action !== 'start') {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const sessionId = msg['sessionId'];
|
|
47
|
+
const opts = {
|
|
48
|
+
// Host/port come ONLY from local settings — never from the WS frame.
|
|
49
|
+
// A frame-supplied host/port would let a remote party open an outbound
|
|
50
|
+
// RDP bridge to an arbitrary target (SSRF / internal-network pivot).
|
|
51
|
+
// Default to loopback (xrdp runs on the same machine as the extension).
|
|
52
|
+
host: this._settings.host || '127.0.0.1',
|
|
53
|
+
port: this._settings.port ?? 3389,
|
|
54
|
+
// credentials never sent from server — always use local settings
|
|
55
|
+
username: this._settings.username || msg['username'],
|
|
56
|
+
password: this._settings.password || msg['password'],
|
|
57
|
+
domain: this._settings.domain || msg['domain'],
|
|
58
|
+
width: msg['width'] ? Number(msg['width']) : undefined,
|
|
59
|
+
height: msg['height'] ? Number(msg['height']) : undefined,
|
|
60
|
+
colorDepth: msg['colorDepth'] ? Number(msg['colorDepth']) : undefined,
|
|
61
|
+
};
|
|
62
|
+
this.log(`RDP session start: ${sessionId} → ${opts.host}:${opts.port ?? 3389}`);
|
|
63
|
+
// Send Guacamole token to browser so it can connect via guacamole-lite
|
|
64
|
+
// (guacd + guacamole-lite must be running on the same host as xrdp, port 4567)
|
|
65
|
+
if (opts.username || opts.password) {
|
|
66
|
+
const guacSettings = {
|
|
67
|
+
hostname: opts.host,
|
|
68
|
+
port: String(opts.port ?? 3389),
|
|
69
|
+
'ignore-cert': true,
|
|
70
|
+
};
|
|
71
|
+
if (opts.username) {
|
|
72
|
+
guacSettings['username'] = opts.username;
|
|
73
|
+
}
|
|
74
|
+
if (opts.password) {
|
|
75
|
+
guacSettings['password'] = opts.password;
|
|
76
|
+
}
|
|
77
|
+
if (opts.domain) {
|
|
78
|
+
guacSettings['domain'] = opts.domain;
|
|
79
|
+
}
|
|
80
|
+
if (opts.width) {
|
|
81
|
+
guacSettings['width'] = opts.width;
|
|
82
|
+
}
|
|
83
|
+
if (opts.height) {
|
|
84
|
+
guacSettings['height'] = opts.height;
|
|
85
|
+
}
|
|
86
|
+
guacSettings['color-depth'] = opts.colorDepth ?? 24;
|
|
87
|
+
const tokenPayload = JSON.stringify({ connection: { type: 'rdp', settings: guacSettings } });
|
|
88
|
+
const token = Buffer.from(tokenPayload).toString('base64');
|
|
89
|
+
// Use configured WSS URL (for HTTPS frontends), else fall back to plain WS on port 4567
|
|
90
|
+
const guacWsUrl = this._settings.guacWsUrl || `ws://${opts.host}:4567`;
|
|
91
|
+
this.sendFrame({
|
|
92
|
+
type: 'rdp_guac_token',
|
|
93
|
+
sessionId,
|
|
94
|
+
wsUrl: guacWsUrl,
|
|
95
|
+
token,
|
|
96
|
+
width: opts.width ?? 1280,
|
|
97
|
+
height: opts.height ?? 800,
|
|
98
|
+
});
|
|
99
|
+
this.log(`RDP guac token sent for session ${sessionId} → ${guacWsUrl}`);
|
|
100
|
+
}
|
|
101
|
+
const session = new session_1.RdpSession(sessionId, (frame) => { this.sendFrame(frame); return true; }, (m) => this.log(m));
|
|
102
|
+
this._sessions.set(sessionId, session);
|
|
103
|
+
session.start(opts).catch((err) => {
|
|
104
|
+
this.log(`RDP session ${sessionId} failed to start: ${err.message}`);
|
|
105
|
+
this._sessions.delete(sessionId);
|
|
106
|
+
this.sendFrame({ type: 'rdp_close', sessionId, reason: err.message });
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
_onInput(msg) {
|
|
110
|
+
const sessionId = msg['sessionId'];
|
|
111
|
+
const event = msg['event'];
|
|
112
|
+
if (sessionId && event) {
|
|
113
|
+
this._sessions.get(sessionId)?.handleInput(event);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
_onClose(msg) {
|
|
117
|
+
const sessionId = msg['sessionId'];
|
|
118
|
+
if (sessionId) {
|
|
119
|
+
this.log(`RDP session closed: ${sessionId}`);
|
|
120
|
+
this._sessions.get(sessionId)?.stop();
|
|
121
|
+
this._sessions.delete(sessionId);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Stop all active RDP sessions (called on destroy/reconnect). */
|
|
125
|
+
stopAll() {
|
|
126
|
+
for (const [id, session] of this._sessions) {
|
|
127
|
+
this.log(`RDP session terminated (disconnect): ${id}`);
|
|
128
|
+
session.stop();
|
|
129
|
+
}
|
|
130
|
+
this._sessions.clear();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.RdpSessionManager = RdpSessionManager;
|
|
134
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/rdp/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class VncSessionManager {
|
|
2
|
+
private readonly sendFrame;
|
|
3
|
+
private readonly log;
|
|
4
|
+
private _sessions;
|
|
5
|
+
private _password;
|
|
6
|
+
private _enabled;
|
|
7
|
+
constructor(sendFrame: (frame: Record<string, unknown>) => void, log?: (m: string) => void);
|
|
8
|
+
/** Enable/disable VNC. Session-start frames are ignored while disabled. */
|
|
9
|
+
setEnabled(enabled: boolean): void;
|
|
10
|
+
/** Update the VNC password used for incoming vnc_session requests. */
|
|
11
|
+
setPassword(password?: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Dispatch a VNC control frame. Returns true if `msgType` was a VNC frame
|
|
14
|
+
* (and was consumed), false otherwise so the caller can keep matching.
|
|
15
|
+
*/
|
|
16
|
+
handleFrame(msgType: string, msg: Record<string, unknown>): boolean;
|
|
17
|
+
private _onSession;
|
|
18
|
+
private _onInput;
|
|
19
|
+
private _onClose;
|
|
20
|
+
/** Stop all active VNC sessions (called on destroy/reconnect). */
|
|
21
|
+
stopAll(): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VncSessionManager = void 0;
|
|
4
|
+
const session_1 = require("./session");
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// VncSessionManager — shared VNC remote-desktop session manager.
|
|
7
|
+
//
|
|
8
|
+
// The office VNC viewer (browser UI) drives a remote desktop over the agent's
|
|
9
|
+
// WS channel with three frame types: vnc_session (start), vnc_input (keyboard/
|
|
10
|
+
// mouse/framebuffer-request forwarding) and vnc_close (teardown). A LOOP agent
|
|
11
|
+
// receives these on its WebSocketPoller; an MCP-only agent receives them on its
|
|
12
|
+
// OfficeSocket presence connection. Both delegate to this manager so behaviour
|
|
13
|
+
// is identical regardless of the transport.
|
|
14
|
+
//
|
|
15
|
+
// The manager owns the sessionId→VncSession map plus the locally-configured
|
|
16
|
+
// password, and is gated by `enabled` (an ungated vnc_session would let a
|
|
17
|
+
// remote party open an outbound VNC bridge). Callers hand it a `sendFrame`
|
|
18
|
+
// (to reply to the office) and a `log`.
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
class VncSessionManager {
|
|
21
|
+
sendFrame;
|
|
22
|
+
log;
|
|
23
|
+
_sessions = new Map();
|
|
24
|
+
_password;
|
|
25
|
+
_enabled = false;
|
|
26
|
+
constructor(sendFrame, log = () => { }) {
|
|
27
|
+
this.sendFrame = sendFrame;
|
|
28
|
+
this.log = log;
|
|
29
|
+
}
|
|
30
|
+
/** Enable/disable VNC. Session-start frames are ignored while disabled. */
|
|
31
|
+
setEnabled(enabled) { this._enabled = enabled; }
|
|
32
|
+
/** Update the VNC password used for incoming vnc_session requests. */
|
|
33
|
+
setPassword(password) { this._password = password; }
|
|
34
|
+
/**
|
|
35
|
+
* Dispatch a VNC control frame. Returns true if `msgType` was a VNC frame
|
|
36
|
+
* (and was consumed), false otherwise so the caller can keep matching.
|
|
37
|
+
*/
|
|
38
|
+
handleFrame(msgType, msg) {
|
|
39
|
+
switch (msgType) {
|
|
40
|
+
case 'vnc_session':
|
|
41
|
+
this._onSession(msg);
|
|
42
|
+
return true;
|
|
43
|
+
case 'vnc_input':
|
|
44
|
+
this._onInput(msg);
|
|
45
|
+
return true;
|
|
46
|
+
case 'vnc_close':
|
|
47
|
+
this._onClose(msg);
|
|
48
|
+
return true;
|
|
49
|
+
default: return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
_onSession(msg) {
|
|
53
|
+
if (!this._enabled) {
|
|
54
|
+
this.log('vnc_session ignored — VNC not enabled');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const action = msg['action'];
|
|
58
|
+
if (action !== 'start') {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const sessionId = msg['sessionId'];
|
|
62
|
+
const port = Number(msg['port'] ?? 5900);
|
|
63
|
+
// Prefer password from server frame; fall back to locally-configured password
|
|
64
|
+
const password = msg['password'] || this._password;
|
|
65
|
+
this.log(`VNC session start: ${sessionId} → port ${port}`);
|
|
66
|
+
const session = new session_1.VncSession(sessionId, (frame) => { this.sendFrame(frame); return true; });
|
|
67
|
+
this._sessions.set(sessionId, session);
|
|
68
|
+
session.start(port, password).catch((err) => {
|
|
69
|
+
this.log(`VNC session ${sessionId} failed to start: ${err.message}`);
|
|
70
|
+
this._sessions.delete(sessionId);
|
|
71
|
+
this.sendFrame({ type: 'vnc_close', sessionId, reason: err.message });
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
_onInput(msg) {
|
|
75
|
+
const sessionId = msg['sessionId'];
|
|
76
|
+
const event = msg['event'];
|
|
77
|
+
if (sessionId && event) {
|
|
78
|
+
this._sessions.get(sessionId)?.handleInput(event);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_onClose(msg) {
|
|
82
|
+
const sessionId = msg['sessionId'];
|
|
83
|
+
if (sessionId) {
|
|
84
|
+
this.log(`VNC session closed: ${sessionId}`);
|
|
85
|
+
this._sessions.get(sessionId)?.stop();
|
|
86
|
+
this._sessions.delete(sessionId);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Stop all active VNC sessions (called on destroy/reconnect). */
|
|
90
|
+
stopAll() {
|
|
91
|
+
for (const [id, session] of this._sessions) {
|
|
92
|
+
this.log(`VNC session terminated (disconnect): ${id}`);
|
|
93
|
+
session.stop();
|
|
94
|
+
}
|
|
95
|
+
this._sessions.clear();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.VncSessionManager = VncSessionManager;
|
|
99
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/vnc/manager.ts"],"names":[],"mappings":"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"}
|
package/out/webSocketPoller.d.ts
CHANGED
|
@@ -11,14 +11,10 @@ export declare class WebSocketPoller {
|
|
|
11
11
|
private _reconnectTimer;
|
|
12
12
|
private _log;
|
|
13
13
|
private static readonly RECONNECT_DELAY_MS;
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private _rdpSessions;
|
|
17
|
-
private _rdpSettings;
|
|
14
|
+
private readonly _vncManager;
|
|
15
|
+
private readonly _rdpManager;
|
|
18
16
|
private _gitEnabled;
|
|
19
17
|
private _fileBrowserEnabled;
|
|
20
|
-
private _vncEnabled;
|
|
21
|
-
private _rdpEnabled;
|
|
22
18
|
private _fragOpcode;
|
|
23
19
|
private _fragChunks;
|
|
24
20
|
private _onConnect;
|
|
@@ -77,11 +73,8 @@ export declare class WebSocketPoller {
|
|
|
77
73
|
private _onFrame;
|
|
78
74
|
/** Handle a file-browser request from the server (originated by the browser UI). */
|
|
79
75
|
private _handleFbRequest;
|
|
76
|
+
/** Handle a git-panel request from the server (originated by the browser UI). */
|
|
80
77
|
private _handleGitRequest;
|
|
81
|
-
/** Stop all active VNC sessions (called on destroy/reconnect). */
|
|
82
|
-
private _stopAllVncSessions;
|
|
83
|
-
/** Stop all active RDP sessions (called on destroy/reconnect). */
|
|
84
|
-
private _stopAllRdpSessions;
|
|
85
78
|
/** Update the VNC password used for incoming vnc_session requests. */
|
|
86
79
|
setVncPassword(password?: string): void;
|
|
87
80
|
setGitEnabled(enabled: boolean): void;
|