termify-agent 1.0.41 → 1.0.43

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/agent.d.ts CHANGED
@@ -1,16 +1,22 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import type { DashboardTerminal, DashboardWireGuard } from './dashboard.js';
3
+ import type { ServerEntry } from './config.js';
3
4
  export interface AgentOptions {
4
5
  daemon?: boolean;
5
6
  }
6
7
  /**
7
- * Main agent class that coordinates WebSocket connection and PTY/SSH management
8
+ * Main agent class that coordinates WebSocket connections and PTY/SSH management.
9
+ * Supports multiple simultaneous server connections.
8
10
  */
9
11
  export declare class Agent extends EventEmitter {
10
- private wsClient;
12
+ /** Map of serverUrl -> WSClient for multi-server support */
13
+ private wsClients;
14
+ /** Map of serverUrl -> TunnelManager (tunnels are per-server) */
15
+ private tunnelManagers;
16
+ /** Map of terminalId -> serverUrl (routes terminal I/O to the server that created it) */
17
+ private terminalServerMap;
11
18
  private ptyManager;
12
19
  private sshManager;
13
- private tunnelManager;
14
20
  private statsManager;
15
21
  private portScanner;
16
22
  private daemonClient;
@@ -20,83 +26,85 @@ export declare class Agent extends EventEmitter {
20
26
  private isRunning;
21
27
  private agentId;
22
28
  private agentName;
29
+ /** Track which servers have connected (for events) */
30
+ private connectedServers;
31
+ private primaryServerUrl;
23
32
  constructor();
24
33
  /**
25
- * Setup event handlers between WebSocket client and PTY/SSH managers
34
+ * Create a WSClient-like shim that routes per-terminal calls to the correct server
26
35
  */
27
- private setupHandlers;
36
+ private createPtyWsShim;
28
37
  /**
29
- * Start the agent
38
+ * Get the WSClient responsible for a given terminal
39
+ */
40
+ private getWsClientForTerminal;
41
+ /**
42
+ * Get the primary server's WSClient
43
+ */
44
+ private getPrimaryWsClient;
45
+ /**
46
+ * Broadcast to ALL connected WSClients
47
+ */
48
+ private broadcastAll;
49
+ /**
50
+ * Setup shared PTY/SSH data handlers (these route output to the correct server)
51
+ */
52
+ private setupSharedHandlers;
53
+ /**
54
+ * Add a server connection with all event wiring
55
+ */
56
+ addServerConnection(entry: ServerEntry): void;
57
+ /**
58
+ * Start the agent — connects to all configured servers
30
59
  */
31
60
  start(options?: AgentOptions): Promise<boolean>;
32
61
  /**
33
- * Stop the agent
62
+ * Stop the agent — disconnects from ALL servers
34
63
  */
35
64
  stop(): void;
36
65
  /**
37
- * Hibernate the agent - kills PTYs silently so server marks them HIBERNATED.
38
- * Used during graceful shutdown (Cmd+Q, SIGTERM) to preserve terminal state.
66
+ * Hibernate the agent kills PTYs silently, disconnects ALL servers
39
67
  */
40
68
  hibernate(): void;
41
69
  /**
42
- * Start collecting and sending system stats
70
+ * Start collecting and sending system stats — broadcast to ALL servers
43
71
  */
44
72
  private startStatsCollection;
45
73
  /**
46
- * Initialize WireGuard detection and report status.
47
- * Non-blocking — called with .catch() so it never delays the connection.
74
+ * Initialize WireGuard (primary server only)
48
75
  */
49
76
  private initWireGuard;
50
77
  /**
51
- * Report WireGuard status to server using real data from the WireGuardManager.
78
+ * Report WireGuard status to primary server
52
79
  */
53
80
  private reportWgStatus;
54
81
  /**
55
82
  * Handle shutdown signals
56
83
  */
57
84
  private handleShutdown;
58
- /**
59
- * Check if agent is running
60
- */
61
85
  get running(): boolean;
62
- /**
63
- * Check if connected to server
64
- */
65
86
  get connected(): boolean;
66
- /**
67
- * Get current agent ID
68
- */
69
87
  get id(): string | null;
70
- /**
71
- * Get current agent name
72
- */
73
88
  get name(): string | null;
74
- /**
75
- * Get number of active terminals (local + SSH)
76
- */
77
89
  get terminalCount(): number;
78
90
  /**
79
- * Get status information
91
+ * Get number of connected servers
80
92
  */
93
+ get serverCount(): number;
81
94
  getStatus(): {
82
95
  running: boolean;
83
96
  connected: boolean;
84
97
  agentId: string | null;
85
98
  agentName: string | null;
86
99
  terminalCount: number;
100
+ serverCount: number;
87
101
  config: {
88
102
  serverUrl: string;
89
103
  machineId: string;
90
104
  lastConnected: string | null;
91
105
  };
92
106
  };
93
- /**
94
- * Get combined list of all terminals for dashboard display
95
- */
96
107
  getTerminals(): DashboardTerminal[];
97
- /**
98
- * Get WireGuard info for dashboard display
99
- */
100
108
  getWireGuardInfo(): DashboardWireGuard;
101
109
  }
102
110
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAa5E,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,KAAM,SAAQ,YAAY;IACrC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAuB;;IAqDxC;;OAEG;IACH,OAAO,CAAC,aAAa;IA2brB;;OAEG;IACG,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCzD;;OAEG;IACH,IAAI,IAAI,IAAI;IAkCZ;;;OAGG;IACH,SAAS,IAAI,IAAI;IAmCjB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;OAGG;YACW,aAAa;IAsB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,IAAI,CAEtB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;SAC9B,CAAC;KACH;IAgBD;;OAEG;IACH,YAAY,IAAI,iBAAiB,EAAE;IAkBnC;;OAEG;IACH,gBAAgB,IAAI,kBAAkB;CAQvC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAW5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,KAAM,SAAQ,YAAY;IACrC,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAoC;IACrD,iEAAiE;IACjE,OAAO,CAAC,cAAc,CAAyC;IAC/D,yFAAyF;IACzF,OAAO,CAAC,iBAAiB,CAAkC;IAE3D,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,sDAAsD;IACtD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,gBAAgB,CAAuB;;IAmD/C;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2C3B;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAsa7C;;OAEG;IACG,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAqDzD;;OAEG;IACH,IAAI,IAAI,IAAI;IAmCZ;;OAEG;IACH,SAAS,IAAI,IAAI;IAiCjB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,EAAE,IAAI,MAAM,GAAG,IAAI,CAEtB;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;SAC9B,CAAC;KACH;IAiBD,YAAY,IAAI,iBAAiB,EAAE;IAkBnC,gBAAgB,IAAI,kBAAkB;CAQvC"}