@newrelic/preflight 1.0.2 → 1.0.4
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/README.md +110 -399
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/install/cli.d.ts +1 -0
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +326 -86
- package/dist/install/cli.js.map +1 -1
- package/dist/install/install-helper.d.ts +15 -6
- package/dist/install/install-helper.d.ts.map +1 -1
- package/dist/install/install-helper.js +41 -22
- package/dist/install/install-helper.js.map +1 -1
- package/dist/install/json-utils.d.ts +4 -0
- package/dist/install/json-utils.d.ts.map +1 -0
- package/dist/install/json-utils.js +88 -0
- package/dist/install/json-utils.js.map +1 -0
- package/dist/install/migrate.d.ts.map +1 -1
- package/dist/install/migrate.js +57 -1
- package/dist/install/migrate.js.map +1 -1
- package/dist/install/platform.d.ts +21 -0
- package/dist/install/platform.d.ts.map +1 -0
- package/dist/install/platform.js +95 -0
- package/dist/install/platform.js.map +1 -0
- package/dist/install/setup-wizard.d.ts.map +1 -1
- package/dist/install/setup-wizard.js +118 -43
- package/dist/install/setup-wizard.js.map +1 -1
- package/package.json +1 -1
package/dist/install/cli.js
CHANGED
|
@@ -4,57 +4,107 @@
|
|
|
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 { Command } from 'commander';
|
|
8
7
|
import { execSync, execFileSync } from 'node:child_process';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { existsSync, copyFileSync, realpathSync } from 'node:fs';
|
|
9
|
+
import { dirname, join, resolve } from 'node:path';
|
|
11
10
|
import { homedir } from 'node:os';
|
|
11
|
+
import { Command } from 'commander';
|
|
12
12
|
import { mergeSettings, removeSettings, mergeMcpConfig, removeMcpConfig, detectSettingsPath, detectMcpConfigPath, generateNrConfig, } from './install-helper.js';
|
|
13
|
-
import {
|
|
13
|
+
import { isWsl, resolveWindowsHome } from './platform.js';
|
|
14
|
+
import { validateConfigFile, DEFAULT_STORAGE_PATH, ConfigFileSchema } from '../config.js';
|
|
14
15
|
import { migrateStoragePath } from './migrate.js';
|
|
15
16
|
import { installSchedule, removeSchedule, getScheduleStatus, removeDashboardDaemon, getDashboardDaemonStatus, resolveBinaryPath, } from './schedule.js';
|
|
16
|
-
|
|
17
|
-
const NR_CONFIG_PATH = resolve(
|
|
18
|
-
function print(msg = '') {
|
|
19
|
-
process.stdout.write(msg + '\n');
|
|
20
|
-
}
|
|
17
|
+
import { readJsonFileStrict, writeJsonFile } from './json-utils.js';
|
|
18
|
+
const NR_CONFIG_PATH = resolve(DEFAULT_STORAGE_PATH, 'config.json');
|
|
21
19
|
// ---------------------------------------------------------------------------
|
|
22
|
-
//
|
|
20
|
+
// Platform persistence helpers — read/write platformTarget in config.json
|
|
23
21
|
// ---------------------------------------------------------------------------
|
|
24
|
-
function
|
|
22
|
+
function parsePlatformTarget(value) {
|
|
23
|
+
const result = ConfigFileSchema.shape.platformTarget.safeParse(value);
|
|
24
|
+
return result.success && result.data !== undefined ? result.data : null;
|
|
25
|
+
}
|
|
26
|
+
function clearSavedPlatform() {
|
|
25
27
|
try {
|
|
26
|
-
|
|
28
|
+
if (!existsSync(NR_CONFIG_PATH))
|
|
29
|
+
return;
|
|
30
|
+
const { platformTarget: _pt, ...rest } = readJsonFileStrict(NR_CONFIG_PATH);
|
|
31
|
+
writeJsonFile(NR_CONFIG_PATH, rest, DEFAULT_STORAGE_PATH);
|
|
27
32
|
}
|
|
28
|
-
catch {
|
|
29
|
-
|
|
33
|
+
catch (err) {
|
|
34
|
+
eprint(`\n⚠ Could not clear saved platform target: ${err instanceof Error ? err.message : String(err)}`);
|
|
35
|
+
eprint(' The next install may use the stale platform target. Fix the issue and re-run uninstall.');
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// the case where the file itself (e.g. settings.json) is a symlink pointing
|
|
40
|
-
// outside HOME (e.g. to /etc/cron.d/evil).
|
|
41
|
-
const resolvedDir = realpathSync(dir);
|
|
42
|
-
const resolvedPath = existsSync(path) ? realpathSync(path) : resolve(resolvedDir, basename(path));
|
|
43
|
-
const home = homedir();
|
|
44
|
-
const cwd = process.cwd();
|
|
45
|
-
const check = (p) => p === home || p.startsWith(home + sep) || p === cwd || p.startsWith(cwd + sep);
|
|
46
|
-
if (!check(resolvedDir) || !check(resolvedPath)) {
|
|
47
|
-
throw new Error(`Refusing to write outside HOME or project root: ${resolvedPath}`);
|
|
48
|
-
}
|
|
49
|
-
const tmp = path + '.tmp';
|
|
50
|
-
try {
|
|
51
|
-
writeFileSync(tmp, JSON.stringify(data, null, 2) + '\n', { mode: 0o600 });
|
|
52
|
-
renameSync(tmp, path);
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Platform resolution — single function, single place for all errors
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
function resolvePlatform(options, savedPlatform) {
|
|
42
|
+
if (options.windowsCc && options.linuxCc) {
|
|
43
|
+
print('\n ⚠ --windows-cc and --linux-cc are mutually exclusive. Pass only one.');
|
|
44
|
+
process.exit(1);
|
|
53
45
|
}
|
|
54
|
-
|
|
55
|
-
if (
|
|
56
|
-
|
|
46
|
+
if (options.windowsCc) {
|
|
47
|
+
if (!isWsl()) {
|
|
48
|
+
print('\n ⚠ --windows-cc only works inside WSL — this machine is not running WSL.');
|
|
49
|
+
print(' Run without --windows-cc to install normally.');
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
const windowsHome = resolveWindowsHome();
|
|
53
|
+
if (!windowsHome) {
|
|
54
|
+
print('\n ⚠ --windows-cc: Windows home directory could not be resolved.');
|
|
55
|
+
print(' Check that WSL interop is enabled:');
|
|
56
|
+
print(' wsl.exe --status');
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
return { platform: 'wsl-windows-cc', windowsHome };
|
|
60
|
+
}
|
|
61
|
+
if (options.linuxCc) {
|
|
62
|
+
if (!isWsl()) {
|
|
63
|
+
print('\n ⚠ --linux-cc only works inside WSL — this machine is not running WSL.');
|
|
64
|
+
print(' Run without --linux-cc to install normally.');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
return { platform: 'wsl-linux-cc', windowsHome: null };
|
|
68
|
+
}
|
|
69
|
+
if (!isWsl())
|
|
70
|
+
return { platform: 'native', windowsHome: null };
|
|
71
|
+
// WSL auto-detect: use the savedPlatform already read by handleInstall.
|
|
72
|
+
// 'native' is excluded — it was written on a non-WSL machine and must not
|
|
73
|
+
// suppress WSL-mode guidance or the --windows-cc hint below.
|
|
74
|
+
if (savedPlatform && savedPlatform !== 'native') {
|
|
75
|
+
if (savedPlatform === 'wsl-windows-cc') {
|
|
76
|
+
const windowsHome = resolveWindowsHome();
|
|
77
|
+
if (!windowsHome) {
|
|
78
|
+
print('\n ⚠ Saved install target is Windows Claude Code but Windows home could not be resolved.');
|
|
79
|
+
print(' WSL interop may be disabled. Re-run with --windows-cc when interop is restored,');
|
|
80
|
+
print(' or use --linux-cc to switch to Linux Claude Code mode permanently.');
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
return { platform: 'wsl-windows-cc', windowsHome };
|
|
84
|
+
}
|
|
85
|
+
return { platform: savedPlatform, windowsHome: null };
|
|
57
86
|
}
|
|
87
|
+
// WSL: no prior state — default to Linux CC, inform user about the Windows option.
|
|
88
|
+
print('\n ℹ WSL detected with no prior install state. Defaulting to Linux Claude Code mode.');
|
|
89
|
+
print(' If you are using the Windows Claude Code desktop app, re-run with --windows-cc:');
|
|
90
|
+
print(' preflight install --windows-cc');
|
|
91
|
+
return { platform: 'wsl-linux-cc', windowsHome: null };
|
|
92
|
+
}
|
|
93
|
+
function resolveInstallPaths(_platform, scope, windowsHome) {
|
|
94
|
+
return {
|
|
95
|
+
settingsPath: detectSettingsPath(scope, windowsHome),
|
|
96
|
+
mcpPath: detectMcpConfigPath(scope, windowsHome),
|
|
97
|
+
allowedBase: windowsHome ?? undefined,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// print helper
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
function print(msg = '') {
|
|
104
|
+
process.stdout.write(msg + '\n');
|
|
105
|
+
}
|
|
106
|
+
function eprint(msg = '') {
|
|
107
|
+
process.stderr.write(msg + '\n');
|
|
58
108
|
}
|
|
59
109
|
// ---------------------------------------------------------------------------
|
|
60
110
|
// PATH verification
|
|
@@ -76,9 +126,9 @@ function printPathWarning() {
|
|
|
76
126
|
print('');
|
|
77
127
|
}
|
|
78
128
|
// ---------------------------------------------------------------------------
|
|
79
|
-
// Repo root discovery (for update command)
|
|
129
|
+
// Repo root discovery (for update command and setup wizard)
|
|
80
130
|
// ---------------------------------------------------------------------------
|
|
81
|
-
function findRepoRoot() {
|
|
131
|
+
export function findRepoRoot() {
|
|
82
132
|
try {
|
|
83
133
|
let dir = dirname(realpathSync(process.argv[1]));
|
|
84
134
|
while (true) {
|
|
@@ -178,43 +228,105 @@ function handleSchedule(options) {
|
|
|
178
228
|
function handleInstall(options) {
|
|
179
229
|
migrateStoragePath(true);
|
|
180
230
|
const scope = options.project ? 'project' : 'user';
|
|
181
|
-
// Resolve the full binary path at install time so hooks work in non-login
|
|
182
|
-
// shells (e.g. /bin/sh) that don't inherit NVM/nix/Homebrew PATH entries.
|
|
183
231
|
const binPath = resolveBinaryPath();
|
|
184
|
-
|
|
185
|
-
const
|
|
186
|
-
|
|
232
|
+
const credentialsProvided = !!(options.licenseKey && options.accountId);
|
|
233
|
+
const inWsl = isWsl();
|
|
234
|
+
// Read config.json once. Serves two purposes:
|
|
235
|
+
// (a) extract savedPlatform for resolvePlatform (needed on WSL auto-detect)
|
|
236
|
+
// (b) preserve existing fields when writing back platformTarget + credentials
|
|
237
|
+
// Fatal conditions: SyntaxError (can't safely write back to corrupt JSON),
|
|
238
|
+
// WSL without explicit platform flag + any IO error (EACCES/EPERM could mask a
|
|
239
|
+
// saved wsl-windows-cc platform — explicit flags make savedPlatform irrelevant),
|
|
240
|
+
// credentials provided + any IO error (can't preserve without knowing existing state).
|
|
241
|
+
const explicitPlatform = !!(options.windowsCc || options.linuxCc);
|
|
242
|
+
let existingNrConfig = {};
|
|
243
|
+
let skipNrConfigWrite = false;
|
|
187
244
|
try {
|
|
188
|
-
|
|
189
|
-
|
|
245
|
+
// readJsonFileStrict returns {} on ENOENT; throws on IO errors or malformed JSON.
|
|
246
|
+
existingNrConfig = readJsonFileStrict(NR_CONFIG_PATH);
|
|
190
247
|
}
|
|
191
248
|
catch (err) {
|
|
192
|
-
|
|
193
|
-
|
|
249
|
+
const isSyntaxError = err instanceof SyntaxError;
|
|
250
|
+
if (isSyntaxError || (inWsl && !explicitPlatform) || credentialsProvided) {
|
|
251
|
+
eprint(`\n✗ Cannot read existing NR config to determine install target: ${err instanceof Error ? err.message : String(err)}`);
|
|
252
|
+
eprint(isSyntaxError
|
|
253
|
+
? ' config.json contains invalid JSON — fix or delete it, then re-run install.'
|
|
254
|
+
: ' Fix file permissions then re-run install.');
|
|
255
|
+
throw err;
|
|
256
|
+
}
|
|
257
|
+
eprint(`\n⚠ Could not read existing NR config to persist platform target: ${err instanceof Error ? err.message : String(err)}`);
|
|
258
|
+
eprint(' Platform target not persisted — hook installation will continue. Re-run to save it.');
|
|
259
|
+
skipNrConfigWrite = true;
|
|
194
260
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
const mcpPath =
|
|
261
|
+
const savedPlatform = parsePlatformTarget(existingNrConfig.platformTarget);
|
|
262
|
+
const { platform, windowsHome } = resolvePlatform(options, savedPlatform);
|
|
263
|
+
const { settingsPath, mcpPath, allowedBase } = resolveInstallPaths(platform, scope, windowsHome);
|
|
264
|
+
let mergedSettings;
|
|
198
265
|
let mergedMcp;
|
|
199
266
|
try {
|
|
200
|
-
|
|
201
|
-
mergedMcp = mergeMcpConfig(
|
|
267
|
+
mergedSettings = mergeSettings(readJsonFileStrict(settingsPath), binPath, { platform });
|
|
268
|
+
mergedMcp = mergeMcpConfig(readJsonFileStrict(mcpPath), binPath, { platform });
|
|
202
269
|
}
|
|
203
270
|
catch (err) {
|
|
204
|
-
|
|
205
|
-
|
|
271
|
+
eprint(`\n✗ Failed to prepare config: ${err instanceof Error ? err.message : String(err)}`);
|
|
272
|
+
throw err;
|
|
273
|
+
}
|
|
274
|
+
try {
|
|
275
|
+
writeJsonFile(settingsPath, mergedSettings, allowedBase);
|
|
276
|
+
}
|
|
277
|
+
catch (err) {
|
|
278
|
+
eprint(`\n✗ Failed to write hooks config (${settingsPath}): ${err instanceof Error ? err.message : String(err)}`);
|
|
279
|
+
throw err;
|
|
280
|
+
}
|
|
281
|
+
try {
|
|
282
|
+
writeJsonFile(mcpPath, mergedMcp, allowedBase);
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
eprint(`\n✗ Failed to write MCP config (${mcpPath}): ${err instanceof Error ? err.message : String(err)}`);
|
|
286
|
+
throw err;
|
|
287
|
+
}
|
|
288
|
+
// Persist platformTarget (and credentials if provided) — only after both hook files written.
|
|
289
|
+
let nrConfigWritten = false;
|
|
290
|
+
if (!skipNrConfigWrite) {
|
|
291
|
+
try {
|
|
292
|
+
const nrConfig = { ...existingNrConfig, platformTarget: platform };
|
|
293
|
+
if (credentialsProvided) {
|
|
294
|
+
Object.assign(nrConfig, generateNrConfig(options.licenseKey, options.accountId));
|
|
295
|
+
}
|
|
296
|
+
writeJsonFile(NR_CONFIG_PATH, nrConfig, DEFAULT_STORAGE_PATH);
|
|
297
|
+
nrConfigWritten = credentialsProvided;
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
if (credentialsProvided) {
|
|
301
|
+
eprint(`\n✗ Failed to save New Relic config: ${err instanceof Error ? err.message : String(err)}`);
|
|
302
|
+
throw err;
|
|
303
|
+
}
|
|
304
|
+
eprint(`\n⚠ Could not persist platform target: ${err instanceof Error ? err.message : String(err)}`);
|
|
305
|
+
eprint(' The next install will re-detect the target platform from scratch.');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
if (platform === 'wsl-windows-cc') {
|
|
309
|
+
print('\n ℹ Configured for Windows Claude Code (desktop app).');
|
|
310
|
+
print(` Hooks written to: ${settingsPath}`);
|
|
311
|
+
print(` MCP config written to: ${mcpPath}`);
|
|
312
|
+
print(' Hook commands use wsl.exe -e so Windows Claude Code can invoke them.');
|
|
313
|
+
print(' To switch to Linux Claude Code mode, re-run with --linux-cc:');
|
|
314
|
+
print(' preflight install --linux-cc');
|
|
315
|
+
}
|
|
316
|
+
else if (platform === 'wsl-linux-cc') {
|
|
317
|
+
print('\n ℹ Configured for Linux Claude Code (npm in WSL).');
|
|
318
|
+
print(` Hooks written to: ${settingsPath}`);
|
|
319
|
+
print(' To switch to Windows Claude Code mode, re-run with --windows-cc:');
|
|
320
|
+
print(' preflight install --windows-cc');
|
|
206
321
|
}
|
|
207
|
-
writeJsonFile(mcpPath, mergedMcp);
|
|
208
322
|
print(`\n✓ Claude Code hooks updated: ${settingsPath}`);
|
|
209
323
|
print(' - Added PreToolUse and PostToolUse hooks');
|
|
210
324
|
print(`✓ MCP server registered: ${mcpPath}`);
|
|
211
325
|
print(' - Added preflight MCP server');
|
|
212
|
-
if (
|
|
213
|
-
const config = generateNrConfig(options.licenseKey, options.accountId);
|
|
214
|
-
writeJsonFile(NR_CONFIG_PATH, config);
|
|
326
|
+
if (nrConfigWritten) {
|
|
215
327
|
print(`\n✓ New Relic config written: ${NR_CONFIG_PATH}`);
|
|
216
328
|
}
|
|
217
|
-
else if (options.licenseKey || options.accountId) {
|
|
329
|
+
else if (!credentialsProvided && (options.licenseKey || options.accountId)) {
|
|
218
330
|
print('\n⚠ Both --license-key and --account-id are required to save NR config. Skipped.');
|
|
219
331
|
}
|
|
220
332
|
if (binPath !== null) {
|
|
@@ -236,34 +348,158 @@ function handleInstall(options) {
|
|
|
236
348
|
// ---------------------------------------------------------------------------
|
|
237
349
|
function handleUninstall(options) {
|
|
238
350
|
const scope = options.project ? 'project' : 'user';
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const settingsBackup = `${settingsPath}.backup-${Date.now()}`;
|
|
243
|
-
copyFileSync(settingsPath, settingsBackup);
|
|
244
|
-
print(`\n Backup saved: ${settingsBackup}`);
|
|
245
|
-
const existingSettings = readJsonFile(settingsPath);
|
|
246
|
-
const cleanedSettings = removeSettings(existingSettings);
|
|
247
|
-
writeJsonFile(settingsPath, cleanedSettings);
|
|
248
|
-
print(`✓ Hooks removed: ${settingsPath}`);
|
|
351
|
+
if (options.windowsCc && options.linuxCc) {
|
|
352
|
+
print('\n ⚠ --windows-cc and --linux-cc are mutually exclusive. Pass only one.');
|
|
353
|
+
process.exit(1);
|
|
249
354
|
}
|
|
250
|
-
|
|
251
|
-
print(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
if (
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
print(
|
|
355
|
+
if (options.windowsCc && !isWsl()) {
|
|
356
|
+
print('\n ⚠ --windows-cc only works inside WSL — this machine is not running WSL.');
|
|
357
|
+
print(' Run without --windows-cc to uninstall normally.');
|
|
358
|
+
process.exit(1);
|
|
359
|
+
}
|
|
360
|
+
if (options.linuxCc && !isWsl()) {
|
|
361
|
+
print('\n ⚠ --linux-cc only works inside WSL — this machine is not running WSL.');
|
|
362
|
+
print(' Run without --linux-cc to uninstall normally.');
|
|
363
|
+
process.exit(1);
|
|
364
|
+
}
|
|
365
|
+
const wslEnv = isWsl();
|
|
366
|
+
const windowsHome = wslEnv ? resolveWindowsHome() : null;
|
|
367
|
+
if (options.windowsCc && windowsHome === null) {
|
|
368
|
+
print('\n ⚠ --windows-cc: Windows home directory could not be resolved.');
|
|
369
|
+
print(' Nothing to uninstall for Windows Claude Code.');
|
|
370
|
+
process.exit(1);
|
|
371
|
+
}
|
|
372
|
+
// For bare uninstall (no flags), read the saved platform so we only clean the
|
|
373
|
+
// paths that were actually written during the matching install. Users who never
|
|
374
|
+
// ran preflight ≥1.0.4 have no saved platform, so fall back to cleaning both
|
|
375
|
+
// paths as a migration safety net.
|
|
376
|
+
// If config.json is unreadable, fall back to cleaning both paths — over-cleaning
|
|
377
|
+
// is safe, under-cleaning is not.
|
|
378
|
+
let savedPlatform = null;
|
|
379
|
+
if (!options.windowsCc && !options.linuxCc) {
|
|
380
|
+
try {
|
|
381
|
+
const config = readJsonFileStrict(NR_CONFIG_PATH);
|
|
382
|
+
savedPlatform = parsePlatformTarget(config.platformTarget);
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
/* unreadable config — clean both paths */
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
let includeWindows;
|
|
389
|
+
let includeLinux;
|
|
390
|
+
if (options.windowsCc) {
|
|
391
|
+
includeWindows = true;
|
|
392
|
+
includeLinux = false;
|
|
393
|
+
}
|
|
394
|
+
else if (options.linuxCc) {
|
|
395
|
+
includeWindows = false;
|
|
396
|
+
includeLinux = true;
|
|
397
|
+
}
|
|
398
|
+
else if (savedPlatform === 'wsl-windows-cc') {
|
|
399
|
+
if (!wslEnv) {
|
|
400
|
+
// Not in WSL — Windows CC paths from a prior WSL install are unreachable on this machine
|
|
401
|
+
// (e.g. config copied to macOS/Linux). Clean Linux-side paths and clear the stale target.
|
|
402
|
+
includeWindows = false;
|
|
403
|
+
includeLinux = true;
|
|
404
|
+
}
|
|
405
|
+
else if (windowsHome === null) {
|
|
406
|
+
// In WSL but interop unavailable — cannot reach Windows-side hooks without windowsHome.
|
|
407
|
+
// Exit with an actionable message rather than silently cleaning nothing and clearing the
|
|
408
|
+
// saved platform (which would make the next bare install forget the user's Windows CC intent).
|
|
409
|
+
print('\n ⚠ Saved install target is Windows Claude Code but Windows home could not be resolved.');
|
|
410
|
+
print(' WSL interop may be disabled. To uninstall:');
|
|
411
|
+
print(' Re-enable WSL interop, then re-run: preflight uninstall');
|
|
412
|
+
print(' Or clean Linux-side hooks only: preflight uninstall --linux-cc');
|
|
413
|
+
process.exit(1);
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
// Also clean Linux-side hooks — the user may have previously run --linux-cc and then
|
|
417
|
+
// switched to --windows-cc without uninstalling first. Linux paths are always reachable.
|
|
418
|
+
includeWindows = true;
|
|
419
|
+
includeLinux = true;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
else if (savedPlatform === 'wsl-linux-cc') {
|
|
423
|
+
// Clean Linux hooks. Also clean Windows hooks if reachable — the user may have
|
|
424
|
+
// previously run --windows-cc and then switched to --linux-cc without uninstalling first.
|
|
425
|
+
if (windowsHome !== null) {
|
|
426
|
+
print('\n ℹ Also removing Windows-side hooks (leftover from a prior --windows-cc install).');
|
|
427
|
+
}
|
|
428
|
+
includeWindows = windowsHome !== null;
|
|
429
|
+
includeLinux = true;
|
|
430
|
+
}
|
|
431
|
+
else if (savedPlatform === 'native') {
|
|
432
|
+
includeWindows = false;
|
|
433
|
+
includeLinux = true;
|
|
264
434
|
}
|
|
265
435
|
else {
|
|
266
|
-
|
|
436
|
+
// No saved platform (pre-1.0.4 install): clean both paths as a safety net.
|
|
437
|
+
includeWindows = windowsHome !== null;
|
|
438
|
+
includeLinux = true;
|
|
439
|
+
}
|
|
440
|
+
// Map value is the allowedBase for writeJsonFile's symlink guard.
|
|
441
|
+
const settingsPathsToClean = new Map();
|
|
442
|
+
const mcpPathsToClean = new Map();
|
|
443
|
+
if (includeWindows && windowsHome) {
|
|
444
|
+
settingsPathsToClean.set(detectSettingsPath(scope, windowsHome), windowsHome);
|
|
445
|
+
mcpPathsToClean.set(detectMcpConfigPath(scope, windowsHome), windowsHome);
|
|
446
|
+
}
|
|
447
|
+
if (includeLinux) {
|
|
448
|
+
settingsPathsToClean.set(detectSettingsPath(scope, null), undefined);
|
|
449
|
+
mcpPathsToClean.set(detectMcpConfigPath(scope, null), undefined);
|
|
450
|
+
}
|
|
451
|
+
print('');
|
|
452
|
+
let settingsFound = false;
|
|
453
|
+
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;
|
|
466
|
+
print(`✓ Hooks removed: ${settingsPath}`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
if (!settingsFound) {
|
|
470
|
+
print(`No settings file found at ${[...settingsPathsToClean.keys()].join(', ')}. Skipping hooks.`);
|
|
471
|
+
}
|
|
472
|
+
let mcpFound = false;
|
|
473
|
+
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;
|
|
486
|
+
print(`✓ MCP server removed: ${mcpPath}`);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
if (!mcpFound) {
|
|
490
|
+
print(`No MCP config found at ${[...mcpPathsToClean.keys()].join(', ')}. Skipping MCP server.`);
|
|
491
|
+
}
|
|
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.
|
|
498
|
+
if (options.windowsCc) {
|
|
499
|
+
print(' To reinstall Windows Claude Code mode, re-run: preflight install --windows-cc');
|
|
500
|
+
}
|
|
501
|
+
if (!options.linuxCc) {
|
|
502
|
+
clearSavedPlatform();
|
|
267
503
|
}
|
|
268
504
|
print('\nRestart Claude Code for changes to take effect.\n');
|
|
269
505
|
const scheduleWasInstalled = getScheduleStatus().installed;
|
|
@@ -326,11 +562,15 @@ export function createInstallProgram() {
|
|
|
326
562
|
.option('--license-key <key>', 'New Relic license key')
|
|
327
563
|
.option('--account-id <id>', 'New Relic account ID')
|
|
328
564
|
.option('--project', 'Write to project-level .claude/settings.json instead of user-level')
|
|
565
|
+
.option('--windows-cc', 'Target Windows Claude Code (desktop app) when running inside WSL')
|
|
566
|
+
.option('--linux-cc', 'Target Linux Claude Code (npm in WSL) when running inside WSL')
|
|
329
567
|
.action(handleInstall);
|
|
330
568
|
program
|
|
331
569
|
.command('uninstall')
|
|
332
570
|
.description('Remove preflight hooks and MCP server from Claude Code settings')
|
|
333
571
|
.option('--project', 'Remove from project-level .claude/settings.json instead of user-level')
|
|
572
|
+
.option('--windows-cc', 'Remove Windows Claude Code hooks only (WSL only)')
|
|
573
|
+
.option('--linux-cc', 'Remove Linux Claude Code hooks only (WSL only)')
|
|
334
574
|
.action(handleUninstall);
|
|
335
575
|
program
|
|
336
576
|
.command('setup')
|
package/dist/install/cli.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* All functions are side-effect-free — file I/O happens in the CLI layer (cli.ts).
|
|
5
5
|
*/
|
|
6
|
+
import type { PlatformTarget } from '../config.js';
|
|
6
7
|
export interface HookCommand {
|
|
7
8
|
type: 'command';
|
|
8
9
|
command: string;
|
|
@@ -23,13 +24,21 @@ export interface NrObserveConfig {
|
|
|
23
24
|
licenseKey: string;
|
|
24
25
|
accountId: string;
|
|
25
26
|
}
|
|
26
|
-
export declare function generateHookEntries(binPath?: string | null
|
|
27
|
-
|
|
27
|
+
export declare function generateHookEntries(binPath?: string | null, options?: {
|
|
28
|
+
platform?: PlatformTarget;
|
|
29
|
+
}): HookEntries;
|
|
30
|
+
export declare function generateMcpServerEntry(binPath?: string | null, options?: {
|
|
31
|
+
platform?: PlatformTarget;
|
|
32
|
+
}): Record<string, McpServerConfig>;
|
|
28
33
|
export declare function generateNrConfig(licenseKey: string, accountId: string): NrObserveConfig;
|
|
29
|
-
export declare function detectSettingsPath(scope: 'user' | 'project'): string;
|
|
30
|
-
export declare function detectMcpConfigPath(scope: 'user' | 'project'): string;
|
|
31
|
-
export declare function mergeSettings(existing: Record<string, unknown>, binPath?: string | null
|
|
32
|
-
|
|
34
|
+
export declare function detectSettingsPath(scope: 'user' | 'project', windowsHome?: string | null): string;
|
|
35
|
+
export declare function detectMcpConfigPath(scope: 'user' | 'project', windowsHome?: string | null): string;
|
|
36
|
+
export declare function mergeSettings(existing: Record<string, unknown>, binPath?: string | null, options?: {
|
|
37
|
+
platform?: PlatformTarget;
|
|
38
|
+
}): Record<string, unknown>;
|
|
39
|
+
export declare function mergeMcpConfig(existing: Record<string, unknown>, binPath?: string | null, options?: {
|
|
40
|
+
platform?: PlatformTarget;
|
|
41
|
+
}): Record<string, unknown>;
|
|
33
42
|
export declare function removeSettings(existing: Record<string, unknown>): Record<string, unknown>;
|
|
34
43
|
export declare function removeMcpConfig(existing: Record<string, unknown>): Record<string, unknown>;
|
|
35
44
|
//# sourceMappingURL=install-helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helper.d.ts","sourceRoot":"","sources":["../../src/install/install-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"install-helper.d.ts","sourceRoot":"","sources":["../../src/install/install-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAqBnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACtC,WAAW,CAyBb;AAED,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACtC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAajC;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAEvF;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMjG;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,MAAM,CAMR;AA6DD,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsCzB;AAMD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuCzB;AAMD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzF;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB1F"}
|