@ebowwa/hetzner-mcp 1.1.0

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 (227) hide show
  1. package/bun.lock +250 -0
  2. package/dist/index.d.ts +16 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +1928 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/hetzner/actions.d.ts +356 -0
  7. package/dist/lib/hetzner/actions.d.ts.map +1 -0
  8. package/dist/lib/hetzner/actions.js +804 -0
  9. package/dist/lib/hetzner/actions.js.map +1 -0
  10. package/dist/lib/hetzner/auth.d.ts +7 -0
  11. package/dist/lib/hetzner/auth.d.ts.map +1 -0
  12. package/dist/lib/hetzner/auth.js +35 -0
  13. package/dist/lib/hetzner/auth.js.map +1 -0
  14. package/dist/lib/hetzner/bootstrap/cloud-init.d.ts +79 -0
  15. package/dist/lib/hetzner/bootstrap/cloud-init.d.ts.map +1 -0
  16. package/dist/lib/hetzner/bootstrap/cloud-init.js +279 -0
  17. package/dist/lib/hetzner/bootstrap/cloud-init.js.map +1 -0
  18. package/dist/lib/hetzner/bootstrap/firewall.d.ts +119 -0
  19. package/dist/lib/hetzner/bootstrap/firewall.d.ts.map +1 -0
  20. package/dist/lib/hetzner/bootstrap/firewall.js +279 -0
  21. package/dist/lib/hetzner/bootstrap/firewall.js.map +1 -0
  22. package/dist/lib/hetzner/bootstrap/genesis.d.ts +83 -0
  23. package/dist/lib/hetzner/bootstrap/genesis.d.ts.map +1 -0
  24. package/dist/lib/hetzner/bootstrap/genesis.js +406 -0
  25. package/dist/lib/hetzner/bootstrap/genesis.js.map +1 -0
  26. package/dist/lib/hetzner/bootstrap/index.d.ts +30 -0
  27. package/dist/lib/hetzner/bootstrap/index.d.ts.map +1 -0
  28. package/dist/lib/hetzner/bootstrap/index.js +35 -0
  29. package/dist/lib/hetzner/bootstrap/index.js.map +1 -0
  30. package/dist/lib/hetzner/bootstrap/kernel-hardening.d.ts +70 -0
  31. package/dist/lib/hetzner/bootstrap/kernel-hardening.d.ts.map +1 -0
  32. package/dist/lib/hetzner/bootstrap/kernel-hardening.js +266 -0
  33. package/dist/lib/hetzner/bootstrap/kernel-hardening.js.map +1 -0
  34. package/dist/lib/hetzner/bootstrap/kernel-hardening.test.d.ts +7 -0
  35. package/dist/lib/hetzner/bootstrap/kernel-hardening.test.d.ts.map +1 -0
  36. package/dist/lib/hetzner/bootstrap/kernel-hardening.test.js +181 -0
  37. package/dist/lib/hetzner/bootstrap/kernel-hardening.test.js.map +1 -0
  38. package/dist/lib/hetzner/bootstrap/security-audit.d.ts +46 -0
  39. package/dist/lib/hetzner/bootstrap/security-audit.d.ts.map +1 -0
  40. package/dist/lib/hetzner/bootstrap/security-audit.js +118 -0
  41. package/dist/lib/hetzner/bootstrap/security-audit.js.map +1 -0
  42. package/dist/lib/hetzner/bootstrap/ssh-hardening.d.ts +68 -0
  43. package/dist/lib/hetzner/bootstrap/ssh-hardening.d.ts.map +1 -0
  44. package/dist/lib/hetzner/bootstrap/ssh-hardening.js +182 -0
  45. package/dist/lib/hetzner/bootstrap/ssh-hardening.js.map +1 -0
  46. package/dist/lib/hetzner/client.d.ts +63 -0
  47. package/dist/lib/hetzner/client.d.ts.map +1 -0
  48. package/dist/lib/hetzner/client.js +137 -0
  49. package/dist/lib/hetzner/client.js.map +1 -0
  50. package/dist/lib/hetzner/config.d.ts +5 -0
  51. package/dist/lib/hetzner/config.d.ts.map +1 -0
  52. package/dist/lib/hetzner/config.js +5 -0
  53. package/dist/lib/hetzner/config.js.map +1 -0
  54. package/dist/lib/hetzner/errors.d.ts +171 -0
  55. package/dist/lib/hetzner/errors.d.ts.map +1 -0
  56. package/dist/lib/hetzner/errors.js +270 -0
  57. package/dist/lib/hetzner/errors.js.map +1 -0
  58. package/dist/lib/hetzner/index.d.ts +21 -0
  59. package/dist/lib/hetzner/index.d.ts.map +1 -0
  60. package/dist/lib/hetzner/index.js +29 -0
  61. package/dist/lib/hetzner/index.js.map +1 -0
  62. package/dist/lib/hetzner/pricing.d.ts +207 -0
  63. package/dist/lib/hetzner/pricing.d.ts.map +1 -0
  64. package/dist/lib/hetzner/pricing.js +284 -0
  65. package/dist/lib/hetzner/pricing.js.map +1 -0
  66. package/dist/lib/hetzner/schemas.d.ts +1644 -0
  67. package/dist/lib/hetzner/schemas.d.ts.map +1 -0
  68. package/dist/lib/hetzner/schemas.js +660 -0
  69. package/dist/lib/hetzner/schemas.js.map +1 -0
  70. package/dist/lib/hetzner/server-status.d.ts +26 -0
  71. package/dist/lib/hetzner/server-status.d.ts.map +1 -0
  72. package/dist/lib/hetzner/server-status.js +64 -0
  73. package/dist/lib/hetzner/server-status.js.map +1 -0
  74. package/dist/lib/hetzner/servers.d.ts +165 -0
  75. package/dist/lib/hetzner/servers.d.ts.map +1 -0
  76. package/dist/lib/hetzner/servers.js +424 -0
  77. package/dist/lib/hetzner/servers.js.map +1 -0
  78. package/dist/lib/hetzner/ssh-keys.d.ts +36 -0
  79. package/dist/lib/hetzner/ssh-keys.d.ts.map +1 -0
  80. package/dist/lib/hetzner/ssh-keys.js +90 -0
  81. package/dist/lib/hetzner/ssh-keys.js.map +1 -0
  82. package/dist/lib/hetzner/ssh-setup.d.ts +48 -0
  83. package/dist/lib/hetzner/ssh-setup.d.ts.map +1 -0
  84. package/dist/lib/hetzner/ssh-setup.js +167 -0
  85. package/dist/lib/hetzner/ssh-setup.js.map +1 -0
  86. package/dist/lib/hetzner/types.d.ts +330 -0
  87. package/dist/lib/hetzner/types.d.ts.map +1 -0
  88. package/dist/lib/hetzner/types.js +96 -0
  89. package/dist/lib/hetzner/types.js.map +1 -0
  90. package/dist/lib/hetzner/volumes.d.ts +106 -0
  91. package/dist/lib/hetzner/volumes.d.ts.map +1 -0
  92. package/dist/lib/hetzner/volumes.js +172 -0
  93. package/dist/lib/hetzner/volumes.js.map +1 -0
  94. package/dist/lib/resources.d.ts +70 -0
  95. package/dist/lib/resources.d.ts.map +1 -0
  96. package/dist/lib/resources.js +115 -0
  97. package/dist/lib/resources.js.map +1 -0
  98. package/dist/lib/ssh/flags.d.ts +349 -0
  99. package/dist/lib/ssh/flags.d.ts.map +1 -0
  100. package/dist/lib/ssh/flags.js +322 -0
  101. package/dist/lib/ssh/flags.js.map +1 -0
  102. package/dist/lib/ssh/index.d.ts +5 -0
  103. package/dist/lib/ssh/index.d.ts.map +1 -0
  104. package/dist/lib/ssh/index.js +5 -0
  105. package/dist/lib/ssh/index.js.map +1 -0
  106. package/dist/lib/terminal/api.d.ts +8 -0
  107. package/dist/lib/terminal/api.d.ts.map +1 -0
  108. package/dist/lib/terminal/api.js +594 -0
  109. package/dist/lib/terminal/api.js.map +1 -0
  110. package/dist/lib/terminal/client.d.ts +15 -0
  111. package/dist/lib/terminal/client.d.ts.map +1 -0
  112. package/dist/lib/terminal/client.js +45 -0
  113. package/dist/lib/terminal/client.js.map +1 -0
  114. package/dist/lib/terminal/config.d.ts +86 -0
  115. package/dist/lib/terminal/config.d.ts.map +1 -0
  116. package/dist/lib/terminal/config.js +375 -0
  117. package/dist/lib/terminal/config.js.map +1 -0
  118. package/dist/lib/terminal/error.d.ts +8 -0
  119. package/dist/lib/terminal/error.d.ts.map +1 -0
  120. package/dist/lib/terminal/error.js +12 -0
  121. package/dist/lib/terminal/error.js.map +1 -0
  122. package/dist/lib/terminal/exec.d.ts +47 -0
  123. package/dist/lib/terminal/exec.d.ts.map +1 -0
  124. package/dist/lib/terminal/exec.js +107 -0
  125. package/dist/lib/terminal/exec.js.map +1 -0
  126. package/dist/lib/terminal/files.d.ts +124 -0
  127. package/dist/lib/terminal/files.d.ts.map +1 -0
  128. package/dist/lib/terminal/files.js +436 -0
  129. package/dist/lib/terminal/files.js.map +1 -0
  130. package/dist/lib/terminal/fingerprint.d.ts +67 -0
  131. package/dist/lib/terminal/fingerprint.d.ts.map +1 -0
  132. package/dist/lib/terminal/fingerprint.js +214 -0
  133. package/dist/lib/terminal/fingerprint.js.map +1 -0
  134. package/dist/lib/terminal/index.d.ts +14 -0
  135. package/dist/lib/terminal/index.d.ts.map +1 -0
  136. package/dist/lib/terminal/index.js +21 -0
  137. package/dist/lib/terminal/index.js.map +1 -0
  138. package/dist/lib/terminal/manager.d.ts +103 -0
  139. package/dist/lib/terminal/manager.d.ts.map +1 -0
  140. package/dist/lib/terminal/manager.js +237 -0
  141. package/dist/lib/terminal/manager.js.map +1 -0
  142. package/dist/lib/terminal/network-error-detector.d.ts +19 -0
  143. package/dist/lib/terminal/network-error-detector.d.ts.map +1 -0
  144. package/dist/lib/terminal/network-error-detector.js +98 -0
  145. package/dist/lib/terminal/network-error-detector.js.map +1 -0
  146. package/dist/lib/terminal/pool.d.ts +143 -0
  147. package/dist/lib/terminal/pool.d.ts.map +1 -0
  148. package/dist/lib/terminal/pool.js +554 -0
  149. package/dist/lib/terminal/pool.js.map +1 -0
  150. package/dist/lib/terminal/pty.d.ts +59 -0
  151. package/dist/lib/terminal/pty.d.ts.map +1 -0
  152. package/dist/lib/terminal/pty.js +224 -0
  153. package/dist/lib/terminal/pty.js.map +1 -0
  154. package/dist/lib/terminal/resources.d.ts +63 -0
  155. package/dist/lib/terminal/resources.d.ts.map +1 -0
  156. package/dist/lib/terminal/resources.js +62 -0
  157. package/dist/lib/terminal/resources.js.map +1 -0
  158. package/dist/lib/terminal/scp.d.ts +30 -0
  159. package/dist/lib/terminal/scp.d.ts.map +1 -0
  160. package/dist/lib/terminal/scp.js +74 -0
  161. package/dist/lib/terminal/scp.js.map +1 -0
  162. package/dist/lib/terminal/sessions.d.ts +101 -0
  163. package/dist/lib/terminal/sessions.d.ts.map +1 -0
  164. package/dist/lib/terminal/sessions.js +718 -0
  165. package/dist/lib/terminal/sessions.js.map +1 -0
  166. package/dist/lib/terminal/tmux-exec.d.ts +50 -0
  167. package/dist/lib/terminal/tmux-exec.d.ts.map +1 -0
  168. package/dist/lib/terminal/tmux-exec.js +79 -0
  169. package/dist/lib/terminal/tmux-exec.js.map +1 -0
  170. package/dist/lib/terminal/tmux-local.d.ts +273 -0
  171. package/dist/lib/terminal/tmux-local.d.ts.map +1 -0
  172. package/dist/lib/terminal/tmux-local.js +629 -0
  173. package/dist/lib/terminal/tmux-local.js.map +1 -0
  174. package/dist/lib/terminal/tmux-manager.d.ts +328 -0
  175. package/dist/lib/terminal/tmux-manager.d.ts.map +1 -0
  176. package/dist/lib/terminal/tmux-manager.js +667 -0
  177. package/dist/lib/terminal/tmux-manager.js.map +1 -0
  178. package/dist/lib/terminal/tmux.d.ts +213 -0
  179. package/dist/lib/terminal/tmux.d.ts.map +1 -0
  180. package/dist/lib/terminal/tmux.js +528 -0
  181. package/dist/lib/terminal/tmux.js.map +1 -0
  182. package/dist/lib/terminal/types.d.ts +18 -0
  183. package/dist/lib/terminal/types.d.ts.map +1 -0
  184. package/dist/lib/terminal/types.js +5 -0
  185. package/dist/lib/terminal/types.js.map +1 -0
  186. package/lmdb.db +0 -0
  187. package/lmdb.db-lock +0 -0
  188. package/package.json +48 -0
  189. package/src/index.js +2034 -0
  190. package/src/index.ts +2295 -0
  191. package/src/lib/hetzner/actions.ts +1056 -0
  192. package/src/lib/hetzner/auth.ts +37 -0
  193. package/src/lib/hetzner/bootstrap/cloud-init.ts +394 -0
  194. package/src/lib/hetzner/bootstrap/firewall.ts +342 -0
  195. package/src/lib/hetzner/bootstrap/genesis.ts +518 -0
  196. package/src/lib/hetzner/bootstrap/index.ts +71 -0
  197. package/src/lib/hetzner/bootstrap/kernel-hardening.test.ts +230 -0
  198. package/src/lib/hetzner/bootstrap/kernel-hardening.ts +272 -0
  199. package/src/lib/hetzner/bootstrap/security-audit.ts +124 -0
  200. package/src/lib/hetzner/bootstrap/ssh-hardening.ts +192 -0
  201. package/src/lib/hetzner/client.ts +177 -0
  202. package/src/lib/hetzner/config.ts +5 -0
  203. package/src/lib/hetzner/errors.ts +371 -0
  204. package/src/lib/hetzner/index.ts +56 -0
  205. package/src/lib/hetzner/pricing.ts +422 -0
  206. package/src/lib/hetzner/schemas.ts +765 -0
  207. package/src/lib/hetzner/server-status.ts +81 -0
  208. package/src/lib/hetzner/servers.ts +568 -0
  209. package/src/lib/hetzner/ssh-keys.ts +122 -0
  210. package/src/lib/hetzner/ssh-setup.ts +218 -0
  211. package/src/lib/hetzner/types.ts +419 -0
  212. package/src/lib/hetzner/volumes.ts +229 -0
  213. package/src/lib/resources.ts +156 -0
  214. package/src/lib/ssh/flags.ts +578 -0
  215. package/src/lib/ssh/index.ts +5 -0
  216. package/src/lib/terminal/client.ts +55 -0
  217. package/src/lib/terminal/config.ts +489 -0
  218. package/src/lib/terminal/error.ts +13 -0
  219. package/src/lib/terminal/exec.ts +128 -0
  220. package/src/lib/terminal/files.ts +636 -0
  221. package/src/lib/terminal/index.ts +71 -0
  222. package/src/lib/terminal/pool.ts +662 -0
  223. package/src/lib/terminal/scp.ts +109 -0
  224. package/src/lib/terminal/tmux-exec.ts +96 -0
  225. package/src/lib/terminal/tmux.ts +711 -0
  226. package/src/lib/terminal/types.ts +19 -0
  227. package/tsconfig.json +20 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/lib/terminal/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Core SSH client for executing commands on remote servers
3
+ * Uses persistent connection pool for efficient reuse
4
+ * Uses base64 encoding to avoid shell escaping issues
5
+ */
6
+ import type { SSHOptions } from "./types.js";
7
+ /**
8
+ * Execute a command on a remote server via SSH
9
+ * Uses persistent connection pool for better performance
10
+ * @param command - Shell command to execute
11
+ * @param options - SSH connection options
12
+ * @returns Command output as string
13
+ */
14
+ export declare function execSSH(command: string, options: SSHOptions): Promise<string>;
15
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/terminal/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Core SSH client for executing commands on remote servers
3
+ * Uses persistent connection pool for efficient reuse
4
+ * Uses base64 encoding to avoid shell escaping issues
5
+ */
6
+ import { SSHError } from "./error.js";
7
+ import { SSHOptionsSchema, SSHCommandSchema } from '@ebowwa/codespaces-types/runtime/ssh';
8
+ import { getSSHPool } from './pool.js';
9
+ /**
10
+ * Execute a command on a remote server via SSH
11
+ * Uses persistent connection pool for better performance
12
+ * @param command - Shell command to execute
13
+ * @param options - SSH connection options
14
+ * @returns Command output as string
15
+ */
16
+ export async function execSSH(command, options) {
17
+ // Validate inputs with Zod
18
+ const validatedCommand = SSHCommandSchema.safeParse(command);
19
+ if (!validatedCommand.success) {
20
+ throw new Error(`Invalid SSH command: ${validatedCommand.error.issues.map(i => i.message).join(', ')}`);
21
+ }
22
+ const validatedOptions = SSHOptionsSchema.safeParse(options);
23
+ if (!validatedOptions.success) {
24
+ throw new Error(`Invalid SSH options: ${validatedOptions.error.issues.map(i => i.message).join(', ')}`);
25
+ }
26
+ const { host, user = "root", timeout = 5, port = 22, keyPath, password } = validatedOptions.data;
27
+ try {
28
+ // Get connection pool
29
+ const pool = getSSHPool();
30
+ // Execute command directly via SSH - the pool handles proper escaping
31
+ const output = await pool.exec(validatedCommand.data, {
32
+ host,
33
+ user,
34
+ timeout,
35
+ port,
36
+ keyPath,
37
+ password,
38
+ });
39
+ return output || "0";
40
+ }
41
+ catch (error) {
42
+ throw new SSHError(`SSH command failed: ${validatedCommand.data}`, error);
43
+ }
44
+ }
45
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/terminal/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,OAAmB;IAEnB,2BAA2B;IAC3B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC5D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzG,CAAC;IAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC5D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzG,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC;IAEjG,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;QAEzB,sEAAsE;QACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACpD,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,OAAO;YACP,QAAQ;SACT,CAAC,CAAA;QAEF,OAAO,MAAM,IAAI,GAAG,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,uBAAuB,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * SSH Config Manager
3
+ *
4
+ * Manages ~/.ssh/config entries for easy node access.
5
+ * When a node is created, adds an alias so you can:
6
+ * ssh node-<id> or ssh <name>
7
+ * Instead of:
8
+ * ssh -i ~/.../key -o StrictHostKeyChecking=no root@167.235.236.8
9
+ */
10
+ export interface SSHConfigEntry {
11
+ id: string;
12
+ name: string;
13
+ host: string;
14
+ user?: string;
15
+ keyPath: string;
16
+ port?: number;
17
+ }
18
+ /**
19
+ * Add or update an SSH config entry for a node
20
+ */
21
+ export declare function addSSHConfigEntry(entry: SSHConfigEntry): void;
22
+ /**
23
+ * Remove an SSH config entry for a node
24
+ */
25
+ export declare function removeSSHConfigEntry(id: string): void;
26
+ /**
27
+ * Update IP address for an existing node (e.g., after rebuild)
28
+ */
29
+ export declare function updateSSHConfigHost(id: string, newHost: string): void;
30
+ /**
31
+ * List all managed SSH config entries
32
+ */
33
+ export declare function listSSHConfigEntries(): SSHConfigEntry[];
34
+ /**
35
+ * Validate SSH connection works with the configured key
36
+ * Returns true if connection succeeds, throws on failure with diagnostic info
37
+ */
38
+ export declare function validateSSHConnection(host: string, keyPath: string, user?: string, timeoutSeconds?: number): Promise<{
39
+ success: boolean;
40
+ error?: string;
41
+ diagnostics?: string;
42
+ }>;
43
+ /**
44
+ * Ensure SSH key is loaded correctly and agent doesn't interfere
45
+ * Clears wrong keys from agent and adds the correct one
46
+ */
47
+ export declare function ensureCorrectSSHKey(keyPath: string): Promise<void>;
48
+ /**
49
+ * Wait for SSH to become ready on a new server
50
+ * Polls until connection succeeds or timeout
51
+ */
52
+ export declare function waitForSSHReady(host: string, keyPath: string, options?: {
53
+ user?: string;
54
+ maxAttempts?: number;
55
+ intervalMs?: number;
56
+ onAttempt?: (attempt: number, maxAttempts: number) => void;
57
+ }): Promise<{
58
+ success: boolean;
59
+ attempts: number;
60
+ error?: string;
61
+ }>;
62
+ /**
63
+ * Sync result for a single node
64
+ */
65
+ export interface SyncResult {
66
+ id: string;
67
+ name: string;
68
+ ip: string;
69
+ status: "added" | "updated" | "skipped" | "error";
70
+ error?: string;
71
+ sshReady?: boolean;
72
+ }
73
+ /**
74
+ * Sync all existing Hetzner nodes to SSH config
75
+ * Call this to add aliases for nodes created before this feature
76
+ */
77
+ export declare function syncNodesToSSHConfig(nodes: Array<{
78
+ id: string;
79
+ name: string;
80
+ ip: string;
81
+ keyPath: string;
82
+ }>, options?: {
83
+ validateSSH?: boolean;
84
+ onProgress?: (result: SyncResult) => void;
85
+ }): Promise<SyncResult[]>;
86
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/terminal/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuCH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA6HD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAiB7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAqBrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAwBrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAKvD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAe,EACrB,cAAc,GAAE,MAAW,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiDrE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD,GACL,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqCjE;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,EACF,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC,GACL,OAAO,CAAC,UAAU,EAAE,CAAC,CAyDvB"}
@@ -0,0 +1,375 @@
1
+ /**
2
+ * SSH Config Manager
3
+ *
4
+ * Manages ~/.ssh/config entries for easy node access.
5
+ * When a node is created, adds an alias so you can:
6
+ * ssh node-<id> or ssh <name>
7
+ * Instead of:
8
+ * ssh -i ~/.../key -o StrictHostKeyChecking=no root@167.235.236.8
9
+ */
10
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, realpathSync } from "fs";
11
+ import { join, dirname, isAbsolute, resolve } from "path";
12
+ import { exec } from "child_process";
13
+ import { promisify } from "util";
14
+ const execAsync = promisify(exec);
15
+ const SSH_CONFIG_PATH = join(process.env.HOME || "~", ".ssh", "config");
16
+ // Marker comments to identify our managed entries
17
+ const BLOCK_START = "# >>> hetzner-codespaces managed";
18
+ const BLOCK_END = "# <<< hetzner-codespaces managed";
19
+ /**
20
+ * Resolve a path to absolute, handling relative paths
21
+ */
22
+ function resolveKeyPath(keyPath) {
23
+ if (isAbsolute(keyPath)) {
24
+ return keyPath;
25
+ }
26
+ // Try to resolve relative to current working directory
27
+ const resolved = resolve(process.cwd(), keyPath);
28
+ // If file exists at resolved path, use it
29
+ if (existsSync(resolved)) {
30
+ try {
31
+ return realpathSync(resolved);
32
+ }
33
+ catch {
34
+ return resolved;
35
+ }
36
+ }
37
+ // Return as-is if we can't resolve it
38
+ return keyPath;
39
+ }
40
+ /**
41
+ * Read the current SSH config file
42
+ */
43
+ function readSSHConfig() {
44
+ if (!existsSync(SSH_CONFIG_PATH)) {
45
+ return "";
46
+ }
47
+ return readFileSync(SSH_CONFIG_PATH, "utf-8");
48
+ }
49
+ /**
50
+ * Write to SSH config file, ensuring proper permissions
51
+ */
52
+ function writeSSHConfig(content) {
53
+ const sshDir = dirname(SSH_CONFIG_PATH);
54
+ // Ensure ~/.ssh exists with correct permissions
55
+ if (!existsSync(sshDir)) {
56
+ mkdirSync(sshDir, { mode: 0o700, recursive: true });
57
+ }
58
+ writeFileSync(SSH_CONFIG_PATH, content, { mode: 0o600 });
59
+ }
60
+ /**
61
+ * Extract our managed block from SSH config
62
+ */
63
+ function extractManagedBlock(config) {
64
+ const startIdx = config.indexOf(BLOCK_START);
65
+ const endIdx = config.indexOf(BLOCK_END);
66
+ if (startIdx === -1 || endIdx === -1) {
67
+ return { before: config, managed: "", after: "" };
68
+ }
69
+ return {
70
+ before: config.substring(0, startIdx),
71
+ managed: config.substring(startIdx, endIdx + BLOCK_END.length + 1),
72
+ after: config.substring(endIdx + BLOCK_END.length + 1),
73
+ };
74
+ }
75
+ /**
76
+ * Parse managed block into entries
77
+ */
78
+ function parseManagedEntries(managed) {
79
+ const entries = new Map();
80
+ // Match Host blocks within managed section
81
+ const hostRegex = /# node-id: (\S+)\nHost ([^\n]+)\n([\s\S]*?)(?=# node-id:|$)/g;
82
+ let match;
83
+ while ((match = hostRegex.exec(managed)) !== null) {
84
+ const id = match[1];
85
+ const hosts = match[2].trim();
86
+ const body = match[3];
87
+ // Parse body for HostName, User, IdentityFile, Port
88
+ const hostMatch = body.match(/HostName\s+(\S+)/);
89
+ const userMatch = body.match(/User\s+(\S+)/);
90
+ const keyMatch = body.match(/IdentityFile\s+(\S+)/);
91
+ const portMatch = body.match(/Port\s+(\d+)/);
92
+ if (hostMatch && keyMatch) {
93
+ entries.set(id, {
94
+ id,
95
+ name: hosts.split(/\s+/)[1] || hosts, // Second alias is usually the name
96
+ host: hostMatch[1],
97
+ user: userMatch?.[1] || "root",
98
+ keyPath: keyMatch[1],
99
+ port: portMatch ? parseInt(portMatch[1]) : 22,
100
+ });
101
+ }
102
+ }
103
+ return entries;
104
+ }
105
+ /**
106
+ * Generate SSH config block for an entry
107
+ */
108
+ function generateEntryBlock(entry) {
109
+ // Create aliases: node-<id> and <name> (sanitized)
110
+ const sanitizedName = entry.name.replace(/[^a-zA-Z0-9_-]/g, "-");
111
+ const aliases = `node-${entry.id} ${sanitizedName}`;
112
+ // Resolve key path to absolute
113
+ const absoluteKeyPath = resolveKeyPath(entry.keyPath);
114
+ return `# node-id: ${entry.id}
115
+ Host ${aliases}
116
+ HostName ${entry.host}
117
+ User ${entry.user || "root"}
118
+ IdentityFile "${absoluteKeyPath}"
119
+ Port ${entry.port || 22}
120
+ StrictHostKeyChecking no
121
+ UserKnownHostsFile /dev/null
122
+ LogLevel ERROR
123
+ IdentitiesOnly yes
124
+
125
+ `;
126
+ }
127
+ /**
128
+ * Rebuild the managed block from entries
129
+ */
130
+ function buildManagedBlock(entries) {
131
+ if (entries.size === 0) {
132
+ return "";
133
+ }
134
+ let block = `${BLOCK_START}\n`;
135
+ block += "# Auto-generated SSH aliases for Hetzner nodes\n";
136
+ block += "# Do not edit manually - changes will be overwritten\n\n";
137
+ for (const entry of entries.values()) {
138
+ block += generateEntryBlock(entry);
139
+ }
140
+ block += `${BLOCK_END}\n`;
141
+ return block;
142
+ }
143
+ /**
144
+ * Add or update an SSH config entry for a node
145
+ */
146
+ export function addSSHConfigEntry(entry) {
147
+ const config = readSSHConfig();
148
+ const { before, managed, after } = extractManagedBlock(config);
149
+ // Parse existing entries
150
+ const entries = parseManagedEntries(managed);
151
+ // Add/update entry
152
+ entries.set(entry.id, entry);
153
+ // Rebuild config
154
+ const newManaged = buildManagedBlock(entries);
155
+ const newConfig = before.trimEnd() + "\n\n" + newManaged + after.trimStart();
156
+ writeSSHConfig(newConfig);
157
+ console.log(`[SSH Config] Added alias: ssh node-${entry.id} / ssh ${entry.name.replace(/[^a-zA-Z0-9_-]/g, "-")}`);
158
+ }
159
+ /**
160
+ * Remove an SSH config entry for a node
161
+ */
162
+ export function removeSSHConfigEntry(id) {
163
+ const config = readSSHConfig();
164
+ const { before, managed, after } = extractManagedBlock(config);
165
+ // Parse existing entries
166
+ const entries = parseManagedEntries(managed);
167
+ // Remove entry
168
+ if (!entries.has(id)) {
169
+ return; // Nothing to remove
170
+ }
171
+ entries.delete(id);
172
+ // Rebuild config
173
+ const newManaged = buildManagedBlock(entries);
174
+ const newConfig = before.trimEnd() + (newManaged ? "\n\n" + newManaged : "") + after.trimStart();
175
+ writeSSHConfig(newConfig);
176
+ console.log(`[SSH Config] Removed alias for node-${id}`);
177
+ }
178
+ /**
179
+ * Update IP address for an existing node (e.g., after rebuild)
180
+ */
181
+ export function updateSSHConfigHost(id, newHost) {
182
+ const config = readSSHConfig();
183
+ const { before, managed, after } = extractManagedBlock(config);
184
+ // Parse existing entries
185
+ const entries = parseManagedEntries(managed);
186
+ // Update entry
187
+ const entry = entries.get(id);
188
+ if (!entry) {
189
+ console.warn(`[SSH Config] No entry found for node-${id}`);
190
+ return;
191
+ }
192
+ entry.host = newHost;
193
+ entries.set(id, entry);
194
+ // Rebuild config
195
+ const newManaged = buildManagedBlock(entries);
196
+ const newConfig = before.trimEnd() + "\n\n" + newManaged + after.trimStart();
197
+ writeSSHConfig(newConfig);
198
+ console.log(`[SSH Config] Updated node-${id} host to ${newHost}`);
199
+ }
200
+ /**
201
+ * List all managed SSH config entries
202
+ */
203
+ export function listSSHConfigEntries() {
204
+ const config = readSSHConfig();
205
+ const { managed } = extractManagedBlock(config);
206
+ const entries = parseManagedEntries(managed);
207
+ return Array.from(entries.values());
208
+ }
209
+ /**
210
+ * Validate SSH connection works with the configured key
211
+ * Returns true if connection succeeds, throws on failure with diagnostic info
212
+ */
213
+ export async function validateSSHConnection(host, keyPath, user = "root", timeoutSeconds = 10) {
214
+ try {
215
+ // Test connection with explicit key and bypass agent
216
+ const cmd = [
217
+ "ssh",
218
+ "-o", "StrictHostKeyChecking=no",
219
+ "-o", "UserKnownHostsFile=/dev/null",
220
+ "-o", `ConnectTimeout=${timeoutSeconds}`,
221
+ "-o", "IdentitiesOnly=yes", // Only use specified key, not ssh-agent
222
+ "-o", "BatchMode=yes", // Fail instead of prompting for password
223
+ "-i", keyPath,
224
+ `${user}@${host}`,
225
+ "echo CONNECTION_OK"
226
+ ].join(" ");
227
+ const { stdout } = await execAsync(cmd, { timeout: (timeoutSeconds + 5) * 1000 });
228
+ if (stdout.includes("CONNECTION_OK")) {
229
+ return { success: true };
230
+ }
231
+ return {
232
+ success: false,
233
+ error: "Connection established but test command failed",
234
+ diagnostics: stdout
235
+ };
236
+ }
237
+ catch (error) {
238
+ // Gather diagnostic info
239
+ let diagnostics = "";
240
+ // Check if key file exists
241
+ if (!existsSync(keyPath)) {
242
+ diagnostics += `Key file missing: ${keyPath}\n`;
243
+ }
244
+ // Check ssh-agent keys
245
+ try {
246
+ const { stdout: agentKeys } = await execAsync("ssh-add -l 2>&1");
247
+ diagnostics += `ssh-agent keys:\n${agentKeys}\n`;
248
+ }
249
+ catch {
250
+ diagnostics += "ssh-agent: no keys loaded\n";
251
+ }
252
+ return {
253
+ success: false,
254
+ error: error.message || String(error),
255
+ diagnostics,
256
+ };
257
+ }
258
+ }
259
+ /**
260
+ * Ensure SSH key is loaded correctly and agent doesn't interfere
261
+ * Clears wrong keys from agent and adds the correct one
262
+ */
263
+ export async function ensureCorrectSSHKey(keyPath) {
264
+ try {
265
+ // Get fingerprint of our key
266
+ const { stdout: ourFingerprint } = await execAsync(`ssh-keygen -lf "${keyPath}.pub"`);
267
+ const ourFp = ourFingerprint.split(/\s+/)[1];
268
+ // Check what's in the agent
269
+ const { stdout: agentList } = await execAsync("ssh-add -l 2>&1").catch(() => ({ stdout: "" }));
270
+ // If our key isn't in the agent, add it
271
+ if (!agentList.includes(ourFp)) {
272
+ // Clear agent and add our key
273
+ await execAsync("ssh-add -D 2>/dev/null").catch(() => { });
274
+ await execAsync(`ssh-add "${keyPath}"`);
275
+ console.log(`[SSH] Added key to ssh-agent: ${keyPath}`);
276
+ }
277
+ }
278
+ catch (error) {
279
+ // Non-fatal - we can still use the key file directly
280
+ console.warn(`[SSH] Could not configure ssh-agent: ${error}`);
281
+ }
282
+ }
283
+ /**
284
+ * Wait for SSH to become ready on a new server
285
+ * Polls until connection succeeds or timeout
286
+ */
287
+ export async function waitForSSHReady(host, keyPath, options = {}) {
288
+ const { user = "root", maxAttempts = 30, // 30 attempts
289
+ intervalMs = 5000, // 5 seconds between attempts = 2.5 min max wait
290
+ onAttempt, } = options;
291
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
292
+ onAttempt?.(attempt, maxAttempts);
293
+ const result = await validateSSHConnection(host, keyPath, user, 5);
294
+ if (result.success) {
295
+ return { success: true, attempts: attempt };
296
+ }
297
+ // Check for fatal errors (not just "connection refused")
298
+ if (result.error?.includes("Permission denied")) {
299
+ // Key mismatch - won't resolve by waiting
300
+ return {
301
+ success: false,
302
+ attempts: attempt,
303
+ error: `SSH key rejected: ${result.error}\n${result.diagnostics || ""}`,
304
+ };
305
+ }
306
+ if (attempt < maxAttempts) {
307
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
308
+ }
309
+ }
310
+ return {
311
+ success: false,
312
+ attempts: maxAttempts,
313
+ error: `SSH not ready after ${maxAttempts} attempts (${(maxAttempts * intervalMs) / 1000}s)`,
314
+ };
315
+ }
316
+ /**
317
+ * Sync all existing Hetzner nodes to SSH config
318
+ * Call this to add aliases for nodes created before this feature
319
+ */
320
+ export async function syncNodesToSSHConfig(nodes, options = {}) {
321
+ const { validateSSH = false, onProgress } = options;
322
+ const results = [];
323
+ // Get current entries
324
+ const existingEntries = listSSHConfigEntries();
325
+ const existingIds = new Set(existingEntries.map((e) => e.id));
326
+ for (const node of nodes) {
327
+ const result = {
328
+ id: node.id,
329
+ name: node.name,
330
+ ip: node.ip,
331
+ status: "added",
332
+ };
333
+ try {
334
+ // Check if already exists
335
+ if (existingIds.has(node.id)) {
336
+ const existing = existingEntries.find((e) => e.id === node.id);
337
+ if (existing?.host === node.ip) {
338
+ result.status = "skipped";
339
+ }
340
+ else {
341
+ // IP changed, update it
342
+ updateSSHConfigHost(node.id, node.ip);
343
+ result.status = "updated";
344
+ }
345
+ }
346
+ else {
347
+ // Add new entry
348
+ addSSHConfigEntry({
349
+ id: node.id,
350
+ name: node.name,
351
+ host: node.ip,
352
+ user: "root",
353
+ keyPath: node.keyPath,
354
+ });
355
+ result.status = "added";
356
+ }
357
+ // Optionally validate SSH works
358
+ if (validateSSH && result.status !== "skipped") {
359
+ const sshResult = await validateSSHConnection(node.ip, node.keyPath);
360
+ result.sshReady = sshResult.success;
361
+ if (!sshResult.success) {
362
+ result.error = sshResult.error;
363
+ }
364
+ }
365
+ }
366
+ catch (error) {
367
+ result.status = "error";
368
+ result.error = String(error);
369
+ }
370
+ results.push(result);
371
+ onProgress?.(result);
372
+ }
373
+ return results;
374
+ }
375
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/terminal/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SSH error class
3
+ */
4
+ export declare class SSHError extends Error {
5
+ readonly cause?: unknown | undefined;
6
+ constructor(message: string, cause?: unknown | undefined);
7
+ }
8
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/lib/terminal/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,QAAS,SAAQ,KAAK;aAGf,KAAK,CAAC,EAAE,OAAO;gBAD/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * SSH error class
3
+ */
4
+ export class SSHError extends Error {
5
+ cause;
6
+ constructor(message, cause) {
7
+ super(message);
8
+ this.cause = cause;
9
+ this.name = "SSHError";
10
+ }
11
+ }
12
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/lib/terminal/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}