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.
Files changed (56) hide show
  1. package/dist/agent.d.ts +13 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +236 -0
  4. package/dist/agent.js.map +1 -1
  5. package/dist/config.d.ts +2 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +5 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/index.js +184 -15
  10. package/dist/index.js.map +1 -1
  11. package/dist/network/backends/windows-wireguard-backend.d.ts +29 -0
  12. package/dist/network/backends/windows-wireguard-backend.d.ts.map +1 -0
  13. package/dist/network/backends/windows-wireguard-backend.js +190 -0
  14. package/dist/network/backends/windows-wireguard-backend.js.map +1 -0
  15. package/dist/network/key-rotation.d.ts +55 -0
  16. package/dist/network/key-rotation.d.ts.map +1 -0
  17. package/dist/network/key-rotation.js +105 -0
  18. package/dist/network/key-rotation.js.map +1 -0
  19. package/dist/network/nat-traversal.d.ts +27 -0
  20. package/dist/network/nat-traversal.d.ts.map +1 -0
  21. package/dist/network/nat-traversal.js +76 -0
  22. package/dist/network/nat-traversal.js.map +1 -0
  23. package/dist/network/uapi-client.d.ts +50 -0
  24. package/dist/network/uapi-client.d.ts.map +1 -0
  25. package/dist/network/uapi-client.js +260 -0
  26. package/dist/network/uapi-client.js.map +1 -0
  27. package/dist/network/wireguard-backend.d.ts +60 -0
  28. package/dist/network/wireguard-backend.d.ts.map +1 -0
  29. package/dist/network/wireguard-backend.js +9 -0
  30. package/dist/network/wireguard-backend.js.map +1 -0
  31. package/dist/network/wireguard-installer.d.ts +24 -0
  32. package/dist/network/wireguard-installer.d.ts.map +1 -0
  33. package/dist/network/wireguard-installer.js +362 -0
  34. package/dist/network/wireguard-installer.js.map +1 -0
  35. package/dist/network/wireguard-manager.d.ts +92 -0
  36. package/dist/network/wireguard-manager.d.ts.map +1 -0
  37. package/dist/network/wireguard-manager.js +575 -0
  38. package/dist/network/wireguard-manager.js.map +1 -0
  39. package/dist/network/wireguard-state-store.d.ts +55 -0
  40. package/dist/network/wireguard-state-store.d.ts.map +1 -0
  41. package/dist/network/wireguard-state-store.js +196 -0
  42. package/dist/network/wireguard-state-store.js.map +1 -0
  43. package/dist/ssh-manager.d.ts +5 -0
  44. package/dist/ssh-manager.d.ts.map +1 -1
  45. package/dist/ssh-manager.js +104 -0
  46. package/dist/ssh-manager.js.map +1 -1
  47. package/dist/tunnel-manager.d.ts +65 -0
  48. package/dist/tunnel-manager.d.ts.map +1 -0
  49. package/dist/tunnel-manager.js +267 -0
  50. package/dist/tunnel-manager.js.map +1 -0
  51. package/dist/ws-client.d.ts +145 -0
  52. package/dist/ws-client.d.ts.map +1 -1
  53. package/dist/ws-client.js +136 -1
  54. package/dist/ws-client.js.map +1 -1
  55. package/package.json +1 -1
  56. 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
  */
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "termify-agent",
3
- "version": "1.0.32",
3
+ "version": "1.0.34",
4
4
  "description": "Termify Agent CLI - Connect your local terminal to Termify",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -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 file name is already registered.
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
- // Check if already registered (by identifier string in command)
492
- const already = settings.hooks[eventName].some(
493
- (h) => h.hooks && h.hooks.some((hh) => hh.command && hh.command === hookCommand)
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
- if (!already) {
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 old hooks from previous versions
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.includes('termify-auto-working'))
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
- // For PreToolUse with matcher, create entry with tool_name filter
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