@newrelic/preflight 1.0.5 → 1.0.7

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 (39) hide show
  1. package/README.md +6 -3
  2. package/dist/config.d.ts +8 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +21 -5
  5. package/dist/config.js.map +1 -1
  6. package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
  7. package/dist/dashboard/routes/api-handler.js +12 -0
  8. package/dist/dashboard/routes/api-handler.js.map +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +23 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/install/cli.d.ts.map +1 -1
  13. package/dist/install/cli.js +309 -72
  14. package/dist/install/cli.js.map +1 -1
  15. package/dist/install/diagnostics.d.ts +11 -0
  16. package/dist/install/diagnostics.d.ts.map +1 -0
  17. package/dist/install/diagnostics.js +303 -0
  18. package/dist/install/diagnostics.js.map +1 -0
  19. package/dist/install/install-helper.d.ts +2 -0
  20. package/dist/install/install-helper.d.ts.map +1 -1
  21. package/dist/install/install-helper.js +2 -2
  22. package/dist/install/install-helper.js.map +1 -1
  23. package/dist/install/json-utils.d.ts +1 -0
  24. package/dist/install/json-utils.d.ts.map +1 -1
  25. package/dist/install/json-utils.js +3 -0
  26. package/dist/install/json-utils.js.map +1 -1
  27. package/dist/install/schedule.d.ts +15 -2
  28. package/dist/install/schedule.d.ts.map +1 -1
  29. package/dist/install/schedule.js +122 -19
  30. package/dist/install/schedule.js.map +1 -1
  31. package/dist/install/setup-wizard.d.ts.map +1 -1
  32. package/dist/install/setup-wizard.js +4 -2
  33. package/dist/install/setup-wizard.js.map +1 -1
  34. package/dist/web/assets/index-CAIRoqm5.css +2 -0
  35. package/dist/web/assets/index-Dbf8npPY.js +64 -0
  36. package/dist/web/index.html +2 -2
  37. package/package.json +1 -1
  38. package/dist/web/assets/index-CW0UCwb9.css +0 -2
  39. package/dist/web/assets/index-HRyb4aZK.js +0 -64
@@ -4,17 +4,20 @@
4
4
  * Dynamically imported from collector-script.ts when argv[2] is install/uninstall,
5
5
  * so commander and other heavy deps are never loaded on the hot hook path.
6
6
  */
7
- import { execSync, execFileSync } from 'node:child_process';
7
+ import { execFileSync } from 'node:child_process';
8
8
  import { existsSync, copyFileSync, realpathSync } from 'node:fs';
9
+ import { createInterface } from 'node:readline/promises';
9
10
  import { dirname, join, resolve } from 'node:path';
10
11
  import { homedir } from 'node:os';
11
12
  import { Command } from 'commander';
13
+ import { createLogger } from '../shared/index.js';
12
14
  import { mergeSettings, removeSettings, mergeMcpConfig, removeMcpConfig, detectSettingsPath, detectMcpConfigPath, generateNrConfig, } from './install-helper.js';
13
15
  import { isWsl, resolveWindowsHome } from './platform.js';
14
16
  import { validateConfigFile, DEFAULT_STORAGE_PATH, ConfigFileSchema } from '../config.js';
15
17
  import { migrateStoragePath } from './migrate.js';
16
18
  import { installSchedule, removeSchedule, getScheduleStatus, removeDashboardDaemon, getDashboardDaemonStatus, resolveBinaryPath, } from './schedule.js';
17
- import { readJsonFileStrict, writeJsonFile } from './json-utils.js';
19
+ import { readJsonFileStrict, writeJsonFile, errMsg } from './json-utils.js';
20
+ const logger = createLogger('cli');
18
21
  const NR_CONFIG_PATH = resolve(DEFAULT_STORAGE_PATH, 'config.json');
19
22
  // ---------------------------------------------------------------------------
20
23
  // Platform persistence helpers — read/write platformTarget in config.json
@@ -31,7 +34,7 @@ function clearSavedPlatform() {
31
34
  writeJsonFile(NR_CONFIG_PATH, rest, DEFAULT_STORAGE_PATH);
32
35
  }
33
36
  catch (err) {
34
- eprint(`\n⚠ Could not clear saved platform target: ${err instanceof Error ? err.message : String(err)}`);
37
+ eprint(`\n⚠ Could not clear saved platform target: ${errMsg(err)}`);
35
38
  eprint(' The next install may use the stale platform target. Fix the issue and re-run uninstall.');
36
39
  }
37
40
  }
@@ -110,13 +113,7 @@ function eprint(msg = '') {
110
113
  // PATH verification
111
114
  // ---------------------------------------------------------------------------
112
115
  export function verifyBinaryOnPath() {
113
- try {
114
- execSync('which preflight', { stdio: 'pipe' });
115
- return true;
116
- }
117
- catch {
118
- return false;
119
- }
116
+ return resolveBinaryPath() !== null;
120
117
  }
121
118
  function printPathWarning() {
122
119
  print('\n⚠ preflight is not on your PATH.');
@@ -178,9 +175,14 @@ function handleSchedule(options) {
178
175
  process.exit(1);
179
176
  }
180
177
  if (options.disable) {
181
- const wasInstalled = getScheduleStatus().installed;
182
- removeSchedule();
183
- print(wasInstalled ? '✓ Auto-update schedule removed.' : 'No schedule was installed.');
178
+ try {
179
+ const removed = removeSchedule();
180
+ print(removed ? '✓ Auto-update schedule removed.' : 'No schedule was installed.');
181
+ }
182
+ catch (err) {
183
+ eprint(`⚠ Could not remove schedule: ${errMsg(err)}`);
184
+ process.exitCode = 1;
185
+ }
184
186
  return;
185
187
  }
186
188
  if (options.time !== undefined) {
@@ -210,10 +212,15 @@ function handleSchedule(options) {
210
212
  // No flags — show status.
211
213
  const status = getScheduleStatus();
212
214
  if (status.installed) {
213
- const hh = String(status.hour ?? 0).padStart(2, '0');
214
- const mm = String(status.minute ?? 0).padStart(2, '0');
215
- print(`Auto-update schedule: ${hh}:${mm} daily`);
216
- print(` Binary: ${status.binaryPath ?? 'unknown'}`);
215
+ if (status.readable === false) {
216
+ print('Auto-update schedule: installed (plist unreadable — reinstall with: preflight schedule --time HH:MM)');
217
+ }
218
+ else {
219
+ const hh = String(status.hour ?? 0).padStart(2, '0');
220
+ const mm = String(status.minute ?? 0).padStart(2, '0');
221
+ print(`Auto-update schedule: ${hh}:${mm} daily`);
222
+ print(` Binary: ${status.binaryPath ?? 'unknown'}`);
223
+ }
217
224
  print(' To change: preflight schedule --time HH:MM');
218
225
  print(' To remove: preflight schedule --disable');
219
226
  }
@@ -248,13 +255,13 @@ function handleInstall(options) {
248
255
  catch (err) {
249
256
  const isSyntaxError = err instanceof SyntaxError;
250
257
  if (isSyntaxError || (inWsl && !explicitPlatform) || credentialsProvided) {
251
- eprint(`\n✗ Cannot read existing NR config to determine install target: ${err instanceof Error ? err.message : String(err)}`);
258
+ eprint(`\n✗ Cannot read existing NR config to determine install target: ${errMsg(err)}`);
252
259
  eprint(isSyntaxError
253
260
  ? ' config.json contains invalid JSON — fix or delete it, then re-run install.'
254
261
  : ' Fix file permissions then re-run install.');
255
262
  throw err;
256
263
  }
257
- eprint(`\n⚠ Could not read existing NR config to persist platform target: ${err instanceof Error ? err.message : String(err)}`);
264
+ eprint(`\n⚠ Could not read existing NR config to persist platform target: ${errMsg(err)}`);
258
265
  eprint(' Platform target not persisted — hook installation will continue. Re-run to save it.');
259
266
  skipNrConfigWrite = true;
260
267
  }
@@ -268,21 +275,21 @@ function handleInstall(options) {
268
275
  mergedMcp = mergeMcpConfig(readJsonFileStrict(mcpPath), binPath, { platform });
269
276
  }
270
277
  catch (err) {
271
- eprint(`\n✗ Failed to prepare config: ${err instanceof Error ? err.message : String(err)}`);
278
+ eprint(`\n✗ Failed to prepare config: ${errMsg(err)}`);
272
279
  throw err;
273
280
  }
274
281
  try {
275
282
  writeJsonFile(settingsPath, mergedSettings, allowedBase);
276
283
  }
277
284
  catch (err) {
278
- eprint(`\n✗ Failed to write hooks config (${settingsPath}): ${err instanceof Error ? err.message : String(err)}`);
285
+ eprint(`\n✗ Failed to write hooks config (${settingsPath}): ${errMsg(err)}`);
279
286
  throw err;
280
287
  }
281
288
  try {
282
289
  writeJsonFile(mcpPath, mergedMcp, allowedBase);
283
290
  }
284
291
  catch (err) {
285
- eprint(`\n✗ Failed to write MCP config (${mcpPath}): ${err instanceof Error ? err.message : String(err)}`);
292
+ eprint(`\n✗ Failed to write MCP config (${mcpPath}): ${errMsg(err)}`);
286
293
  throw err;
287
294
  }
288
295
  // Persist platformTarget (and credentials if provided) — only after both hook files written.
@@ -298,10 +305,10 @@ function handleInstall(options) {
298
305
  }
299
306
  catch (err) {
300
307
  if (credentialsProvided) {
301
- eprint(`\n✗ Failed to save New Relic config: ${err instanceof Error ? err.message : String(err)}`);
308
+ eprint(`\n✗ Failed to save New Relic config: ${errMsg(err)}`);
302
309
  throw err;
303
310
  }
304
- eprint(`\n⚠ Could not persist platform target: ${err instanceof Error ? err.message : String(err)}`);
311
+ eprint(`\n⚠ Could not persist platform target: ${errMsg(err)}`);
305
312
  eprint(' The next install will re-detect the target platform from scratch.');
306
313
  }
307
314
  }
@@ -344,9 +351,12 @@ function handleInstall(options) {
344
351
  print(' to check your config file for typos or unsupported fields.');
345
352
  }
346
353
  // ---------------------------------------------------------------------------
347
- // Uninstall handler
354
+ // Uninstall helpers
348
355
  // ---------------------------------------------------------------------------
349
- function handleUninstall(options) {
356
+ // Resolves which settings and MCP config paths to clean based on platform
357
+ // flags and the saved install target. Calls process.exit(1) on invalid
358
+ // flag combinations or unresolvable state.
359
+ function resolveUninstallPaths(options) {
350
360
  const scope = options.project ? 'project' : 'user';
351
361
  if (options.windowsCc && options.linuxCc) {
352
362
  print('\n ⚠ --windows-cc and --linux-cc are mutually exclusive. Pass only one.');
@@ -448,68 +458,255 @@ function handleUninstall(options) {
448
458
  settingsPathsToClean.set(detectSettingsPath(scope, null), undefined);
449
459
  mcpPathsToClean.set(detectMcpConfigPath(scope, null), undefined);
450
460
  }
451
- print('');
452
- let settingsFound = false;
461
+ return { settingsPathsToClean, mcpPathsToClean };
462
+ }
463
+ // Backs up a config file then writes the transformed result. Returns whether
464
+ // the write succeeded and any error encountered — never throws.
465
+ function backupAndWrite(path, allowedBase, transform, errorLabel) {
466
+ const backup = `${path}.backup-${Date.now()}`;
467
+ try {
468
+ const data = readJsonFileStrict(path);
469
+ copyFileSync(path, backup);
470
+ print(` Backup saved: ${backup}`);
471
+ writeJsonFile(path, transform(data), allowedBase);
472
+ return { written: true, error: null };
473
+ }
474
+ catch (err) {
475
+ // If copyFileSync and writeJsonFile both succeeded the backup is no longer
476
+ // needed (the write path handles it). If copyFileSync succeeded but
477
+ // writeJsonFile failed, the backup is the user's only recovery copy —
478
+ // preserve it. If readJsonFileStrict failed, no backup was created and the
479
+ // original is untouched, so there is nothing to recover.
480
+ const error = err instanceof Error ? err : new Error(String(err));
481
+ eprint(`\n✗ Failed to clean ${errorLabel} (${path}): ${errMsg(err)}`);
482
+ process.exitCode = 1;
483
+ return { written: false, error };
484
+ }
485
+ }
486
+ // Removes preflight hooks and MCP config entries from the given paths.
487
+ // Returns a RemovalResult — never throws. Partial completion is possible:
488
+ // removed=true even when error is non-null if at least one file succeeded.
489
+ function removeClaudeCodeConfig(settingsPathsToClean, mcpPathsToClean) {
490
+ let removed = false;
491
+ let firstError = null;
492
+ let hadSettingsFile = false;
453
493
  for (const [settingsPath, allowedBase] of settingsPathsToClean) {
454
- if (existsSync(settingsPath)) {
455
- const backup = `${settingsPath}.backup-${Date.now()}`;
456
- copyFileSync(settingsPath, backup);
457
- print(` Backup saved: ${backup}`);
458
- try {
459
- writeJsonFile(settingsPath, removeSettings(readJsonFileStrict(settingsPath)), allowedBase);
460
- }
461
- catch (err) {
462
- eprint(`\n✗ Failed to clean hooks config (${settingsPath}): ${err instanceof Error ? err.message : String(err)}`);
463
- throw err;
464
- }
465
- settingsFound = true;
494
+ if (!existsSync(settingsPath))
495
+ continue;
496
+ hadSettingsFile = true;
497
+ const { written, error } = backupAndWrite(settingsPath, allowedBase, removeSettings, 'hooks config');
498
+ if (written) {
499
+ removed = true;
466
500
  print(`✓ Hooks removed: ${settingsPath}`);
467
501
  }
502
+ else {
503
+ firstError ??= error;
504
+ }
468
505
  }
469
- if (!settingsFound) {
506
+ if (!hadSettingsFile) {
470
507
  print(`No settings file found at ${[...settingsPathsToClean.keys()].join(', ')}. Skipping hooks.`);
471
508
  }
472
- let mcpFound = false;
509
+ let hadMcpFile = false;
473
510
  for (const [mcpPath, allowedBase] of mcpPathsToClean) {
474
- if (existsSync(mcpPath)) {
475
- const backup = `${mcpPath}.backup-${Date.now()}`;
476
- copyFileSync(mcpPath, backup);
477
- print(` Backup saved: ${backup}`);
478
- try {
479
- writeJsonFile(mcpPath, removeMcpConfig(readJsonFileStrict(mcpPath)), allowedBase);
480
- }
481
- catch (err) {
482
- eprint(`\n✗ Failed to clean MCP config (${mcpPath}): ${err instanceof Error ? err.message : String(err)}`);
483
- throw err;
484
- }
485
- mcpFound = true;
511
+ if (!existsSync(mcpPath))
512
+ continue;
513
+ hadMcpFile = true;
514
+ const { written, error } = backupAndWrite(mcpPath, allowedBase, removeMcpConfig, 'MCP config');
515
+ if (written) {
516
+ removed = true;
486
517
  print(`✓ MCP server removed: ${mcpPath}`);
487
518
  }
519
+ else {
520
+ firstError ??= error;
521
+ }
488
522
  }
489
- if (!mcpFound) {
523
+ if (!hadMcpFile) {
490
524
  print(`No MCP config found at ${[...mcpPathsToClean.keys()].join(', ')}. Skipping MCP server.`);
491
525
  }
492
- // Update persisted platform after cleanup.
493
- // --windows-cc or bare: clear savedPlatform so the next install re-detects from scratch.
494
- // After --windows-cc uninstall, the user must pass --windows-cc again to reinstall
495
- // Windows CC mode re-detection has no heuristic for Windows CC intent.
496
- // --linux-cc: leave savedPlatform untouched — this only cleans Linux-side paths and must
497
- // not destroy a wsl-windows-cc record that the user still intends to use.
526
+ return { label: 'Claude Code config', removed, error: firstError, requiresRestart: true };
527
+ }
528
+ // Runs a single uninstall step. Returns a RemovalResult never throws.
529
+ // process.exitCode is set to 1 and a warning is printed on error.
530
+ function runStep(label, requiresRestart, fn) {
531
+ try {
532
+ const removed = fn();
533
+ return { label, removed, error: null, requiresRestart };
534
+ }
535
+ catch (err) {
536
+ process.exitCode = 1;
537
+ const error = err instanceof Error ? err : new Error(String(err));
538
+ logger.warn('uninstall step failed', { label, error });
539
+ eprint(`⚠ Could not remove ${label}: ${error.message}`);
540
+ return { label, removed: false, error, requiresRestart };
541
+ }
542
+ }
543
+ // Prompts the user for uninstall confirmation. Returns one of four outcomes.
544
+ async function promptConfirm(yes) {
545
+ if (yes)
546
+ return 'confirmed';
547
+ if (process.stdin.isTTY !== true)
548
+ return 'non-interactive';
549
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
550
+ try {
551
+ const answer = (await rl.question('Continue? [y/N]: ')).trim().toLowerCase();
552
+ return answer === 'y' || answer === 'yes' ? 'confirmed' : 'declined';
553
+ }
554
+ catch {
555
+ return 'stdin-closed';
556
+ }
557
+ finally {
558
+ rl.close();
559
+ }
560
+ }
561
+ // Handles a promptConfirm result: prints cancellation message and sets
562
+ // exitCode=1 on any non-confirmed outcome. Returns true only when confirmed.
563
+ function handleConfirm(result) {
564
+ if (result === 'confirmed')
565
+ return true;
566
+ const message = result === 'non-interactive'
567
+ ? 'Uninstall cancelled (non-interactive stdin — rerun with --yes to confirm).'
568
+ : result === 'stdin-closed'
569
+ ? 'Uninstall cancelled (stdin closed).'
570
+ : 'Uninstall cancelled.';
571
+ print(message);
572
+ process.exitCode = 1;
573
+ return false;
574
+ }
575
+ // ---------------------------------------------------------------------------
576
+ // Uninstall handler
577
+ // ---------------------------------------------------------------------------
578
+ async function handleUninstall(options) {
579
+ // --daemon: targeted removal of just the background dashboard daemon plist.
580
+ // Does not touch hooks, MCP config, schedules, or session history.
581
+ if (options.daemon) {
582
+ if (options.project || options.windowsCc || options.linuxCc) {
583
+ print(' ⚠ --daemon cannot be combined with --project, --windows-cc, or --linux-cc.');
584
+ print(' Use bare `preflight uninstall` to remove hooks and the daemon together.');
585
+ process.exit(1);
586
+ }
587
+ const daemonStatus = getDashboardDaemonStatus();
588
+ if (!daemonStatus.installed) {
589
+ print('No background dashboard daemon installed — nothing to remove.');
590
+ return;
591
+ }
592
+ print('preflight uninstall --daemon will remove the background dashboard daemon.\n');
593
+ if (!handleConfirm(await promptConfirm(options.yes ?? false)))
594
+ return;
595
+ const step = runStep('background dashboard daemon', false, () => removeDashboardDaemon());
596
+ if (step.error !== null) {
597
+ print('\nUninstall incomplete — see errors above.\n');
598
+ return;
599
+ }
600
+ if (!step.removed) {
601
+ process.exitCode = 1;
602
+ print('Background dashboard daemon already absent — nothing to remove.');
603
+ return;
604
+ }
605
+ print('✓ Background dashboard daemon removed.');
606
+ print(' The dashboard is now only available while Claude Code is running.');
607
+ print(' To reinstall, run: preflight setup');
608
+ return;
609
+ }
610
+ const { settingsPathsToClean, mcpPathsToClean } = resolveUninstallPaths(options);
611
+ // Build a human-readable summary of what will change, then ask for
612
+ // confirmation before touching anything.
613
+ const changeSummary = [];
614
+ let hadConfigFiles = false;
615
+ for (const settingsPath of settingsPathsToClean.keys()) {
616
+ if (existsSync(settingsPath)) {
617
+ changeSummary.push(` • Remove hooks from ${settingsPath}`);
618
+ hadConfigFiles = true;
619
+ }
620
+ }
621
+ for (const mcpPath of mcpPathsToClean.keys()) {
622
+ if (existsSync(mcpPath)) {
623
+ changeSummary.push(` • Remove MCP server from ${mcpPath}`);
624
+ hadConfigFiles = true;
625
+ }
626
+ }
627
+ const scheduleStatus = getScheduleStatus();
628
+ const daemonStatus = getDashboardDaemonStatus();
629
+ if (scheduleStatus.installed) {
630
+ const action = scheduleStatus.readable
631
+ ? 'Unload and delete'
632
+ : 'Remove (plist unreadable — label removal)';
633
+ changeSummary.push(` • ${action} auto-update schedule`);
634
+ }
635
+ if (daemonStatus.installed) {
636
+ const action = daemonStatus.readable
637
+ ? 'Unload and delete'
638
+ : 'Remove (plist unreadable — label removal)';
639
+ changeSummary.push(` • ${action} background dashboard daemon`);
640
+ }
641
+ if (changeSummary.length === 0) {
642
+ print('Nothing installed — no changes to make.');
643
+ return;
644
+ }
645
+ print('preflight uninstall will make the following changes:\n');
646
+ for (const line of changeSummary)
647
+ print(line);
648
+ print('');
649
+ print(` Your session history and config at ${DEFAULT_STORAGE_PATH} will NOT be deleted.`);
650
+ print('');
651
+ if (!handleConfirm(await promptConfirm(options.yes ?? false)))
652
+ return;
653
+ print('');
654
+ const configStep = removeClaudeCodeConfig(settingsPathsToClean, mcpPathsToClean);
498
655
  if (options.windowsCc) {
499
656
  print(' To reinstall Windows Claude Code mode, re-run: preflight install --windows-cc');
500
657
  }
501
- if (!options.linuxCc) {
658
+ const scheduleStep = runStep('auto-update schedule', false, () => {
659
+ const removed = removeSchedule();
660
+ if (removed)
661
+ print('✓ Auto-update schedule removed');
662
+ else if (scheduleStatus.installed) {
663
+ // Plist vanished between status-check and removal (TOCTOU). Throw so
664
+ // runStep captures this as an error and anyFailed reflects it.
665
+ throw new Error('Auto-update schedule already absent — may have been removed by another process');
666
+ }
667
+ return removed;
668
+ });
669
+ const daemonStep = runStep('background dashboard daemon', false, () => {
670
+ const removed = removeDashboardDaemon();
671
+ if (removed)
672
+ print('✓ Background dashboard daemon removed');
673
+ else if (daemonStatus.installed) {
674
+ // Plist vanished between status-check and removal (TOCTOU). Throw so
675
+ // runStep captures this as an error and anyFailed reflects it — without
676
+ // this, process.exitCode=1 and the success message are contradictory.
677
+ throw new Error('Background dashboard daemon already absent — may have been removed by another process');
678
+ }
679
+ return removed;
680
+ });
681
+ const steps = [configStep, scheduleStep, daemonStep];
682
+ const anyRemoved = steps.some((s) => s.removed);
683
+ const anyFailed = steps.some((s) => s.error !== null);
684
+ const requiresRestart = steps.some((s) => s.removed && s.requiresRestart);
685
+ // Clear the saved platform record when hooks/MCP config was removed (even if
686
+ // schedule/daemon cleanup also failed — those are independent). Also clear on
687
+ // schedule/daemon-only removal when config files existed on disk at status-check
688
+ // time: absent config files mean hooks were never written (or already manually
689
+ // deleted) and the platform record should be preserved for a re-install attempt.
690
+ // Skip on --linux-cc (sibling wsl-windows-cc record may still be in use).
691
+ const shouldClearPlatform = configStep.removed || (anyRemoved && !anyFailed && hadConfigFiles);
692
+ if (!options.linuxCc && shouldClearPlatform) {
502
693
  clearSavedPlatform();
503
694
  }
504
- print('\nRestart Claude Code for changes to take effect.\n');
505
- const scheduleWasInstalled = getScheduleStatus().installed;
506
- removeSchedule();
507
- if (scheduleWasInstalled)
508
- print('✓ Auto-update schedule removed');
509
- const daemonWasInstalled = getDashboardDaemonStatus().installed;
510
- removeDashboardDaemon();
511
- if (daemonWasInstalled)
512
- print('✓ Background dashboard daemon removed');
695
+ if (requiresRestart) {
696
+ if (anyFailed) {
697
+ print('\nRestart Claude Code to apply hook changes. Uninstall incomplete — see errors above.\n');
698
+ }
699
+ else {
700
+ print('\nRestart Claude Code for changes to take effect.\n');
701
+ }
702
+ }
703
+ else if (anyRemoved) {
704
+ // Schedule/daemon only — launchd unloaded immediately; no restart needed.
705
+ print(anyFailed ? '\nUninstall incomplete — see errors above.\n' : '\nUninstall complete.\n');
706
+ }
707
+ else if (anyFailed) {
708
+ print('\nUninstall incomplete — see errors above.\n');
709
+ }
513
710
  }
514
711
  // ---------------------------------------------------------------------------
515
712
  // Validate handler
@@ -551,6 +748,39 @@ function handleValidate(options) {
551
748
  }
552
749
  }
553
750
  // ---------------------------------------------------------------------------
751
+ // Doctor handler
752
+ // ---------------------------------------------------------------------------
753
+ async function handleDoctor(options) {
754
+ const { runDiagnostics } = await import('./diagnostics.js');
755
+ const configPath = options.config ?? resolve(DEFAULT_STORAGE_PATH, 'config.json');
756
+ const storagePath = process.env.NEW_RELIC_AI_MCP_STORAGE_PATH ?? undefined;
757
+ print('Running diagnostics...');
758
+ const checks = await runDiagnostics({ configPath, storagePath });
759
+ const ICON = { ok: '✓', warn: '⚠', fail: '✗', skip: '-' };
760
+ const COL = 22;
761
+ for (const c of checks) {
762
+ const icon = ICON[c.status] ?? '?';
763
+ print(`${icon} ${c.check.padEnd(COL)} ${c.detail}`);
764
+ if (c.fix && (c.status === 'fail' || c.status === 'warn')) {
765
+ print(` ${' '.repeat(COL)}Fix: ${c.fix}`);
766
+ }
767
+ }
768
+ const fails = checks.filter((c) => c.status === 'fail').length;
769
+ const warns = checks.filter((c) => c.status === 'warn').length;
770
+ print('');
771
+ if (fails === 0 && warns === 0) {
772
+ print('✓ All checks passed.');
773
+ return;
774
+ }
775
+ const parts = [];
776
+ if (fails > 0)
777
+ parts.push(`${fails} failure${fails > 1 ? 's' : ''}`);
778
+ if (warns > 0)
779
+ parts.push(`${warns} warning${warns > 1 ? 's' : ''}`);
780
+ print(`${parts.join(', ')} found. Run the fix commands above, then restart.`);
781
+ process.exitCode = fails > 0 ? 1 : 2;
782
+ }
783
+ // ---------------------------------------------------------------------------
554
784
  // CLI program
555
785
  // ---------------------------------------------------------------------------
556
786
  export function createInstallProgram() {
@@ -571,6 +801,8 @@ export function createInstallProgram() {
571
801
  .option('--project', 'Remove from project-level .claude/settings.json instead of user-level')
572
802
  .option('--windows-cc', 'Remove Windows Claude Code hooks only (WSL only)')
573
803
  .option('--linux-cc', 'Remove Linux Claude Code hooks only (WSL only)')
804
+ .option('--daemon', 'Remove only the background dashboard daemon (preserves hooks, MCP config, and session history)')
805
+ .option('--yes', 'Skip the confirmation prompt (useful for scripts and CI)')
574
806
  .action(handleUninstall);
575
807
  program
576
808
  .command('setup')
@@ -581,7 +813,7 @@ export function createInstallProgram() {
581
813
  await runSetupWizard();
582
814
  }
583
815
  catch (err) {
584
- print(`\n✗ Setup failed: ${err instanceof Error ? err.message : String(err)}`);
816
+ print(`\n✗ Setup failed: ${errMsg(err)}`);
585
817
  process.exitCode = 1;
586
818
  }
587
819
  });
@@ -590,6 +822,11 @@ export function createInstallProgram() {
590
822
  .description('Check the config file for unknown fields, type errors, and typos')
591
823
  .option('--config <path>', 'Path to config file (default: ~/.newrelic-preflight/config.json)')
592
824
  .action(handleValidate);
825
+ program
826
+ .command('doctor')
827
+ .description('Check configuration, hooks, daemon, and connectivity for common setup problems')
828
+ .option('--config <path>', 'Path to config file (default: ~/.newrelic-preflight/config.json)')
829
+ .action(handleDoctor);
593
830
  program
594
831
  .command('update')
595
832
  .description('Pull the latest changes and rebuild (git pull + npm run build)')
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface DiagnosticCheck {
2
+ readonly check: string;
3
+ readonly status: 'ok' | 'warn' | 'fail' | 'skip';
4
+ readonly detail: string;
5
+ readonly fix?: string;
6
+ }
7
+ export declare function runDiagnostics(opts?: {
8
+ configPath?: string;
9
+ storagePath?: string;
10
+ }): Promise<DiagnosticCheck[]>;
11
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/install/diagnostics.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAgTD,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiB7B"}