termify-agent 1.0.32 → 1.0.34
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 +13 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +236 -0
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +184 -15
- package/dist/index.js.map +1 -1
- package/dist/network/backends/windows-wireguard-backend.d.ts +29 -0
- package/dist/network/backends/windows-wireguard-backend.d.ts.map +1 -0
- package/dist/network/backends/windows-wireguard-backend.js +190 -0
- package/dist/network/backends/windows-wireguard-backend.js.map +1 -0
- package/dist/network/key-rotation.d.ts +55 -0
- package/dist/network/key-rotation.d.ts.map +1 -0
- package/dist/network/key-rotation.js +105 -0
- package/dist/network/key-rotation.js.map +1 -0
- package/dist/network/nat-traversal.d.ts +27 -0
- package/dist/network/nat-traversal.d.ts.map +1 -0
- package/dist/network/nat-traversal.js +76 -0
- package/dist/network/nat-traversal.js.map +1 -0
- package/dist/network/uapi-client.d.ts +50 -0
- package/dist/network/uapi-client.d.ts.map +1 -0
- package/dist/network/uapi-client.js +260 -0
- package/dist/network/uapi-client.js.map +1 -0
- package/dist/network/wireguard-backend.d.ts +60 -0
- package/dist/network/wireguard-backend.d.ts.map +1 -0
- package/dist/network/wireguard-backend.js +9 -0
- package/dist/network/wireguard-backend.js.map +1 -0
- package/dist/network/wireguard-installer.d.ts +24 -0
- package/dist/network/wireguard-installer.d.ts.map +1 -0
- package/dist/network/wireguard-installer.js +362 -0
- package/dist/network/wireguard-installer.js.map +1 -0
- package/dist/network/wireguard-manager.d.ts +92 -0
- package/dist/network/wireguard-manager.d.ts.map +1 -0
- package/dist/network/wireguard-manager.js +575 -0
- package/dist/network/wireguard-manager.js.map +1 -0
- package/dist/network/wireguard-state-store.d.ts +55 -0
- package/dist/network/wireguard-state-store.d.ts.map +1 -0
- package/dist/network/wireguard-state-store.js +196 -0
- package/dist/network/wireguard-state-store.js.map +1 -0
- package/dist/ssh-manager.d.ts +5 -0
- package/dist/ssh-manager.d.ts.map +1 -1
- package/dist/ssh-manager.js +104 -0
- package/dist/ssh-manager.js.map +1 -1
- package/dist/tunnel-manager.d.ts +65 -0
- package/dist/tunnel-manager.d.ts.map +1 -0
- package/dist/tunnel-manager.js +267 -0
- package/dist/tunnel-manager.js.map +1 -0
- package/dist/ws-client.d.ts +145 -0
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +136 -1
- package/dist/ws-client.js.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +100 -35
package/dist/ws-client.js
CHANGED
|
@@ -85,7 +85,12 @@ export class WSClient extends EventEmitter {
|
|
|
85
85
|
logger.debug('WebSocket connected, authenticating...');
|
|
86
86
|
this.authenticate();
|
|
87
87
|
});
|
|
88
|
-
this.ws.on('message', (data) => {
|
|
88
|
+
this.ws.on('message', (data, isBinary) => {
|
|
89
|
+
if (isBinary) {
|
|
90
|
+
// Binary frame = tunnel data, forward without parsing
|
|
91
|
+
this.emit('tunnelBinaryData', data);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
89
94
|
this.handleMessage(data);
|
|
90
95
|
});
|
|
91
96
|
this.ws.on('close', (code, reason) => {
|
|
@@ -115,6 +120,10 @@ export class WSClient extends EventEmitter {
|
|
|
115
120
|
os: systemInfo.os,
|
|
116
121
|
hostname: systemInfo.hostname,
|
|
117
122
|
arch: systemInfo.arch,
|
|
123
|
+
capabilities: {
|
|
124
|
+
tunnelV1: true,
|
|
125
|
+
binaryRelay: true,
|
|
126
|
+
},
|
|
118
127
|
};
|
|
119
128
|
this.send(authMessage);
|
|
120
129
|
}
|
|
@@ -153,6 +162,10 @@ export class WSClient extends EventEmitter {
|
|
|
153
162
|
logger.debug(`Create SSH terminal: ${message.terminalId} -> ${message.sshConfig.host}`);
|
|
154
163
|
this.emit('terminalCreateSSH', message.terminalId, message.cols, message.rows, message.sshConfig);
|
|
155
164
|
break;
|
|
165
|
+
case 'server.terminal.ssh.tunnel':
|
|
166
|
+
logger.debug(`Create SSH tunnel terminal: ${message.terminalId} via tunnel ${message.tunnelId}`);
|
|
167
|
+
this.emit('terminalSSHTunnel', message.terminalId, message.tunnelId, message.cols, message.rows, message.sshConfig);
|
|
168
|
+
break;
|
|
156
169
|
case 'server.terminal.input':
|
|
157
170
|
this.emit('terminalInput', message.terminalId, message.data);
|
|
158
171
|
break;
|
|
@@ -205,6 +218,52 @@ export class WSClient extends EventEmitter {
|
|
|
205
218
|
case 'server.pong':
|
|
206
219
|
this.handlePong();
|
|
207
220
|
break;
|
|
221
|
+
// WireGuard messages
|
|
222
|
+
case 'server.wg.feature':
|
|
223
|
+
logger.debug(`WireGuard feature: enabled=${message.enabled} version=${message.version}`);
|
|
224
|
+
this.emit('wgFeature', message.enabled, message.version);
|
|
225
|
+
break;
|
|
226
|
+
case 'server.wg.peers.full':
|
|
227
|
+
logger.debug(`WG peers full snapshot: ${message.peers.length} peers`);
|
|
228
|
+
this.emit('wgPeersFull', message.selfVirtualIp, message.peers);
|
|
229
|
+
break;
|
|
230
|
+
case 'server.wg.peer.add':
|
|
231
|
+
logger.debug(`WG peer add: ${message.agentId}`);
|
|
232
|
+
this.emit('wgPeerAdd', { agentId: message.agentId, virtualIp: message.virtualIp, publicKey: message.publicKey, endpointHint: message.endpointHint, natType: message.natType });
|
|
233
|
+
break;
|
|
234
|
+
case 'server.wg.peer.remove':
|
|
235
|
+
logger.debug(`WG peer remove: ${message.agentId}`);
|
|
236
|
+
this.emit('wgPeerRemove', message.agentId, message.publicKey);
|
|
237
|
+
break;
|
|
238
|
+
case 'server.wg.nat.probe':
|
|
239
|
+
logger.debug(`WG NAT probe requested with ${message.servers.length} servers`);
|
|
240
|
+
this.emit('wgNatProbe', message.token, message.servers);
|
|
241
|
+
break;
|
|
242
|
+
case 'server.wg.endpoint.candidates':
|
|
243
|
+
logger.debug(`WG endpoint candidates for peer ${message.peerAgentId}: ${message.candidates.length} candidates`);
|
|
244
|
+
this.emit('wgEndpointCandidates', message.peerAgentId, message.peerPublicKey, message.candidates);
|
|
245
|
+
break;
|
|
246
|
+
// Key rotation messages
|
|
247
|
+
case 'server.wg.peer.update':
|
|
248
|
+
logger.debug(`WG peer update: ${message.agentId} key v${message.keyVersion}`);
|
|
249
|
+
this.emit('wgPeerUpdate', message.agentId, message.oldPublicKey, message.newPublicKey, message.keyVersion);
|
|
250
|
+
break;
|
|
251
|
+
case 'server.wg.rotate.commit':
|
|
252
|
+
logger.debug(`WG key rotation committed: v${message.keyVersion}`);
|
|
253
|
+
this.emit('wgRotateCommit', message.keyVersion);
|
|
254
|
+
break;
|
|
255
|
+
// Tunnel messages
|
|
256
|
+
case 'server.tunnel.create':
|
|
257
|
+
logger.debug(`Tunnel create: ${message.tunnelId} role=${message.role}`);
|
|
258
|
+
this.emit('tunnelCreate', message.tunnelId, message.sourceAgentId, message.targetAgentId, message.role, message.targetHost, message.targetPort, message.protocol, message.idleTimeoutMs);
|
|
259
|
+
break;
|
|
260
|
+
case 'server.tunnel.close':
|
|
261
|
+
logger.debug(`Tunnel close: ${message.tunnelId}`);
|
|
262
|
+
this.emit('tunnelClose', message.tunnelId, message.reason);
|
|
263
|
+
break;
|
|
264
|
+
case 'server.tunnel.flow':
|
|
265
|
+
this.emit('tunnelFlow', message.tunnelId, message.action);
|
|
266
|
+
break;
|
|
208
267
|
default:
|
|
209
268
|
logger.warn(`Unknown message type: ${message.type}`);
|
|
210
269
|
}
|
|
@@ -452,6 +511,42 @@ export class WSClient extends EventEmitter {
|
|
|
452
511
|
ports,
|
|
453
512
|
});
|
|
454
513
|
}
|
|
514
|
+
/**
|
|
515
|
+
* Send WireGuard status to server
|
|
516
|
+
*/
|
|
517
|
+
sendWgStatus(status) {
|
|
518
|
+
this.send(status);
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Send WireGuard ready notification to server
|
|
522
|
+
*/
|
|
523
|
+
sendWgReady(interfaceName, publicKey, listenPort) {
|
|
524
|
+
this.send({ type: 'agent.wg.ready', interfaceName, publicKey, listenPort });
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Send WireGuard peer health report to server
|
|
528
|
+
*/
|
|
529
|
+
sendWgPeerHealth(peerAgentId, latestHandshakeAt, transferRx, transferTx) {
|
|
530
|
+
this.send({ type: 'agent.wg.peer.health', peerAgentId, latestHandshakeAt, transferRx, transferTx });
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Send NAT traversal probe result to server
|
|
534
|
+
*/
|
|
535
|
+
sendWgNatResult(token, natType, candidates) {
|
|
536
|
+
this.send({ type: 'agent.wg.nat.result', token, natType, candidates });
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Propose a key rotation to the server
|
|
540
|
+
*/
|
|
541
|
+
sendWgRotatePropose(newPublicKey, keyVersion) {
|
|
542
|
+
this.send({ type: 'agent.wg.rotate.propose', newPublicKey, keyVersion });
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Acknowledge that a peer's key update has been applied locally
|
|
546
|
+
*/
|
|
547
|
+
sendWgRotateApplied(keyVersion) {
|
|
548
|
+
this.send({ type: 'agent.wg.rotate.applied', keyVersion });
|
|
549
|
+
}
|
|
455
550
|
/**
|
|
456
551
|
* Send preview response back to server
|
|
457
552
|
*/
|
|
@@ -465,6 +560,46 @@ export class WSClient extends EventEmitter {
|
|
|
465
560
|
isBase64,
|
|
466
561
|
});
|
|
467
562
|
}
|
|
563
|
+
/**
|
|
564
|
+
* Send binary data to the server (for tunnel data frames)
|
|
565
|
+
*/
|
|
566
|
+
sendBinary(buffer) {
|
|
567
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
568
|
+
return false;
|
|
569
|
+
}
|
|
570
|
+
try {
|
|
571
|
+
this.ws.send(buffer, { binary: true, compress: false });
|
|
572
|
+
return true;
|
|
573
|
+
}
|
|
574
|
+
catch (error) {
|
|
575
|
+
logger.error(`Failed to send binary: ${error}`);
|
|
576
|
+
return false;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* Send tunnel ready notification
|
|
581
|
+
*/
|
|
582
|
+
sendTunnelReady(tunnelId) {
|
|
583
|
+
this.send({ type: 'agent.tunnel.ready', tunnelId });
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Send tunnel error notification
|
|
587
|
+
*/
|
|
588
|
+
sendTunnelError(tunnelId, code, message) {
|
|
589
|
+
this.send({ type: 'agent.tunnel.error', tunnelId, code, message });
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Send tunnel closed notification
|
|
593
|
+
*/
|
|
594
|
+
sendTunnelClosed(tunnelId, reason) {
|
|
595
|
+
this.send({ type: 'agent.tunnel.closed', tunnelId, reason });
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Send tunnel flow control
|
|
599
|
+
*/
|
|
600
|
+
sendTunnelFlow(tunnelId, bufferedBytes) {
|
|
601
|
+
this.send({ type: 'agent.tunnel.flow', tunnelId, bufferedBytes });
|
|
602
|
+
}
|
|
468
603
|
/**
|
|
469
604
|
* Disconnect from the server
|
|
470
605
|
*/
|
package/dist/ws-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,GAAG,OAAO,CAAC;AACxB,oEAAoE;AACpE,uDAAuD;AACvD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY;AAC9F,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY;AAC5F,MAAM,wBAAwB,GAAG,IAAI,CAAC,CAAC,YAAY;AAqNnD;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IAChC,EAAE,GAAqB,IAAI,CAAC;IAC5B,YAAY,GAA0B,IAAI,CAAC;IAC3C,WAAW,GAA0B,IAAI,CAAC;IAC1C,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,WAAW,GAAG,KAAK,CAAC;IACpB,eAAe,GAAG,IAAI,CAAC;IACvB,iBAAiB,GAAG,CAAC,CAAC;IACtB,oBAAoB,GAAG,EAAE,CAAC;IAE1B,yBAAyB,CAAC,UAAkB,EAAE,KAAgB,EAAE,OAAgB,EAAE,gBAAyB;QACjH,kGAAkG;QAClG,+FAA+F;QAC/F,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG;YAAE,OAAO;QACjD,IAAI,OAAQ,UAAkB,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO;QAE5D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO;QAE9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,MAAM,CAAC,SAAS,iBAAiB,CAAC;QACnF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;QAErG,MAAM,IAAI,GAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAE7E,KAAK,KAAK,CAAC,GAAG,EAAE;YACd,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjF;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC;aACC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,MAAM,aAAa,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,8BAA8B,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE3B,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE;gBAC7B,iBAAiB,EAAE,KAAK;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAE;gBACxD,IAAI,QAAQ,EAAE,CAAC;oBACb,sDAAsD;oBACtD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAyB;YACxC,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,MAAM,CAAC,WAAY;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS;YACT,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,YAAY,EAAE;gBACZ,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,IAAI;aAClB;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAY;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAyB,CAAC;YAEpE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,oBAAoB;oBACvB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;wBAC3B,gBAAgB,EAAE,CAAC;wBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,MAAM,CAAC,OAAO,CAAC,gBAAgB,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;wBACzE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,CAAC,0BAA0B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;wBACxD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;wBAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;wBAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,CAAC;oBACD,MAAM;gBAER,KAAK,wBAAwB;oBAC3B,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;wBAC1E,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;qBACjB,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,4BAA4B;oBAC/B,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxF,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAClG,MAAM;gBAER,KAAK,4BAA4B;oBAC/B,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,UAAU,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBACpH,MAAM;gBAER,KAAK,uBAAuB;oBAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC7D,MAAM;gBAER,KAAK,6BAA6B;oBAChC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACnE,MAAM;gBAER,KAAK,wBAAwB;oBAC3B,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBACzF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5E,MAAM;gBAER,KAAK,sBAAsB;oBACzB,MAAM,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC9C,MAAM;gBAER,KAAK,qBAAqB,CAAC;gBAC3B,KAAK,cAAc;oBACjB,MAAM,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBACzE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC7D,MAAM;gBAER,KAAK,0BAA0B,CAAC;gBAChC,KAAK,mBAAmB;oBACtB,MAAM,CAAC,KAAK,CAAC,sBAAsB,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5E,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC/D,MAAM;gBAER,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,aAAa;oBAChB,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5C,MAAM;gBAER,KAAK,kBAAkB;oBACrB,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1C,MAAM;gBAER,KAAK,iBAAiB;oBACpB,MAAM,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBACzC,MAAM;gBAER,KAAK,iBAAiB;oBACpB,MAAM,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBACzC,MAAM;gBAER,KAAK,mBAAmB;oBACtB,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC3C,MAAM;gBAER,KAAK,wBAAwB;oBAC3B,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,SAAS,iBAAiB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1H,MAAM;gBAER,KAAK,aAAa;oBAChB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM;gBAER,qBAAqB;gBACrB,KAAK,mBAAmB;oBACtB,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,OAAO,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACzD,MAAM;gBAER,KAAK,sBAAsB;oBACzB,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;oBACtE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC/D,MAAM;gBAER,KAAK,oBAAoB;oBACvB,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/K,MAAM;gBAER,KAAK,uBAAuB;oBAC1B,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC9D,MAAM;gBAER,KAAK,qBAAqB;oBACxB,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;oBAC9E,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM;gBAER,KAAK,+BAA+B;oBAClC,MAAM,CAAC,KAAK,CAAC,mCAAmC,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;oBAChH,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAClG,MAAM;gBAER,wBAAwB;gBACxB,KAAK,uBAAuB;oBAC1B,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,OAAO,SAAS,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBAC9E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC3G,MAAM;gBAER,KAAK,yBAAyB;oBAC5B,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;oBAClE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAChD,MAAM;gBAER,kBAAkB;gBAClB,KAAK,sBAAsB;oBACzB,MAAM,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;oBACzL,MAAM;gBAER,KAAK,qBAAqB;oBACxB,MAAM,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC3D,MAAM;gBAER,KAAK,oBAAoB;oBACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC1D,MAAM;gBAER;oBACE,MAAM,CAAC,IAAI,CAAC,yBAA0B,OAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY,EAAE,MAAc;QAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,WAAW,GAAG,MAAM,IAAI,mBAAmB,CAAC;QAClD,MAAM,YAAY,GAAG,GAAG,WAAW,WAAW,IAAI,GAAG,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EACzF,KAAK,CAAC,iBAAiB;SACxB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,MAAM,CAAC,CAAC;QAEhI,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,6DAA6D;QAC7D,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAElC,gCAAgC;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;QACvB,CAAC,EAAE,YAAY,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB,EAAE,IAAY;QACjD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,uBAAuB;YAC7B,UAAU;YACV,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB,EAAE,MAAyC,EAAE,KAAc;QAC9F,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,uBAAuB;YAC7B,UAAU;YACV,MAAM;YACN,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAAkB,EAAE,GAAW;QAC7C,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,oBAAoB;YAC1B,UAAU;YACV,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,UAAkB,EAAE,SAAkB,EAAE,aAA6B;QACvF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,wBAAwB;YAC9B,UAAU;YACV,SAAS;YACT,aAAa,EAAE,aAAa,IAAI,IAAI;SACrC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,UAAkB,EAAE,KAAgB,EAAE,OAAgB,EAAE,gBAAyB;QACrG,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,2BAA2B;YACjC,UAAU;YACV,KAAK;YACL,OAAO;YACP,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;QACnD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,qBAAqB;YAC3B,UAAU;YACV,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAgB;QACxB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAkB,EAAE,MAAc,EAAE,SAAkB;QAClE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,2BAA2B;YACjC,UAAU;YACV,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAAkB,EAAE,QAAuB;QACzD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,6BAA6B;YACnC,UAAU;YACV,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,UAAkB,EAAE,OAAwB;QACrD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,wBAAwB;YAC9B,UAAU;YACV,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAkB,EAAE,MAAkH;QAClJ,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,2BAA2B;YACjC,UAAU;YACV,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,UAAkB,EAAE,SAAoC,EAAE,OAAgB,EAAE,KAAc;QAC/G,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,qCAAqC;YAC3C,UAAU;YACV,SAAS;YACT,OAAO;YACP,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAA4D;QACpE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa;YACnB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAA4B;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,aAAqB,EAAE,SAAiB,EAAE,UAAkB;QACtE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,WAAmB,EAAE,iBAAqC,EAAE,UAAkB,EAAE,UAAkB;QACjH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,OAAe,EAAE,UAA+D;QAC7G,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,YAAoB,EAAE,UAAkB;QAC1D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,UAAkB;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,SAAiB,EAAE,UAAkB,EAAE,OAA+B,EAAE,IAAY,EAAE,QAAiB;QACzH,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,wBAAwB;YAC9B,SAAS;YACT,UAAU;YACV,OAAO;YACP,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAA2B;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB,EAAE,IAAY,EAAE,OAAe;QAC7D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAgB,EAAE,MAAc;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,aAAqB;QACpD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -28,6 +28,7 @@ const EXE = IS_WIN ? '.exe' : '';
|
|
|
28
28
|
const TERMIFY_DIR = join(homedir(), '.termify');
|
|
29
29
|
const DAEMON_PATH = join(TERMIFY_DIR, `termify-daemon${EXE}`);
|
|
30
30
|
const STATS_AGENT_PATH = join(TERMIFY_DIR, `stats-agent${EXE}`);
|
|
31
|
+
const WG_GO_PATH = join(TERMIFY_DIR, 'wireguard-go');
|
|
31
32
|
const MCP_DIR = join(TERMIFY_DIR, 'termify-mcp');
|
|
32
33
|
const MCP_BUNDLE_PATH = join(MCP_DIR, 'index.mjs');
|
|
33
34
|
|
|
@@ -321,6 +322,77 @@ async function installStatsAgent() {
|
|
|
321
322
|
}
|
|
322
323
|
}
|
|
323
324
|
|
|
325
|
+
/**
|
|
326
|
+
* Step 4: Install wireguard-go binary (bundled first, download as fallback)
|
|
327
|
+
*
|
|
328
|
+
* Bundling wireguard-go eliminates the need for `brew install wireguard-tools`
|
|
329
|
+
* on macOS and provides a userspace WireGuard implementation for all platforms.
|
|
330
|
+
* Combined with the UAPI socket client, this means the agent has zero external
|
|
331
|
+
* WireGuard dependencies (same model as Tailscale).
|
|
332
|
+
*
|
|
333
|
+
* Not installed on Windows (uses native WireGuard service).
|
|
334
|
+
*/
|
|
335
|
+
async function installWireguardGo() {
|
|
336
|
+
if (IS_WIN) {
|
|
337
|
+
// Windows uses native WireGuard service, not wireguard-go
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
const plat = platform();
|
|
342
|
+
const ar = arch();
|
|
343
|
+
|
|
344
|
+
const platformMap = {
|
|
345
|
+
'darwin-arm64': 'darwin-arm64',
|
|
346
|
+
'darwin-x64': 'darwin-x64',
|
|
347
|
+
'linux-x64': 'linux-x64',
|
|
348
|
+
'linux-arm64': 'linux-arm64',
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
const key = `${plat}-${ar}`;
|
|
352
|
+
const binaryName = platformMap[key];
|
|
353
|
+
|
|
354
|
+
if (!binaryName) {
|
|
355
|
+
console.warn(`[termify-agent] Warning: No wireguard-go binary available for ${key}.`);
|
|
356
|
+
console.warn('[termify-agent] WireGuard will require system-installed wireguard-tools.');
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// Skip if already exists
|
|
361
|
+
if (existsSync(WG_GO_PATH)) {
|
|
362
|
+
console.log('[termify-agent] wireguard-go binary already exists, skipping.');
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// Ensure ~/.termify directory exists
|
|
367
|
+
mkdirSync(TERMIFY_DIR, { recursive: true });
|
|
368
|
+
|
|
369
|
+
// Try bundled binary first
|
|
370
|
+
const bundledPath = join(__dirname, '..', 'binaries', `wireguard-go-${binaryName}`);
|
|
371
|
+
if (existsSync(bundledPath)) {
|
|
372
|
+
try {
|
|
373
|
+
copyFileSync(bundledPath, WG_GO_PATH);
|
|
374
|
+
chmodSync(WG_GO_PATH, 0o755);
|
|
375
|
+
console.log(`[termify-agent] wireguard-go installed from bundled binary (${binaryName})`);
|
|
376
|
+
return;
|
|
377
|
+
} catch (err) {
|
|
378
|
+
console.warn(`[termify-agent] Warning: Failed to copy bundled wireguard-go: ${err.message}`);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// Fallback: download from server
|
|
383
|
+
console.log(`[termify-agent] Downloading wireguard-go for ${binaryName}...`);
|
|
384
|
+
const url = `${DOWNLOAD_BASE_URL}/wireguard-go/${binaryName}`;
|
|
385
|
+
|
|
386
|
+
try {
|
|
387
|
+
await downloadFile(url, WG_GO_PATH);
|
|
388
|
+
chmodSync(WG_GO_PATH, 0o755);
|
|
389
|
+
console.log(`[termify-agent] wireguard-go downloaded and installed to ${WG_GO_PATH}`);
|
|
390
|
+
} catch (err) {
|
|
391
|
+
console.warn(`[termify-agent] Warning: Failed to download wireguard-go: ${err.message}`);
|
|
392
|
+
console.warn('[termify-agent] WireGuard will require system-installed wireguard-tools.');
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
324
396
|
/**
|
|
325
397
|
* Download a file following redirects (up to 5)
|
|
326
398
|
*/
|
|
@@ -471,30 +543,28 @@ function installHookFiles() {
|
|
|
471
543
|
|
|
472
544
|
/**
|
|
473
545
|
* Register a hook command in a Claude Code settings.json hooks section.
|
|
474
|
-
* Avoids duplicates by checking if the hook
|
|
546
|
+
* Avoids duplicates by checking if the hook filename (basename) is already
|
|
547
|
+
* registered under ANY path — prevents the same hook from being registered
|
|
548
|
+
* from both ~/.claude/hooks/ and ~/.termify/hooks/.
|
|
475
549
|
*/
|
|
476
550
|
function registerClaudeHook(settings, eventName, hookCommand, identifierStr) {
|
|
477
551
|
if (!settings.hooks) settings.hooks = {};
|
|
478
552
|
|
|
553
|
+
// Extract the hook filename from the command (e.g., "termify-sync.js" from "node /path/to/termify-sync.js")
|
|
554
|
+
const hookFilename = hookCommand.split('/').pop()?.split('\\').pop() || hookCommand;
|
|
555
|
+
|
|
479
556
|
const hookEntry = {
|
|
480
557
|
hooks: [{ type: 'command', command: hookCommand }],
|
|
481
558
|
};
|
|
482
559
|
|
|
483
|
-
// Add matcher if specified (for PreToolUse filtering)
|
|
484
|
-
if (identifierStr && identifierStr !== hookCommand) {
|
|
485
|
-
// matcher is already encoded in the hookEntry via the tool_name filter
|
|
486
|
-
}
|
|
487
|
-
|
|
488
560
|
if (!settings.hooks[eventName]) {
|
|
489
561
|
settings.hooks[eventName] = [hookEntry];
|
|
490
562
|
} else {
|
|
491
|
-
//
|
|
492
|
-
|
|
493
|
-
(h) => h.hooks
|
|
563
|
+
// Remove any existing entries with the same hook filename (from any path)
|
|
564
|
+
settings.hooks[eventName] = settings.hooks[eventName].filter(
|
|
565
|
+
(h) => !h.hooks || !h.hooks.some((hh) => hh.command && hh.command.includes(hookFilename))
|
|
494
566
|
);
|
|
495
|
-
|
|
496
|
-
settings.hooks[eventName].push(hookEntry);
|
|
497
|
-
}
|
|
567
|
+
settings.hooks[eventName].push(hookEntry);
|
|
498
568
|
}
|
|
499
569
|
}
|
|
500
570
|
|
|
@@ -512,8 +582,9 @@ function configureClaudeCode(mcpPath) {
|
|
|
512
582
|
settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
|
|
513
583
|
}
|
|
514
584
|
|
|
515
|
-
// Configure MCP server
|
|
585
|
+
// Configure MCP server (clean up old 'termify' key if it exists)
|
|
516
586
|
if (!settings.mcpServers) settings.mcpServers = {};
|
|
587
|
+
delete settings.mcpServers['termify'];
|
|
517
588
|
settings.mcpServers['termify-status'] = {
|
|
518
589
|
command: 'node',
|
|
519
590
|
args: [mcpPath],
|
|
@@ -522,12 +593,13 @@ function configureClaudeCode(mcpPath) {
|
|
|
522
593
|
// Install hook files
|
|
523
594
|
const hooksDestDir = installHookFiles();
|
|
524
595
|
|
|
525
|
-
// Clean up
|
|
596
|
+
// Clean up ALL existing termify hooks from any path (prevents duplicates
|
|
597
|
+
// when hooks were previously installed to ~/.claude/hooks/ or ~/.termify/hooks/)
|
|
526
598
|
if (settings.hooks) {
|
|
527
599
|
for (const eventName of Object.keys(settings.hooks)) {
|
|
528
600
|
if (Array.isArray(settings.hooks[eventName])) {
|
|
529
601
|
settings.hooks[eventName] = settings.hooks[eventName].filter(
|
|
530
|
-
(h) => !h.hooks || !h.hooks.some((hh) => hh.command && hh.command
|
|
602
|
+
(h) => !h.hooks || !h.hooks.some((hh) => hh.command && /termify-/.test(hh.command))
|
|
531
603
|
);
|
|
532
604
|
if (settings.hooks[eventName].length === 0) {
|
|
533
605
|
delete settings.hooks[eventName];
|
|
@@ -536,35 +608,26 @@ function configureClaudeCode(mcpPath) {
|
|
|
536
608
|
}
|
|
537
609
|
}
|
|
538
610
|
|
|
539
|
-
// Register Claude Code hooks
|
|
611
|
+
// Register Claude Code hooks (fresh, no duplicates possible after cleanup above)
|
|
612
|
+
if (!settings.hooks) settings.hooks = {};
|
|
540
613
|
const claudeHooks = HOOK_DEFINITIONS.claude;
|
|
541
614
|
for (const [eventName, hooks] of Object.entries(claudeHooks)) {
|
|
615
|
+
if (!settings.hooks[eventName]) settings.hooks[eventName] = [];
|
|
616
|
+
|
|
542
617
|
for (const hook of hooks) {
|
|
543
618
|
const file = typeof hook === 'string' ? hook : hook.file;
|
|
544
619
|
const matcher = typeof hook === 'object' ? hook.matcher : null;
|
|
545
620
|
const hookPath = join(hooksDestDir, file);
|
|
546
621
|
const hookCommand = `node ${hookPath}`;
|
|
547
622
|
|
|
623
|
+
const entry = {
|
|
624
|
+
hooks: [{ type: 'command', command: hookCommand }],
|
|
625
|
+
};
|
|
548
626
|
if (matcher) {
|
|
549
|
-
|
|
550
|
-
if (!settings.hooks) settings.hooks = {};
|
|
551
|
-
if (!settings.hooks[eventName]) settings.hooks[eventName] = [];
|
|
552
|
-
|
|
553
|
-
const matcherEntry = {
|
|
554
|
-
matcher: matcher,
|
|
555
|
-
hooks: [{ type: 'command', command: hookCommand }],
|
|
556
|
-
};
|
|
557
|
-
|
|
558
|
-
// Check if already registered
|
|
559
|
-
const already = settings.hooks[eventName].some(
|
|
560
|
-
(h) => h.matcher === matcher && h.hooks && h.hooks.some((hh) => hh.command === hookCommand)
|
|
561
|
-
);
|
|
562
|
-
if (!already) {
|
|
563
|
-
settings.hooks[eventName].push(matcherEntry);
|
|
564
|
-
}
|
|
565
|
-
} else {
|
|
566
|
-
registerClaudeHook(settings, eventName, hookCommand, hookCommand);
|
|
627
|
+
entry.matcher = matcher;
|
|
567
628
|
}
|
|
629
|
+
|
|
630
|
+
settings.hooks[eventName].push(entry);
|
|
568
631
|
}
|
|
569
632
|
}
|
|
570
633
|
|
|
@@ -835,15 +898,17 @@ async function main() {
|
|
|
835
898
|
if (ptyOk) s1.succeed('node-pty ready');
|
|
836
899
|
else s1.warn('node-pty skipped ${DIM}(optional)${RESET}');
|
|
837
900
|
|
|
838
|
-
// Step 2+3: Binaries in parallel
|
|
901
|
+
// Step 2+3+4: Binaries in parallel
|
|
839
902
|
const s2 = createSpinner('Installing binaries...');
|
|
840
903
|
const [daemonOk, statsOk] = await Promise.all([
|
|
841
904
|
installDaemon().catch(() => false),
|
|
842
905
|
installStatsAgent().catch(() => false),
|
|
906
|
+
installWireguardGo().catch(() => false),
|
|
843
907
|
]);
|
|
844
908
|
const parts = [];
|
|
845
909
|
if (daemonOk) parts.push('daemon');
|
|
846
910
|
if (statsOk) parts.push('stats-agent');
|
|
911
|
+
if (existsSync(WG_GO_PATH)) parts.push('wireguard-go');
|
|
847
912
|
if (parts.length) s2.succeed(`Binaries ready ${DIM}(${parts.join(', ')})${RESET}`);
|
|
848
913
|
else s2.warn('Binaries skipped');
|
|
849
914
|
|