@calltelemetry/cli 0.3.5 → 0.3.6
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/commands/self-update.d.ts.map +1 -1
- package/dist/commands/self-update.js +19 -3
- package/dist/commands/self-update.js.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/auto-update.d.ts +10 -0
- package/dist/lib/auto-update.d.ts.map +1 -0
- package/dist/lib/auto-update.js +58 -0
- package/dist/lib/auto-update.js.map +1 -0
- package/dist/lib/prefs.d.ts +18 -0
- package/dist/lib/prefs.d.ts.map +1 -0
- package/dist/lib/prefs.js +45 -0
- package/dist/lib/prefs.js.map +1 -0
- package/dist/ui/views/MainMenu.d.ts +3 -1
- package/dist/ui/views/MainMenu.d.ts.map +1 -1
- package/dist/ui/views/MainMenu.js +110 -10
- package/dist/ui/views/MainMenu.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-update.d.ts","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"self-update.d.ts","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA4ChD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QAOzD"}
|
|
@@ -21,15 +21,31 @@ export async function selfUpdate() {
|
|
|
21
21
|
// Can't determine versions — just run the install
|
|
22
22
|
console.log('Installing latest CLI...');
|
|
23
23
|
}
|
|
24
|
+
// Try user-level install first, fallback to sudo
|
|
24
25
|
try {
|
|
25
|
-
await execa('
|
|
26
|
+
await execa('npm', ['install', '-g', '@calltelemetry/cli'], {
|
|
26
27
|
stdout: 'inherit',
|
|
27
28
|
stderr: 'inherit',
|
|
28
29
|
});
|
|
29
30
|
out.ok('CLI updated successfully');
|
|
30
31
|
}
|
|
31
|
-
catch {
|
|
32
|
-
|
|
32
|
+
catch (err) {
|
|
33
|
+
const isPermission = err.stderr?.toString().includes('EACCES') || err.exitCode === 243;
|
|
34
|
+
if (!isPermission) {
|
|
35
|
+
out.warn('CLI self-update failed. You can update manually: npm install -g @calltelemetry/cli');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// Permission denied — retry with sudo
|
|
39
|
+
try {
|
|
40
|
+
await execa('sudo', ['npm', 'install', '-g', '@calltelemetry/cli'], {
|
|
41
|
+
stdout: 'inherit',
|
|
42
|
+
stderr: 'inherit',
|
|
43
|
+
});
|
|
44
|
+
out.ok('CLI updated successfully');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
out.warn('CLI self-update failed. You can update manually: sudo npm install -g @calltelemetry/cli');
|
|
48
|
+
}
|
|
33
49
|
}
|
|
34
50
|
}
|
|
35
51
|
export function registerSelfUpdateCommand(program) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAEnF,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9B,GAAG,CAAC,EAAE,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,IAAI,SAAS,MAAM,MAAM,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAEnF,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9B,GAAG,CAAC,EAAE,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,IAAI,SAAS,MAAM,MAAM,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE;YAC1D,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC;QACvF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE;gBAClE,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const VERSION = '0.3.
|
|
2
|
+
const VERSION = '0.3.6';
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { registerStatusCommand } from './commands/status.js';
|
|
5
5
|
import { registerUpdateCommand } from './commands/update.js';
|
|
@@ -15,6 +15,8 @@ import { registerServicesCommand } from './commands/services.js';
|
|
|
15
15
|
import { registerSelfUpdateCommand } from './commands/self-update.js';
|
|
16
16
|
import { LOGO } from './lib/brand.js';
|
|
17
17
|
import { setVerbose } from './lib/log.js';
|
|
18
|
+
import { loadPrefs } from './lib/prefs.js';
|
|
19
|
+
import { checkAndAutoUpdate } from './lib/auto-update.js';
|
|
18
20
|
const program = new Command();
|
|
19
21
|
program
|
|
20
22
|
.name('ct')
|
|
@@ -28,6 +30,11 @@ program
|
|
|
28
30
|
// Only show logo for direct CLI invocations, not TUI
|
|
29
31
|
console.log(`\n${LOGO}\n\nhttps://calltelemetry.com`);
|
|
30
32
|
console.log();
|
|
33
|
+
// Fire auto-update in background for CLI commands (non-blocking)
|
|
34
|
+
const prefs = loadPrefs();
|
|
35
|
+
if (prefs?.autoUpdate) {
|
|
36
|
+
checkAndAutoUpdate(VERSION).catch(() => { });
|
|
37
|
+
}
|
|
31
38
|
});
|
|
32
39
|
registerStatusCommand(program);
|
|
33
40
|
registerUpdateCommand(program);
|
|
@@ -44,12 +51,20 @@ registerSelfUpdateCommand(program);
|
|
|
44
51
|
// Interactive menu when `ct` is run with no arguments on a TTY
|
|
45
52
|
const hasCommand = process.argv.length > 2;
|
|
46
53
|
if (!hasCommand && process.stdout.isTTY) {
|
|
54
|
+
// Check preferences before rendering
|
|
55
|
+
const prefs = loadPrefs();
|
|
56
|
+
const firstRun = prefs === null;
|
|
57
|
+
// Fire auto-update in background if enabled (non-blocking)
|
|
58
|
+
if (prefs?.autoUpdate) {
|
|
59
|
+
checkAndAutoUpdate(VERSION).catch(() => { });
|
|
60
|
+
}
|
|
47
61
|
// Dynamic import to avoid loading React/Ink for direct command invocations
|
|
48
62
|
import('ink').then(async ({ render }) => {
|
|
49
63
|
const React = await import('react');
|
|
50
64
|
const { MainMenu } = await import('./ui/views/MainMenu.js');
|
|
51
65
|
const { unmount, waitUntilExit } = render(React.createElement(MainMenu, {
|
|
52
66
|
version: VERSION,
|
|
67
|
+
firstRun,
|
|
53
68
|
onCliCommand: (command) => {
|
|
54
69
|
unmount();
|
|
55
70
|
// Fall back to Commander for commands without TUI views
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background auto-update check. Compares the running version against
|
|
3
|
+
* the npm registry and installs the latest if newer.
|
|
4
|
+
*
|
|
5
|
+
* - Tries `npm install -g` without sudo first (works for nvm / user-owned prefix)
|
|
6
|
+
* - Falls back to `sudo npm install -g` if permission denied
|
|
7
|
+
* - All errors caught silently — auto-update must never crash the app
|
|
8
|
+
*/
|
|
9
|
+
export declare function checkAndAutoUpdate(currentVersion: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=auto-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../../src/lib/auto-update.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C9E"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { debug } from './log.js';
|
|
3
|
+
/**
|
|
4
|
+
* Background auto-update check. Compares the running version against
|
|
5
|
+
* the npm registry and installs the latest if newer.
|
|
6
|
+
*
|
|
7
|
+
* - Tries `npm install -g` without sudo first (works for nvm / user-owned prefix)
|
|
8
|
+
* - Falls back to `sudo npm install -g` if permission denied
|
|
9
|
+
* - All errors caught silently — auto-update must never crash the app
|
|
10
|
+
*/
|
|
11
|
+
export async function checkAndAutoUpdate(currentVersion) {
|
|
12
|
+
try {
|
|
13
|
+
debug('Auto-update: checking npm registry...');
|
|
14
|
+
const { stdout } = await execa('npm', ['view', '@calltelemetry/cli', 'version', '--json'], {
|
|
15
|
+
timeout: 10000,
|
|
16
|
+
});
|
|
17
|
+
const latest = JSON.parse(stdout);
|
|
18
|
+
if (latest === currentVersion) {
|
|
19
|
+
debug(`Auto-update: already on latest (v${currentVersion})`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
debug(`Auto-update: ${currentVersion} → ${latest}, installing...`);
|
|
23
|
+
// Try user-level install first
|
|
24
|
+
try {
|
|
25
|
+
await execa('npm', ['install', '-g', '@calltelemetry/cli'], {
|
|
26
|
+
timeout: 60000,
|
|
27
|
+
stdout: 'pipe',
|
|
28
|
+
stderr: 'pipe',
|
|
29
|
+
});
|
|
30
|
+
debug(`Auto-update: installed v${latest} (user-level)`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
const isPermission = err.stderr?.includes('EACCES') || err.exitCode === 243;
|
|
35
|
+
if (!isPermission) {
|
|
36
|
+
debug(`Auto-update: npm install failed: ${err.message}`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
debug('Auto-update: user install failed (EACCES), trying sudo...');
|
|
40
|
+
}
|
|
41
|
+
// Fallback to sudo
|
|
42
|
+
try {
|
|
43
|
+
await execa('sudo', ['npm', 'install', '-g', '@calltelemetry/cli'], {
|
|
44
|
+
timeout: 60000,
|
|
45
|
+
stdout: 'pipe',
|
|
46
|
+
stderr: 'pipe',
|
|
47
|
+
});
|
|
48
|
+
debug(`Auto-update: installed v${latest} (sudo)`);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
debug(`Auto-update: sudo install also failed: ${err.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
debug(`Auto-update: check failed: ${err.message}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=auto-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../../src/lib/auto-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,cAAsB;IAC7D,IAAI,CAAC;QACH,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACzF,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,KAAK,CAAC,oCAAoC,cAAc,GAAG,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,KAAK,CAAC,gBAAgB,cAAc,MAAM,MAAM,iBAAiB,CAAC,CAAC;QAEnE,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE;gBAC1D,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YACH,KAAK,CAAC,2BAA2B,MAAM,eAAe,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC;YAC5E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,KAAK,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YACD,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACrE,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE;gBAClE,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YACH,KAAK,CAAC,2BAA2B,MAAM,SAAS,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,0CAA0C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface Preferences {
|
|
2
|
+
autoUpdate: boolean;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Load preferences from ~/.ct/preferences.json.
|
|
6
|
+
* Returns null if the file doesn't exist (first run).
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadPrefs(): Preferences | null;
|
|
9
|
+
/**
|
|
10
|
+
* Save preferences to ~/.ct/preferences.json.
|
|
11
|
+
* Creates the ~/.ct directory if it doesn't exist.
|
|
12
|
+
*/
|
|
13
|
+
export declare function savePrefs(prefs: Preferences): void;
|
|
14
|
+
/**
|
|
15
|
+
* Get preferences, returning defaults if file doesn't exist.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getPrefs(): Preferences;
|
|
18
|
+
//# sourceMappingURL=prefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefs.d.ts","sourceRoot":"","sources":["../../src/lib/prefs.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB;AAOD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,WAAW,GAAG,IAAI,CAU9C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { debug } from './log.js';
|
|
5
|
+
const PREFS_DIR = join(homedir(), '.ct');
|
|
6
|
+
const PREFS_FILE = join(PREFS_DIR, 'preferences.json');
|
|
7
|
+
const DEFAULTS = { autoUpdate: false };
|
|
8
|
+
/**
|
|
9
|
+
* Load preferences from ~/.ct/preferences.json.
|
|
10
|
+
* Returns null if the file doesn't exist (first run).
|
|
11
|
+
*/
|
|
12
|
+
export function loadPrefs() {
|
|
13
|
+
try {
|
|
14
|
+
if (!existsSync(PREFS_FILE))
|
|
15
|
+
return null;
|
|
16
|
+
const raw = readFileSync(PREFS_FILE, 'utf-8');
|
|
17
|
+
const parsed = JSON.parse(raw);
|
|
18
|
+
return { ...DEFAULTS, ...parsed };
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
debug(`Failed to load preferences: ${err.message}`);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Save preferences to ~/.ct/preferences.json.
|
|
27
|
+
* Creates the ~/.ct directory if it doesn't exist.
|
|
28
|
+
*/
|
|
29
|
+
export function savePrefs(prefs) {
|
|
30
|
+
try {
|
|
31
|
+
mkdirSync(PREFS_DIR, { recursive: true });
|
|
32
|
+
writeFileSync(PREFS_FILE, JSON.stringify(prefs, null, 2) + '\n', 'utf-8');
|
|
33
|
+
debug(`Preferences saved to ${PREFS_FILE}`);
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
debug(`Failed to save preferences: ${err.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get preferences, returning defaults if file doesn't exist.
|
|
41
|
+
*/
|
|
42
|
+
export function getPrefs() {
|
|
43
|
+
return loadPrefs() ?? DEFAULTS;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=prefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefs.js","sourceRoot":"","sources":["../../src/lib/prefs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAEvD,MAAM,QAAQ,GAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,IAAI,CAAC;QACH,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1E,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,EAAE,IAAI,QAAQ,CAAC;AACjC,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
interface MainMenuProps {
|
|
2
2
|
version: string;
|
|
3
|
+
/** True when ~/.ct/preferences.json doesn't exist yet (first launch). */
|
|
4
|
+
firstRun?: boolean;
|
|
3
5
|
/** Fallback for commands without a TUI view (update, self-update, etc.) */
|
|
4
6
|
onCliCommand: (command: string) => void;
|
|
5
7
|
onExit: () => void;
|
|
6
8
|
}
|
|
7
|
-
export declare function MainMenu({ version, onCliCommand, onExit }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function MainMenu({ version, firstRun, onCliCommand, onExit }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
8
10
|
export {};
|
|
9
11
|
//# sourceMappingURL=MainMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"AAmLA,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,2CAwXlF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useCallback, useEffect } from 'react';
|
|
3
3
|
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { AppShell, Spinner, MeterBar, LogLevelBadge } from '../components/index.js';
|
|
@@ -8,6 +8,8 @@ import { getSystemMetrics } from '../../lib/system.js';
|
|
|
8
8
|
import { getAppHealth } from '../../lib/rpc.js';
|
|
9
9
|
import { healthIcon, healthColor, extractUptime } from '../utils/serviceDisplay.js';
|
|
10
10
|
import { LOGO } from '../../lib/brand.js';
|
|
11
|
+
import { savePrefs } from '../../lib/prefs.js';
|
|
12
|
+
import { checkAndAutoUpdate } from '../../lib/auto-update.js';
|
|
11
13
|
// View imports
|
|
12
14
|
import { StatusView } from './StatusView.js';
|
|
13
15
|
import { DbStatusView } from './DbStatusView.js';
|
|
@@ -162,12 +164,15 @@ const VIEW_MAP = {
|
|
|
162
164
|
'services': (onBack) => _jsx(ServicesView, { onBack: onBack }),
|
|
163
165
|
'update': (onBack) => _jsx(UpdateView, { onBack: onBack }),
|
|
164
166
|
};
|
|
165
|
-
export function MainMenu({ version, onCliCommand, onExit }) {
|
|
166
|
-
const [phase, setPhase] = useState('home');
|
|
167
|
+
export function MainMenu({ version, firstRun, onCliCommand, onExit }) {
|
|
168
|
+
const [phase, setPhase] = useState(firstRun ? 'first-run' : 'home');
|
|
169
|
+
const [setupCursor, setSetupCursor] = useState(0);
|
|
167
170
|
const [activeView, setActiveView] = useState(null);
|
|
168
171
|
const [menuCursor, setMenuCursor] = useState(0);
|
|
169
172
|
const [menuStack, setMenuStack] = useState([]);
|
|
170
173
|
const [logsService, setLogsService] = useState(null);
|
|
174
|
+
const [focusZone, setFocusZone] = useState('menu');
|
|
175
|
+
const [dashCursor, setDashCursor] = useState(0);
|
|
171
176
|
const { level: logLevel, cycle: cycleLogLevel } = useLogLevel();
|
|
172
177
|
const { data: services, stop: stopSvcPolling, start: startSvcPolling } = usePolling(getServiceList, 5000, false);
|
|
173
178
|
const { data: metrics, stop: stopMetrics, start: startMetrics } = usePolling(getSystemMetrics, 10000, false);
|
|
@@ -189,6 +194,8 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
189
194
|
setPhase('home');
|
|
190
195
|
setActiveView(null);
|
|
191
196
|
setLogsService(null);
|
|
197
|
+
setFocusZone('menu');
|
|
198
|
+
setMenuCursor(0);
|
|
192
199
|
}, []);
|
|
193
200
|
// Build menu display items
|
|
194
201
|
const currentMenuItems = menuStack.length > 0 ? menuStack[menuStack.length - 1] : MENU_ITEMS;
|
|
@@ -201,14 +208,93 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
201
208
|
menuDisplayItems.push({ label: item.label, description: item.description, item });
|
|
202
209
|
}
|
|
203
210
|
const serviceList = services ?? [];
|
|
211
|
+
const dashItems = [];
|
|
212
|
+
if (appHealth) {
|
|
213
|
+
dashItems.push({ icon: appHealth.api ? '●' : '✘', color: appHealth.api ? 'green' : 'red', label: 'API', status: appHealth.api ? 'responding' : 'not responding', hint: 'App and system health overview', action: 'status' }, { icon: appHealth.rpc ? '●' : '✘', color: appHealth.rpc ? 'green' : 'red', label: 'RPC', status: appHealth.rpc ? 'connected' : 'timeout', hint: 'Elixir VM and service diagnostics', action: 'diag service' }, { icon: appHealth.dbConnected ? '●' : '✘', color: appHealth.dbConnected ? 'green' : 'red', label: 'Database', status: appHealth.dbConnected ? 'connected' : 'unreachable', hint: 'PostgreSQL health and queries', action: 'diag database' });
|
|
214
|
+
}
|
|
215
|
+
const healthItemCount = dashItems.length;
|
|
216
|
+
for (const svc of serviceList) {
|
|
217
|
+
const uptime = extractUptime(svc.status);
|
|
218
|
+
dashItems.push({
|
|
219
|
+
icon: healthIcon(svc.health, svc.state),
|
|
220
|
+
color: healthColor(svc.health, svc.state),
|
|
221
|
+
label: svc.service,
|
|
222
|
+
status: uptime || svc.state,
|
|
223
|
+
hint: 'Container logs and output',
|
|
224
|
+
action: `logs:${svc.service}`,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
// Open a dashboard item's target view
|
|
228
|
+
const openDashItem = useCallback((item) => {
|
|
229
|
+
if (item.action.startsWith('logs:')) {
|
|
230
|
+
setLogsService(item.action.slice(5));
|
|
231
|
+
setPhase('logs');
|
|
232
|
+
}
|
|
233
|
+
else if (VIEW_MAP[item.action]) {
|
|
234
|
+
setActiveView(item.action);
|
|
235
|
+
setPhase('view');
|
|
236
|
+
}
|
|
237
|
+
}, []);
|
|
238
|
+
// Handle first-run setup answer
|
|
239
|
+
const handleSetupChoice = useCallback((autoUpdate) => {
|
|
240
|
+
savePrefs({ autoUpdate });
|
|
241
|
+
if (autoUpdate) {
|
|
242
|
+
checkAndAutoUpdate(version).catch(() => { });
|
|
243
|
+
}
|
|
244
|
+
setPhase('home');
|
|
245
|
+
}, [version]);
|
|
204
246
|
// Keyboard handling
|
|
205
247
|
useInput((input, key) => {
|
|
248
|
+
// First-run prompt navigation
|
|
249
|
+
if (phase === 'first-run') {
|
|
250
|
+
if (key.upArrow || key.downArrow) {
|
|
251
|
+
setSetupCursor(prev => (prev === 0 ? 1 : 0));
|
|
252
|
+
}
|
|
253
|
+
else if (key.return) {
|
|
254
|
+
handleSetupChoice(setupCursor === 0);
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
206
258
|
if (phase !== 'home')
|
|
207
259
|
return;
|
|
260
|
+
if (input === 'd') {
|
|
261
|
+
cycleLogLevel();
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
if (focusZone === 'dashboard') {
|
|
265
|
+
if (key.upArrow) {
|
|
266
|
+
if (dashCursor > 0)
|
|
267
|
+
setDashCursor(prev => prev - 1);
|
|
268
|
+
}
|
|
269
|
+
else if (key.downArrow) {
|
|
270
|
+
if (dashCursor < dashItems.length - 1) {
|
|
271
|
+
setDashCursor(prev => prev + 1);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
setFocusZone('menu');
|
|
275
|
+
setMenuCursor(0);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
else if (key.return || key.rightArrow) {
|
|
279
|
+
const item = dashItems[dashCursor];
|
|
280
|
+
if (item)
|
|
281
|
+
openDashItem(item);
|
|
282
|
+
}
|
|
283
|
+
else if (key.escape || input === 'q') {
|
|
284
|
+
setFocusZone('menu');
|
|
285
|
+
setMenuCursor(0);
|
|
286
|
+
}
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
// Menu zone
|
|
208
290
|
if (key.upArrow) {
|
|
209
291
|
if (menuCursor > 0) {
|
|
210
292
|
setMenuCursor(prev => prev - 1);
|
|
211
293
|
}
|
|
294
|
+
else if (dashItems.length > 0) {
|
|
295
|
+
setFocusZone('dashboard');
|
|
296
|
+
setDashCursor(dashItems.length - 1);
|
|
297
|
+
}
|
|
212
298
|
}
|
|
213
299
|
else if (key.downArrow) {
|
|
214
300
|
if (menuCursor < menuDisplayItems.length - 1) {
|
|
@@ -244,9 +330,6 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
244
330
|
setMenuCursor(0);
|
|
245
331
|
}
|
|
246
332
|
}
|
|
247
|
-
else if (input === 'd') {
|
|
248
|
-
cycleLogLevel();
|
|
249
|
-
}
|
|
250
333
|
else if (key.escape || input === 'q') {
|
|
251
334
|
if (hasParent) {
|
|
252
335
|
setMenuStack(prev => prev.slice(0, -1));
|
|
@@ -257,6 +340,14 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
257
340
|
}
|
|
258
341
|
}
|
|
259
342
|
});
|
|
343
|
+
// --- Phase: first-run ---
|
|
344
|
+
if (phase === 'first-run') {
|
|
345
|
+
const options = ['Yes, keep me updated', 'No thanks'];
|
|
346
|
+
return (_jsxs(AppShell, { title: `CallTelemetry CLI v${version}`, children: [_jsx(Box, { paddingLeft: 1, marginBottom: 1, children: _jsx(Text, { color: "cyan", children: LOGO }) }), _jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [_jsx(Text, { bold: true, children: "Welcome to CallTelemetry CLI!" }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { children: "Would you like the CLI to automatically" }) }), _jsx(Text, { children: "check for updates when it starts?" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: options.map((label, i) => {
|
|
347
|
+
const isActive = i === setupCursor;
|
|
348
|
+
return (_jsx(Box, { children: _jsxs(Text, { color: isActive ? 'cyan' : undefined, bold: isActive, children: [isActive ? '❯ ' : ' ', label] }) }, i));
|
|
349
|
+
}) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "\u2191\u2193 Select Enter Confirm" }) })] })] }));
|
|
350
|
+
}
|
|
260
351
|
// --- Phase: view ---
|
|
261
352
|
if (phase === 'view' && activeView && VIEW_MAP[activeView]) {
|
|
262
353
|
return VIEW_MAP[activeView](goHome);
|
|
@@ -269,12 +360,21 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
269
360
|
const healthyCount = serviceList.filter(s => s.health === 'healthy').length;
|
|
270
361
|
const unhealthyCount = serviceList.filter(s => s.health === 'unhealthy').length;
|
|
271
362
|
const stoppedCount = serviceList.filter(s => s.state === 'exited' || s.state === 'dead').length;
|
|
272
|
-
return (_jsxs(AppShell, { title: `CallTelemetry CLI v${version}`, logLevel: logLevel, children: [_jsx(Box, { paddingLeft: 1, marginBottom: 1, children: _jsx(Text, { color: "cyan", children: LOGO }) }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, marginBottom: 1, children: metrics ? (_jsxs(_Fragment, { children: [_jsx(MeterBar, { label: "RAM", percent: metrics.ram.percent, detail: metrics.ram.label }), _jsx(MeterBar, { label: "Disk", percent: metrics.disk.usedPercent, detail: metrics.disk.label }), _jsx(MeterBar, { label: "CPU", percent: metrics.cpu.percent, detail: metrics.cpu.label, thresholds: [80, 95] })] })) : (_jsx(Spinner, { label: "Loading system metrics..." })) }),
|
|
363
|
+
return (_jsxs(AppShell, { title: `CallTelemetry CLI v${version}`, logLevel: logLevel, children: [_jsx(Box, { paddingLeft: 1, marginBottom: 1, children: _jsx(Text, { color: "cyan", children: LOGO }) }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, marginBottom: 1, children: metrics ? (_jsxs(_Fragment, { children: [_jsx(MeterBar, { label: "RAM", percent: metrics.ram.percent, detail: metrics.ram.label }), _jsx(MeterBar, { label: "Disk", percent: metrics.disk.usedPercent, detail: metrics.disk.label }), _jsx(MeterBar, { label: "CPU", percent: metrics.cpu.percent, detail: metrics.cpu.label, thresholds: [80, 95] })] })) : (_jsx(Spinner, { label: "Loading system metrics..." })) }), appHealth === undefined ? (_jsx(Box, { paddingLeft: 2, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: "Checking app health..." }) })) : (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, marginBottom: 0, children: [_jsxs(Box, { children: [_jsx(Text, { bold: true, children: 'App ' }), _jsxs(Text, { color: appHealth.overall === 'healthy' ? 'green' : appHealth.overall === 'degraded' ? 'yellow' : 'red', children: [appHealth.overall === 'healthy' ? '●' : appHealth.overall === 'degraded' ? '▲' : '✘', ` ${appHealth.overall}`] }), (() => {
|
|
273
364
|
const webSvc = serviceList.find(s => s.service === 'web');
|
|
274
365
|
const uptime = webSvc ? extractUptime(webSvc.status) : '';
|
|
275
|
-
return uptime && uptime !== 'exited' ? (_jsxs(
|
|
276
|
-
})()] })
|
|
277
|
-
|
|
366
|
+
return uptime && uptime !== 'exited' ? (_jsxs(Text, { dimColor: true, children: [' ', "Up ", uptime] })) : null;
|
|
367
|
+
})()] }), dashItems.slice(0, healthItemCount).map((item, i) => {
|
|
368
|
+
const isFocused = focusZone === 'dashboard' && dashCursor === i;
|
|
369
|
+
const prefix = isFocused ? '❯' : ' ';
|
|
370
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: isFocused ? 'cyan' : undefined, bold: isFocused, children: `${prefix} ` }), _jsx(Text, { color: item.color, children: item.icon }), _jsx(Text, { color: isFocused ? 'cyan' : undefined, bold: isFocused, children: ` ${item.label.padEnd(10)}` }), _jsx(Text, { color: item.color, children: item.status.padEnd(16) }), isFocused && _jsx(Text, { dimColor: true, children: item.hint })] }, `health-${i}`));
|
|
371
|
+
})] })), !services && (_jsx(Box, { paddingLeft: 2, marginBottom: 1, children: _jsx(Spinner, { label: "Loading containers..." }) })), serviceList.length > 0 && (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, marginBottom: 1, children: [_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { bold: true, children: "Containers" }), _jsxs(Text, { dimColor: true, children: [' ', serviceList.length, " total"] }), healthyCount > 0 && _jsxs(Text, { color: "green", children: [" \u2014 ", healthyCount, " healthy"] }), unhealthyCount > 0 && _jsxs(Text, { color: "yellow", children: [", ", unhealthyCount, " unhealthy"] }), stoppedCount > 0 && _jsxs(Text, { color: "red", children: [", ", stoppedCount, " stopped"] })] }), dashItems.slice(healthItemCount).map((item, i) => {
|
|
372
|
+
const globalIdx = healthItemCount + i;
|
|
373
|
+
const isFocused = focusZone === 'dashboard' && dashCursor === globalIdx;
|
|
374
|
+
const prefix = isFocused ? '❯' : ' ';
|
|
375
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: isFocused ? 'cyan' : undefined, bold: isFocused, children: `${prefix} ` }), _jsx(Text, { color: item.color, children: item.icon }), _jsx(Text, { color: isFocused ? 'cyan' : undefined, bold: isFocused, children: ` ${item.label.padEnd(10)}` }), _jsx(Text, { color: item.color, children: item.status.padEnd(16) }), isFocused && _jsx(Text, { dimColor: true, children: item.hint })] }, `ctr-${i}`));
|
|
376
|
+
})] })), _jsx(Box, { paddingLeft: 2, children: _jsx(Text, { dimColor: true, children: '─'.repeat(50) }) }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, paddingTop: 1, children: menuDisplayItems.map((entry, i) => {
|
|
377
|
+
const isActive = focusZone === 'menu' && i === menuCursor;
|
|
278
378
|
const prefix = isActive ? '❯' : ' ';
|
|
279
379
|
return (_jsxs(Box, { children: [_jsx(Text, { color: isActive ? 'cyan' : undefined, bold: isActive, children: `${prefix} ${entry.label.padEnd(16)}` }), _jsx(Text, { dimColor: true, children: entry.description })] }, `menu-${i}`));
|
|
280
380
|
}) }), _jsxs(Box, { paddingLeft: 2, paddingTop: 1, children: [_jsx(Text, { dimColor: true, children: '↑↓ Navigate Enter Select d Log Level q Quit' }), logLevel !== 'normal' && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(LogLevelBadge, { level: logLevel })] }))] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainMenu.js","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MainMenu.js","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"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"}
|