@calltelemetry/cli 0.5.13 → 0.5.15

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 (41) hide show
  1. package/dist/commands/shell.d.ts +2 -0
  2. package/dist/commands/shell.d.ts.map +1 -1
  3. package/dist/commands/shell.js +58 -4
  4. package/dist/commands/shell.js.map +1 -1
  5. package/dist/lib/update-steps.d.ts.map +1 -1
  6. package/dist/lib/update-steps.js +12 -1
  7. package/dist/lib/update-steps.js.map +1 -1
  8. package/dist/lib/update.d.ts +6 -0
  9. package/dist/lib/update.d.ts.map +1 -1
  10. package/dist/lib/update.js +32 -0
  11. package/dist/lib/update.js.map +1 -1
  12. package/dist/lib/version.d.ts +1 -1
  13. package/dist/lib/version.js +1 -1
  14. package/dist/shell/commands/diag.d.ts.map +1 -1
  15. package/dist/shell/commands/diag.js +23 -2
  16. package/dist/shell/commands/diag.js.map +1 -1
  17. package/dist/shell/commands/registry.d.ts.map +1 -1
  18. package/dist/shell/commands/registry.js +28 -17
  19. package/dist/shell/commands/registry.js.map +1 -1
  20. package/dist/shell/commands/system.d.ts +4 -1
  21. package/dist/shell/commands/system.d.ts.map +1 -1
  22. package/dist/shell/commands/system.js +231 -37
  23. package/dist/shell/commands/system.js.map +1 -1
  24. package/dist/shell/completer.d.ts.map +1 -1
  25. package/dist/shell/completer.js +3 -1
  26. package/dist/shell/completer.js.map +1 -1
  27. package/dist/shell/network-onboarding.d.ts +41 -0
  28. package/dist/shell/network-onboarding.d.ts.map +1 -0
  29. package/dist/shell/network-onboarding.js +343 -0
  30. package/dist/shell/network-onboarding.js.map +1 -0
  31. package/dist/shell/repl.d.ts.map +1 -1
  32. package/dist/shell/repl.js +28 -118
  33. package/dist/shell/repl.js.map +1 -1
  34. package/dist/ui/views/MainMenu.d.ts.map +1 -1
  35. package/dist/ui/views/MainMenu.js +12 -0
  36. package/dist/ui/views/MainMenu.js.map +1 -1
  37. package/dist/ui/views/PowerActionView.d.ts +8 -0
  38. package/dist/ui/views/PowerActionView.d.ts.map +1 -0
  39. package/dist/ui/views/PowerActionView.js +45 -0
  40. package/dist/ui/views/PowerActionView.js.map +1 -0
  41. package/package.json +1 -1
@@ -0,0 +1,343 @@
1
+ /**
2
+ * network-onboarding.ts — First-boot network setup wizard for ct shell.
3
+ *
4
+ * Guides the operator through IP / gateway / DNS configuration with:
5
+ * - Field-by-field prompts (IP, prefix, gateway, DNS)
6
+ * - Default values shown in brackets (press Enter to accept)
7
+ * - Input validation before applying
8
+ * - Summary + confirm before writing to NetworkManager
9
+ * - Gateway ping after apply to verify reachability
10
+ */
11
+ import * as readline from 'node:readline';
12
+ import { execSync, spawnSync } from 'node:child_process';
13
+ import { writeFileSync } from 'node:fs';
14
+ import chalk from 'chalk';
15
+ import { loadPrefs, savePrefs } from '../lib/prefs.js';
16
+ export const NETWORK_SENTINEL = '/etc/ct-network-configured';
17
+ const DEFAULT_DNS1 = '8.8.8.8';
18
+ const DEFAULT_DNS2 = '8.8.4.4';
19
+ // ── Validation helpers (exported for testing) ──────────────────────────────
20
+ const IPV4_RE = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
21
+ export function isValidIp(ip) {
22
+ const m = IPV4_RE.exec(ip.trim());
23
+ if (!m)
24
+ return false;
25
+ return [m[1], m[2], m[3], m[4]].every((o) => parseInt(o, 10) <= 255);
26
+ }
27
+ export function isValidPrefix(prefix) {
28
+ const trimmed = prefix.trim();
29
+ if (!/^\d+$/.test(trimmed))
30
+ return false;
31
+ const n = parseInt(trimmed, 10);
32
+ return n >= 1 && n <= 30;
33
+ }
34
+ export function isValidGateway(gateway) {
35
+ return isValidIp(gateway);
36
+ }
37
+ /** Parse a DNS input field; returns the default if the input is empty. */
38
+ export function parseDnsField(input, defaultDns) {
39
+ const trimmed = input.trim();
40
+ return trimmed.length > 0 ? trimmed : defaultDns;
41
+ }
42
+ /** Extract average round-trip ms from ping stdout, or null if unreachable. */
43
+ export function parsePingMs(stdout) {
44
+ // Linux: rtt min/avg/max/mdev = 1.234/2.345/3.456/0.123 ms
45
+ const m = stdout.match(/(?:rtt|round-trip)[^=]*=\s*[\d.]+\/([\d.]+)/);
46
+ if (m)
47
+ return Math.round(parseFloat(m[1]));
48
+ // macOS: round-trip min/avg/max/stddev = 1.234/2.345/3.456/0.123 ms
49
+ return null;
50
+ }
51
+ // ── System helpers ─────────────────────────────────────────────────────────
52
+ /** Return current global IPv4 address if DHCP already provided one. */
53
+ export function detectCurrentIp() {
54
+ try {
55
+ const out = execSync('ip -4 addr show scope global 2>/dev/null', { encoding: 'utf-8' });
56
+ return out.match(/inet (\d+\.\d+\.\d+\.\d+)/)?.[1];
57
+ }
58
+ catch {
59
+ return undefined;
60
+ }
61
+ }
62
+ /** Detect primary ethernet interface via nmcli. */
63
+ export function detectIface() {
64
+ try {
65
+ const out = execSync('nmcli -t -f DEVICE,TYPE device 2>/dev/null', { encoding: 'utf-8' });
66
+ const line = out.split('\n').find((l) => l.includes(':ethernet'));
67
+ return line?.split(':')[0] ?? 'eth0';
68
+ }
69
+ catch {
70
+ return 'eth0';
71
+ }
72
+ }
73
+ /** Ping a target once; returns ms latency or null on failure. */
74
+ export function pingGateway(gateway) {
75
+ try {
76
+ const result = spawnSync('ping', ['-c', '2', '-W', '2', gateway], { encoding: 'utf-8' });
77
+ if (result.status !== 0)
78
+ return null;
79
+ return parsePingMs(result.stdout ?? '');
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ /** Write the network sentinel (falls back to sudo touch). */
86
+ export function writeSentinel() {
87
+ try {
88
+ writeFileSync(NETWORK_SENTINEL, '');
89
+ }
90
+ catch {
91
+ spawnSync('sudo', ['touch', NETWORK_SENTINEL]);
92
+ }
93
+ }
94
+ /** Apply static IP via nmcli. Returns true on success. */
95
+ export function applyStaticIp(iface, ipPrefix, gateway, dns1, dns2) {
96
+ spawnSync('sudo', ['nmcli', 'connection', 'delete', 'ct-network'], { stdio: 'pipe' });
97
+ const add = spawnSync('sudo', [
98
+ 'nmcli', 'connection', 'add',
99
+ 'type', 'ethernet',
100
+ 'con-name', 'ct-network',
101
+ 'ifname', iface,
102
+ 'ipv4.method', 'manual',
103
+ 'ipv4.addresses', ipPrefix,
104
+ 'ipv4.gateway', gateway,
105
+ 'ipv4.dns', `${dns1},${dns2}`,
106
+ 'connection.autoconnect', 'yes',
107
+ 'connection.autoconnect-priority', '100',
108
+ ], { stdio: 'pipe' });
109
+ if (add.status !== 0)
110
+ return false;
111
+ const up = spawnSync('sudo', ['nmcli', 'connection', 'up', 'ct-network'], { stdio: 'pipe' });
112
+ return up.status === 0;
113
+ }
114
+ /** Apply DHCP via nmcli. Returns true on success. */
115
+ export function applyDhcp(iface) {
116
+ spawnSync('sudo', ['nmcli', 'connection', 'delete', 'ct-network'], { stdio: 'pipe' });
117
+ const add = spawnSync('sudo', [
118
+ 'nmcli', 'connection', 'add',
119
+ 'type', 'ethernet',
120
+ 'con-name', 'ct-network',
121
+ 'ifname', iface,
122
+ 'ipv4.method', 'auto',
123
+ 'connection.autoconnect', 'yes',
124
+ 'connection.autoconnect-priority', '100',
125
+ ], { stdio: 'pipe' });
126
+ if (add.status !== 0)
127
+ return false;
128
+ const up = spawnSync('sudo', ['nmcli', 'connection', 'up', 'ct-network'], { stdio: 'pipe' });
129
+ return up.status === 0;
130
+ }
131
+ // ── Readline helper ────────────────────────────────────────────────────────
132
+ function makeAsker(rl) {
133
+ return (question) => new Promise((resolve) => rl.question(question, resolve));
134
+ }
135
+ // ── Wizard ─────────────────────────────────────────────────────────────────
136
+ /**
137
+ * Interactive first-boot network setup wizard.
138
+ * Runs once (when NETWORK_SENTINEL does not exist) before the shell starts.
139
+ */
140
+ export async function runNetworkOnboarding() {
141
+ console.log('');
142
+ console.log(chalk.bold.cyan(' Call Telemetry — First-Boot Setup'));
143
+ console.log(chalk.dim(' ────────────────────────────────────────'));
144
+ // If DHCP already provided an IP, skip network wizard
145
+ const existingIp = detectCurrentIp();
146
+ if (existingIp) {
147
+ writeSentinel();
148
+ console.log(chalk.green(` ✓ Network ready (DHCP): ${existingIp}`));
149
+ }
150
+ else {
151
+ // Run network setup
152
+ console.log('');
153
+ console.log(chalk.bold.cyan(' Step 1 — Network Configuration'));
154
+ console.log(chalk.dim(' ────────────────────────────────────────'));
155
+ const iface = detectIface();
156
+ console.log(chalk.dim(` Interface : ${iface}`));
157
+ console.log(chalk.dim(' No IP address detected — configure network to reach the web UI.'));
158
+ console.log('');
159
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: true });
160
+ const ask = makeAsker(rl);
161
+ try {
162
+ console.log(chalk.cyan(' Network mode:'));
163
+ console.log(chalk.dim(' 1 Static IP'));
164
+ console.log(chalk.dim(' 2 DHCP (auto)'));
165
+ console.log('');
166
+ const mode = (await ask(chalk.bold(' Choice [1]: '))).trim() || '1';
167
+ if (mode === '2') {
168
+ await runDhcp(rl, ask, iface);
169
+ }
170
+ else {
171
+ await runStaticIp(rl, ask, iface);
172
+ }
173
+ }
174
+ finally {
175
+ rl.close();
176
+ }
177
+ }
178
+ // Run preferences wizard if prefs haven't been configured yet
179
+ if (!loadPrefs()) {
180
+ await runPreferencesOnboarding();
181
+ }
182
+ console.log(chalk.dim(' Continuing to management shell...\n'));
183
+ }
184
+ // ── Preferences Onboarding ──────────────────────────────────────────────────
185
+ /**
186
+ * Interactive preferences wizard for first-boot configuration.
187
+ * Asks about optional features and saves to ~/.ct/preferences.json.
188
+ */
189
+ export async function runPreferencesOnboarding() {
190
+ console.log('');
191
+ console.log(chalk.bold.cyan(' Step 2 — Appliance Preferences'));
192
+ console.log(chalk.dim(' ────────────────────────────────────────'));
193
+ console.log(chalk.dim(' Configure optional features. Press Enter to accept defaults.'));
194
+ console.log('');
195
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: true });
196
+ const ask = makeAsker(rl);
197
+ try {
198
+ const prefs = {
199
+ autoUpdate: false,
200
+ ipv6: false,
201
+ otel: false,
202
+ jtapi: false,
203
+ deploymentMode: 'docker-compose',
204
+ k8sNamespace: 'ct',
205
+ k8sEnvironment: 'ct-dev',
206
+ };
207
+ // Auto-updates
208
+ const autoUpdate = (await ask(chalk.bold(' Enable automatic CLI updates? [Y/n]: '))).trim().toLowerCase();
209
+ prefs.autoUpdate = autoUpdate !== 'n' && autoUpdate !== 'no';
210
+ console.log(prefs.autoUpdate ? chalk.green(' ✓ Auto-updates enabled') : chalk.dim(' ○ Auto-updates disabled'));
211
+ // IPv6
212
+ const ipv6 = (await ask(chalk.bold(' Enable IPv6 support? [y/N]: '))).trim().toLowerCase();
213
+ prefs.ipv6 = ipv6 === 'y' || ipv6 === 'yes';
214
+ console.log(prefs.ipv6 ? chalk.green(' ✓ IPv6 enabled') : chalk.dim(' ○ IPv6 disabled'));
215
+ // OpenTelemetry
216
+ const otel = (await ask(chalk.bold(' Enable OpenTelemetry tracing? [y/N]: '))).trim().toLowerCase();
217
+ prefs.otel = otel === 'y' || otel === 'yes';
218
+ console.log(prefs.otel ? chalk.green(' ✓ OpenTelemetry enabled') : chalk.dim(' ○ OpenTelemetry disabled'));
219
+ // JTAPI phone control
220
+ const jtapi = (await ask(chalk.bold(' Enable JTAPI phone control? [y/N]: '))).trim().toLowerCase();
221
+ prefs.jtapi = jtapi === 'y' || jtapi === 'yes';
222
+ console.log(prefs.jtapi ? chalk.green(' ✓ JTAPI enabled') : chalk.dim(' ○ JTAPI disabled'));
223
+ // Summary
224
+ console.log('');
225
+ console.log(chalk.cyan(' Preferences Summary'));
226
+ console.log(chalk.dim(' ────────────────────────────────────────'));
227
+ console.log(` Auto-updates : ${prefs.autoUpdate ? chalk.green('Yes') : chalk.dim('No')}`);
228
+ console.log(` IPv6 : ${prefs.ipv6 ? chalk.green('Yes') : chalk.dim('No')}`);
229
+ console.log(` OpenTelemetry : ${prefs.otel ? chalk.green('Yes') : chalk.dim('No')}`);
230
+ console.log(` JTAPI : ${prefs.jtapi ? chalk.green('Yes') : chalk.dim('No')}`);
231
+ console.log('');
232
+ const confirm = (await ask(chalk.bold(' Save preferences? [Y/n]: '))).trim().toLowerCase();
233
+ if (confirm === 'n' || confirm === 'no') {
234
+ console.log(chalk.yellow(' Skipped — defaults will be used. Edit later with: config preferences'));
235
+ return;
236
+ }
237
+ savePrefs(prefs);
238
+ console.log(chalk.green(' ✓ Preferences saved'));
239
+ }
240
+ finally {
241
+ rl.close();
242
+ }
243
+ }
244
+ async function runDhcp(_rl, _ask, iface) {
245
+ console.log('');
246
+ console.log(chalk.dim(' Requesting IP via DHCP...'));
247
+ const ok = applyDhcp(iface);
248
+ if (!ok) {
249
+ console.log(chalk.red(' ✗ DHCP configuration failed.'));
250
+ console.log(chalk.dim(' Retry from the shell: network dhcp'));
251
+ return;
252
+ }
253
+ // Wait briefly for DHCP lease
254
+ await new Promise((r) => setTimeout(r, 2000));
255
+ const ip = detectCurrentIp();
256
+ if (ip) {
257
+ writeSentinel();
258
+ console.log(chalk.green(` ✓ Network ready (DHCP): ${ip}`));
259
+ }
260
+ else {
261
+ console.log(chalk.yellow(' ⚠ No IP obtained via DHCP yet — lease may still be pending.'));
262
+ console.log(chalk.dim(' Check status: show interfaces'));
263
+ }
264
+ console.log('');
265
+ }
266
+ async function runStaticIp(_rl, ask, iface) {
267
+ console.log('');
268
+ console.log(chalk.cyan(' Static IP Configuration'));
269
+ console.log(chalk.dim(' ────────────────────────────────────────'));
270
+ // ── Collect fields ──────────────────────────────────────────────────
271
+ let ip = '';
272
+ while (!isValidIp(ip)) {
273
+ ip = (await ask(chalk.bold(' IP Address (e.g. 192.168.1.100) : '))).trim();
274
+ if (!isValidIp(ip))
275
+ console.log(chalk.red(' ✗ Invalid IP address — enter four octets, e.g. 192.168.1.100'));
276
+ }
277
+ let prefix = '';
278
+ while (!isValidPrefix(prefix)) {
279
+ prefix = (await ask(chalk.bold(' Prefix (e.g. 24 for /24) : '))).trim();
280
+ if (!isValidPrefix(prefix))
281
+ console.log(chalk.red(' ✗ Invalid prefix — enter a number between 1 and 30'));
282
+ }
283
+ let gateway = '';
284
+ while (!isValidGateway(gateway)) {
285
+ gateway = (await ask(chalk.bold(' Gateway (e.g. 192.168.1.1) : '))).trim();
286
+ if (!isValidGateway(gateway))
287
+ console.log(chalk.red(' ✗ Invalid gateway — enter a valid IPv4 address'));
288
+ }
289
+ const dns1Raw = await ask(chalk.bold(` Primary DNS [${DEFAULT_DNS1}] : `));
290
+ const dns1 = parseDnsField(dns1Raw, DEFAULT_DNS1);
291
+ const dns2Raw = await ask(chalk.bold(` Secondary DNS [${DEFAULT_DNS2}] : `));
292
+ const dns2 = parseDnsField(dns2Raw, DEFAULT_DNS2);
293
+ const ipPrefix = `${ip}/${prefix}`;
294
+ // ── Summary ─────────────────────────────────────────────────────────
295
+ console.log('');
296
+ console.log(chalk.cyan(' Summary'));
297
+ console.log(chalk.dim(' ────────────────────────────────────────'));
298
+ console.log(` IP Address : ${chalk.bold(ipPrefix)}`);
299
+ console.log(` Gateway : ${chalk.bold(gateway)}`);
300
+ console.log(` Primary DNS : ${chalk.bold(dns1)}`);
301
+ console.log(` Secondary : ${chalk.bold(dns2)}`);
302
+ console.log(` Interface : ${chalk.dim(iface)}`);
303
+ console.log('');
304
+ const confirm = (await ask(chalk.bold(' Apply? [Y/n]: '))).trim().toLowerCase();
305
+ if (confirm === 'n' || confirm === 'no') {
306
+ console.log(chalk.yellow('\n Cancelled. Run network address <ip/prefix> <gateway> to configure manually.\n'));
307
+ return;
308
+ }
309
+ // ── Apply ────────────────────────────────────────────────────────────
310
+ console.log('');
311
+ console.log(chalk.dim(' Applying static IP...'));
312
+ const ok = applyStaticIp(iface, ipPrefix, gateway, dns1, dns2);
313
+ if (!ok) {
314
+ console.log(chalk.red(' ✗ Failed to apply network configuration.'));
315
+ console.log(chalk.dim(' Retry from the shell:'));
316
+ console.log(chalk.dim(` network address ${iface} ${ipPrefix} ${gateway}`));
317
+ console.log(chalk.dim(` network dns-servers ${dns1} ${dns2}`));
318
+ console.log('');
319
+ return;
320
+ }
321
+ // ── Verify IP ────────────────────────────────────────────────────────
322
+ const newIp = detectCurrentIp();
323
+ if (newIp) {
324
+ writeSentinel();
325
+ console.log(chalk.green(` ✓ Network configured: ${newIp}`));
326
+ }
327
+ else {
328
+ console.log(chalk.yellow(' ⚠ Configuration applied but no IP detected yet.'));
329
+ }
330
+ // ── Ping gateway ─────────────────────────────────────────────────────
331
+ process.stdout.write(chalk.dim(` Checking gateway ${gateway}...`));
332
+ const ms = pingGateway(gateway);
333
+ if (ms !== null) {
334
+ console.log(chalk.green(` ✓ reachable (${ms}ms)`));
335
+ }
336
+ else {
337
+ console.log(chalk.yellow(' ⚠ no response — check gateway address'));
338
+ }
339
+ console.log('');
340
+ console.log(chalk.dim(` Web UI: https://${newIp ?? ip}`));
341
+ console.log('');
342
+ }
343
+ //# sourceMappingURL=network-onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-onboarding.js","sourceRoot":"","sources":["../../src/shell/network-onboarding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/shell/repl.ts"],"names":[],"mappings":"AAwSA;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuIhD"}
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/shell/repl.ts"],"names":[],"mappings":"AAgNA;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAmIhD"}
@@ -1,8 +1,8 @@
1
1
  import * as readline from 'node:readline';
2
+ import { spawnSync } from 'node:child_process';
2
3
  import { join } from 'node:path';
3
4
  import { homedir } from 'node:os';
4
- import { existsSync, readFileSync, appendFileSync, mkdirSync, writeFileSync } from 'node:fs';
5
- import { spawnSync, execSync } from 'node:child_process';
5
+ import { existsSync, readFileSync, appendFileSync, mkdirSync } from 'node:fs';
6
6
  import { createCompleter, showHelp } from './completer.js';
7
7
  import { dispatch } from './parser.js';
8
8
  import { commandTree } from './commands/registry.js';
@@ -13,116 +13,8 @@ import { LOGO } from '../lib/brand.js';
13
13
  import { VERSION } from '../lib/version.js';
14
14
  import { Box, Status } from './theme.js';
15
15
  import { renderFooter } from './footer.js';
16
+ // Onboarding is now handled in commands/shell.ts before startShell() is called
16
17
  import chalk from 'chalk';
17
- const NETWORK_SENTINEL = '/etc/ct-network-configured';
18
- /** Return current global IPv4 address if one exists. */
19
- function detectCurrentIp() {
20
- try {
21
- const out = execSync('ip -4 addr show scope global 2>/dev/null', { encoding: 'utf-8' });
22
- return out.match(/inet (\d+\.\d+\.\d+\.\d+)/)?.[1];
23
- }
24
- catch {
25
- return undefined;
26
- }
27
- }
28
- /** Write the network sentinel (falls back to sudo touch). */
29
- function writeSentinel() {
30
- try {
31
- writeFileSync(NETWORK_SENTINEL, '');
32
- }
33
- catch {
34
- spawnSync('sudo', ['touch', NETWORK_SENTINEL]);
35
- }
36
- }
37
- /** Detect primary ethernet interface via nmcli. */
38
- function detectIface() {
39
- try {
40
- const out = execSync('nmcli -t -f DEVICE,TYPE device 2>/dev/null', { encoding: 'utf-8' });
41
- const line = out.split('\n').find((l) => l.includes(':ethernet'));
42
- return line?.split(':')[0] ?? 'eth0';
43
- }
44
- catch {
45
- return 'eth0';
46
- }
47
- }
48
- /**
49
- * Interactive first-boot network wizard using ct network commands.
50
- * Runs when /etc/ct-network-configured does not exist.
51
- */
52
- async function runNetworkOnboarding() {
53
- console.log(chalk.bold.cyan('\n Call Telemetry — First Boot Network Setup'));
54
- console.log(chalk.dim(' ─────────────────────────────────────────────'));
55
- // If DHCP already provided an IP, mark configured and skip
56
- const existingIp = detectCurrentIp();
57
- if (existingIp) {
58
- writeSentinel();
59
- console.log(chalk.green(` ✓ Network ready: ${existingIp} (DHCP)`));
60
- console.log(chalk.dim(' Continuing to management shell...\n'));
61
- return;
62
- }
63
- console.log(' No IP address detected. Configure network to access the web UI.');
64
- console.log('');
65
- const iface = detectIface();
66
- console.log(chalk.dim(` Interface: ${iface}`));
67
- console.log('');
68
- // Temporary readline for wizard prompts
69
- const wizardRl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: true });
70
- const ask = (q) => new Promise((resolve) => wizardRl.question(q, resolve));
71
- try {
72
- const mode = (await ask(chalk.cyan(' [1] Static IP [2] DHCP > '))).trim();
73
- if (mode === '2') {
74
- console.log(chalk.dim('\n Configuring DHCP...'));
75
- spawnSync('sudo', ['nmcli', 'connection', 'delete', 'ct-network'], { stdio: 'pipe' });
76
- spawnSync('sudo', ['nmcli', 'connection', 'add', 'type', 'ethernet',
77
- 'con-name', 'ct-network', 'ifname', iface,
78
- 'ipv4.method', 'auto',
79
- 'connection.autoconnect', 'yes',
80
- 'connection.autoconnect-priority', '100'], { stdio: 'inherit' });
81
- spawnSync('sudo', ['nmcli', 'connection', 'up', 'ct-network'], { stdio: 'inherit' });
82
- }
83
- else {
84
- // Static IP
85
- const ipPrefix = (await ask(chalk.cyan(' IP/Prefix (e.g. 192.168.1.100/24) : '))).trim();
86
- const gateway = (await ask(chalk.cyan(' Gateway (e.g. 192.168.1.1) : '))).trim();
87
- const dns = (await ask(chalk.cyan(' DNS servers (e.g. 8.8.8.8 8.8.4.4) : '))).trim();
88
- if (!ipPrefix || !gateway) {
89
- console.log(chalk.red('\n IP and gateway are required. Run network address <ip/prefix> <gateway> to retry.\n'));
90
- return;
91
- }
92
- console.log(chalk.dim('\n Applying static IP...'));
93
- spawnSync('sudo', ['nmcli', 'connection', 'delete', 'ct-network'], { stdio: 'pipe' });
94
- spawnSync('sudo', ['nmcli', 'connection', 'add', 'type', 'ethernet',
95
- 'con-name', 'ct-network', 'ifname', iface,
96
- 'ipv4.method', 'manual',
97
- 'ipv4.addresses', ipPrefix,
98
- 'ipv4.gateway', gateway,
99
- 'connection.autoconnect', 'yes',
100
- 'connection.autoconnect-priority', '100'], { stdio: 'inherit' });
101
- if (dns) {
102
- const dnsJoined = dns.split(/\s+/).join(',');
103
- spawnSync('sudo', ['nmcli', 'connection', 'modify', 'ct-network', 'ipv4.dns', dnsJoined], { stdio: 'inherit' });
104
- }
105
- spawnSync('sudo', ['nmcli', 'connection', 'up', 'ct-network'], { stdio: 'inherit' });
106
- }
107
- }
108
- finally {
109
- wizardRl.close();
110
- }
111
- // Verify an IP was obtained after configuration
112
- const newIp = detectCurrentIp();
113
- if (newIp) {
114
- writeSentinel();
115
- console.log(chalk.green(`\n ✓ Network configured: ${newIp}`));
116
- console.log(chalk.dim(' Continuing to management shell...\n'));
117
- }
118
- else {
119
- console.log(chalk.yellow('\n ⚠ No IP detected after configuration.'));
120
- console.log(chalk.dim(' Retry from the shell:'));
121
- console.log(chalk.dim(' network address <ip/prefix> <gateway>'));
122
- console.log(chalk.dim(' network dns-servers 8.8.8.8 8.8.4.4'));
123
- console.log('');
124
- }
125
- }
126
18
  const CT_DIR = join(homedir(), '.ct');
127
19
  const HISTORY_FILE = join(CT_DIR, 'shell_history');
128
20
  const MAX_HISTORY = 500;
@@ -209,19 +101,41 @@ function saveHistoryLine(line) {
209
101
  function wireBuiltins(ctx) {
210
102
  const tree = commandTree;
211
103
  const findChild = (name) => tree.children?.find((c) => c.name === name);
212
- // exit / quit
104
+ // exit / quit — drop to bash shell
213
105
  const exitNode = findChild('exit');
214
106
  if (exitNode) {
215
107
  exitNode.handler = async () => {
216
- console.log(chalk.dim('Goodbye.'));
108
+ console.log(chalk.dim('Dropping to bash shell. Type "ct" to return.\n'));
217
109
  ctx.rl.close();
218
110
  };
219
111
  }
220
112
  const quitNode = findChild('quit');
221
113
  if (quitNode) {
222
114
  quitNode.handler = async () => {
223
- console.log(chalk.dim('Goodbye.'));
115
+ console.log(chalk.dim('Dropping to bash shell. Type "ct" to return.\n'));
116
+ ctx.rl.close();
117
+ };
118
+ }
119
+ // shell — open interactive bash, return to ct shell on exit
120
+ const shellNode = findChild('shell');
121
+ if (shellNode) {
122
+ shellNode.handler = async () => {
123
+ console.log(chalk.dim('Opening bash shell. Type "exit" to return to ct shell.\n'));
124
+ spawnSync('/bin/bash', ['--login'], { stdio: 'inherit' });
125
+ console.log(chalk.dim('Returned to ct shell.\n'));
126
+ };
127
+ }
128
+ // tui — launch the full-screen React/Ink TUI
129
+ const tuiNode = findChild('tui');
130
+ if (tuiNode) {
131
+ tuiNode.handler = async () => {
132
+ console.log(chalk.dim('Launching graphical console...\n'));
224
133
  ctx.rl.close();
134
+ const { launchTui } = await import('../commands/shell.js');
135
+ await launchTui();
136
+ // TUI exited — restart the text shell
137
+ const { startShell } = await import('./repl.js');
138
+ await startShell();
225
139
  };
226
140
  }
227
141
  // help
@@ -266,10 +180,6 @@ function wireBuiltins(ctx) {
266
180
  * Start the interactive IOS-style shell.
267
181
  */
268
182
  export async function startShell() {
269
- // First-boot: if network has never been configured, run the onboarding wizard before the shell
270
- if (!existsSync(NETWORK_SENTINEL)) {
271
- await runNetworkOnboarding();
272
- }
273
183
  const completer = createCompleter(commandTree, null);
274
184
  const rl = readline.createInterface({
275
185
  input: process.stdin,
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/shell/repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/shell/repl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"AA4OA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,aAAa,2CAqclF"}
1
+ {"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"AAwPA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,aAAa,2CAqclF"}