autodev-cli 1.4.47 → 1.4.50

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.
@@ -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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"}
@@ -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 _vncPassword;
15
- private _vncSessions;
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;