@ranger-testing/ranger-cli 1.1.6 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +47 -45
  2. package/build/cli.js +671 -291
  3. package/build/cli.js.map +1 -1
  4. package/build/commands/addEnv.js +1 -1
  5. package/build/commands/addEnv.js.map +1 -1
  6. package/build/commands/authEncrypt.js +5 -10
  7. package/build/commands/authEncrypt.js.map +1 -1
  8. package/build/commands/clean.js +1 -1
  9. package/build/commands/clean.js.map +1 -1
  10. package/build/commands/config.js +9 -15
  11. package/build/commands/config.js.map +1 -1
  12. package/build/commands/env.js +10 -13
  13. package/build/commands/env.js.map +1 -1
  14. package/build/commands/feature.js +138 -67
  15. package/build/commands/feature.js.map +1 -1
  16. package/build/commands/hook.js +9 -4
  17. package/build/commands/hook.js.map +1 -1
  18. package/build/commands/hooks/autoPrompt.js +32 -0
  19. package/build/commands/hooks/autoPrompt.js.map +1 -0
  20. package/build/commands/hooks/disable.js +8 -5
  21. package/build/commands/hooks/disable.js.map +1 -1
  22. package/build/commands/hooks/enable.js +16 -9
  23. package/build/commands/hooks/enable.js.map +1 -1
  24. package/build/commands/hooks/exitPlanMode.js +10 -10
  25. package/build/commands/hooks/exitPlanMode.js.map +1 -1
  26. package/build/commands/hooks/index.js +1 -0
  27. package/build/commands/hooks/index.js.map +1 -1
  28. package/build/commands/hooks/output.js +20 -2
  29. package/build/commands/hooks/output.js.map +1 -1
  30. package/build/commands/hooks/planReminder.js +9 -9
  31. package/build/commands/hooks/planReminder.js.map +1 -1
  32. package/build/commands/hooks/planStart.js +6 -6
  33. package/build/commands/hooks/planStart.js.map +1 -1
  34. package/build/commands/hooks/postEdit.js +6 -6
  35. package/build/commands/hooks/postEdit.js.map +1 -1
  36. package/build/commands/hooks/preCompact.js +5 -5
  37. package/build/commands/hooks/preCompact.js.map +1 -1
  38. package/build/commands/hooks/sessionEnd.js +8 -4
  39. package/build/commands/hooks/sessionEnd.js.map +1 -1
  40. package/build/commands/hooks/sessionStart.js +41 -25
  41. package/build/commands/hooks/sessionStart.js.map +1 -1
  42. package/build/commands/hooks/stopHook.js +30 -6
  43. package/build/commands/hooks/stopHook.js.map +1 -1
  44. package/build/commands/index.js +1 -2
  45. package/build/commands/index.js.map +1 -1
  46. package/build/commands/login.js +2 -5
  47. package/build/commands/login.js.map +1 -1
  48. package/build/commands/setupCi.js +189 -0
  49. package/build/commands/setupCi.js.map +1 -0
  50. package/build/commands/skillup.js +16 -68
  51. package/build/commands/skillup.js.map +1 -1
  52. package/build/commands/start.js +1 -1
  53. package/build/commands/start.js.map +1 -1
  54. package/build/commands/status.js +14 -13
  55. package/build/commands/status.js.map +1 -1
  56. package/build/commands/update.js +34 -5
  57. package/build/commands/update.js.map +1 -1
  58. package/build/commands/updateEnv.js +1 -1
  59. package/build/commands/updateEnv.js.map +1 -1
  60. package/build/commands/useEnv.js +1 -1
  61. package/build/commands/useEnv.js.map +1 -1
  62. package/build/commands/utils/activeProfile.js +76 -0
  63. package/build/commands/utils/activeProfile.js.map +1 -0
  64. package/build/commands/utils/browserSessionsApi.js +1 -1
  65. package/build/commands/utils/browserSessionsApi.js.map +1 -1
  66. package/build/commands/utils/desirePathLog.js +39 -34
  67. package/build/commands/utils/desirePathLog.js.map +1 -1
  68. package/build/commands/utils/deviceAuth.js +53 -5
  69. package/build/commands/utils/deviceAuth.js.map +1 -1
  70. package/build/commands/utils/environment.js +11 -12
  71. package/build/commands/utils/environment.js.map +1 -1
  72. package/build/commands/utils/featureApi.js +49 -46
  73. package/build/commands/utils/featureApi.js.map +1 -1
  74. package/build/commands/utils/featureReportGenerator.js +6 -6
  75. package/build/commands/utils/featureReportGenerator.js.map +1 -1
  76. package/build/commands/utils/keychain.js +1 -1
  77. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  78. package/build/commands/utils/profileMessages.js +8 -0
  79. package/build/commands/utils/profileMessages.js.map +1 -0
  80. package/build/commands/utils/profileSetupBanner.js +167 -0
  81. package/build/commands/utils/profileSetupBanner.js.map +1 -0
  82. package/build/commands/utils/retry.js +25 -0
  83. package/build/commands/utils/retry.js.map +1 -0
  84. package/build/commands/utils/sessionCache.js +17 -0
  85. package/build/commands/utils/sessionCache.js.map +1 -1
  86. package/build/commands/utils/settings.js +23 -2
  87. package/build/commands/utils/settings.js.map +1 -1
  88. package/build/commands/utils/skills.js +1 -1
  89. package/build/commands/utils/telemetry.js +254 -0
  90. package/build/commands/utils/telemetry.js.map +1 -0
  91. package/build/commands/utils/userApi.js +4 -4
  92. package/build/commands/utils/userApi.js.map +1 -1
  93. package/build/commands/verifyFeature.js +678 -407
  94. package/build/commands/verifyFeature.js.map +1 -1
  95. package/build/commands/verifyInBrowser.js +1 -1
  96. package/build/commands/verifyInBrowser.js.map +1 -1
  97. package/build/skills/ranger/SKILL.md +65 -64
  98. package/build/skills/ranger/create.md +31 -31
  99. package/build/skills/ranger/feedback.md +25 -17
  100. package/build/skills/ranger/start.md +37 -37
  101. package/build/skills/ranger/verify.md +59 -55
  102. package/package.json +1 -1
  103. package/scripts/postinstall.js +1 -1
  104. package/build/commands/dataMcpServer.js +0 -1
  105. package/build/commands/dataMcpServer.js.map +0 -1
  106. package/build/commands/utils/cliSecret.js +0 -1
  107. package/build/commands/utils/cliSecret.js.map +0 -1
  108. package/build/skills/bug-bash.md +0 -329
  109. package/build/skills/e2e-test-recommender.md +0 -168
@@ -1,13 +1,12 @@
1
1
  export { addEnv } from './addEnv.js';
2
2
  export { clean } from './clean.js';
3
- export { dataMcpServer } from './dataMcpServer.js';
4
3
  export { login } from './login.js';
5
4
  export { start } from './start.js';
6
5
  export { useEnv } from './useEnv.js';
7
6
  export { updateEnv } from './updateEnv.js';
8
- export { verifyInBrowser } from './verifyInBrowser.js';
9
7
  export { update } from './update.js';
10
8
  export { skillup } from './skillup.js';
11
9
  export { envList } from './env.js';
12
10
  export { hook } from './hook.js';
11
+ export { setupCi } from './setupCi.js';
13
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -7,9 +7,7 @@ import { getCurrentUser } from './utils/userApi.js';
7
7
  export async function login() {
8
8
  const isInteractive = process.stdin.isTTY && process.stdout.isTTY;
9
9
  if (!isInteractive) {
10
- console.error('Login requires an interactive terminal.');
11
- console.error('In CI, use: ranger start <token> or set RANGER_MCP_TOKEN.');
12
- process.exit(1);
10
+ throw new Error('Login requires an interactive terminal. In CI, use: ranger setup [token] or set RANGER_MCP_TOKEN.');
13
11
  }
14
12
  try {
15
13
  const token = await runDeviceAuthFlow();
@@ -22,8 +20,7 @@ export async function login() {
22
20
  }
23
21
  }
24
22
  catch (error) {
25
- console.error(`\n❌ Login failed: ${error instanceof Error ? error.message : error}`);
26
- process.exit(1);
23
+ throw new Error(`Login failed: ${error instanceof Error ? error.message : error}`);
27
24
  }
28
25
  }
29
26
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAClE,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CACT,2DAA2D,CAC9D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACT,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CACxE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAClE,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACX,mGAAmG,CACtG,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CACpE,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,189 @@
1
+ import { mkdir, readFile, readdir } from 'fs/promises';
2
+ import { join } from 'path';
3
+ import { existsSync } from 'fs';
4
+ import { authenticate, ensureRangerDir, ensureChromium, writeRangerGitignore, } from './start.js';
5
+ import { skillup } from './skillup.js';
6
+ import { getRangerDir } from './utils/rangerRoot.js';
7
+ import { writeActiveProfileName } from './utils/activeProfile.js';
8
+ import { saveSettings } from './utils/settings.js';
9
+ import { decrypt } from './utils/crypto.js';
10
+ import { getToken } from './utils/keychain.js';
11
+ import { runClaudeCommand, isMarketplaceAdded, isPluginInstalled, } from './utils/claudePlugin.js';
12
+ /**
13
+ * Find a CI profile to activate.
14
+ * If profileName is specified, use it. Otherwise auto-detect from .ranger/ci/.
15
+ */
16
+ async function findCiProfile(profileName) {
17
+ const rangerDir = getRangerDir();
18
+ const ciDir = join(rangerDir, 'ci');
19
+ if (profileName) {
20
+ const profilePath = join(ciDir, profileName);
21
+ // Profile may not exist yet if --base-url will create it
22
+ return { name: profileName, path: profilePath };
23
+ }
24
+ // Auto-detect: scan .ranger/ci/ for directories
25
+ if (!existsSync(ciDir)) {
26
+ throw new Error('No CI profiles found. Create one first with: ranger profile add <name> --ci\n' +
27
+ 'Or specify a profile name with --profile and --base-url to create one.');
28
+ }
29
+ const entries = await readdir(ciDir, { withFileTypes: true });
30
+ const profiles = entries.filter((e) => e.isDirectory()).map((e) => e.name);
31
+ if (profiles.length === 0) {
32
+ throw new Error('No CI profiles found in .ranger/ci/. Create one first with: ranger profile add <name> --ci\n' +
33
+ 'Or specify a profile name with --profile and --base-url to create one.');
34
+ }
35
+ if (profiles.length === 1) {
36
+ const name = profiles[0];
37
+ console.log(`Auto-detected CI profile: ${name}`);
38
+ return { name, path: join(ciDir, name) };
39
+ }
40
+ // Multiple profiles — require --profile flag
41
+ throw new Error(`Multiple CI profiles found: ${profiles.join(', ')}. Use --profile to specify which one.`);
42
+ }
43
+ /**
44
+ * Install Claude Code plugin at project scope (non-interactive).
45
+ */
46
+ async function installPluginNonInteractive() {
47
+ const alreadyInstalled = await isPluginInstalled('ranger@trailhead');
48
+ if (alreadyInstalled) {
49
+ console.log('✓ Claude Code plugin already installed');
50
+ return false;
51
+ }
52
+ console.log('Installing Claude Code plugin (project level)...');
53
+ const marketplaceAlreadyAdded = await isMarketplaceAdded('trailhead');
54
+ let marketplaceReady = marketplaceAlreadyAdded;
55
+ if (marketplaceAlreadyAdded) {
56
+ console.log('✓ Marketplace already added');
57
+ }
58
+ else {
59
+ const result = await runClaudeCommand([
60
+ 'plugin',
61
+ 'marketplace',
62
+ 'add',
63
+ 'ranger-testing/trailhead',
64
+ ]);
65
+ if (!result.success) {
66
+ console.error('Failed to add marketplace:', result.error);
67
+ console.log('You can install manually: claude plugin marketplace add ranger-testing/trailhead');
68
+ }
69
+ else {
70
+ marketplaceReady = true;
71
+ }
72
+ }
73
+ if (marketplaceReady) {
74
+ const result = await runClaudeCommand([
75
+ 'plugin',
76
+ 'install',
77
+ 'ranger@trailhead',
78
+ '--scope',
79
+ 'project',
80
+ ]);
81
+ if (!result.success) {
82
+ console.error('Failed to install plugin:', result.error);
83
+ console.log('You can install manually: claude plugin install ranger@trailhead --scope project');
84
+ }
85
+ else {
86
+ console.log('✓ Claude Code plugin installed');
87
+ }
88
+ }
89
+ return true;
90
+ }
91
+ /**
92
+ * Non-interactive CI setup. Authenticates, installs Chromium, activates a CI profile,
93
+ * installs plugin and skills — all without prompts.
94
+ */
95
+ export async function setupCi(token, options, telemetry) {
96
+ console.log('\n🔧 Ranger CI Setup\n');
97
+ // Phase 1: Auth
98
+ telemetry?.trackPhaseStart('auth');
99
+ await authenticate(token);
100
+ telemetry?.trackPhaseEnd('auth');
101
+ // Phase 2: .ranger/ directory
102
+ telemetry?.trackPhaseStart('dir_setup');
103
+ const { path: rangerDir, installed: dirCreated } = await ensureRangerDir();
104
+ await writeRangerGitignore(rangerDir);
105
+ // Ensure sessions directory exists
106
+ const sessionsDir = join(rangerDir, 'sessions');
107
+ if (!existsSync(sessionsDir)) {
108
+ await mkdir(sessionsDir, { recursive: true });
109
+ }
110
+ telemetry?.trackPhaseEnd('dir_setup', { installed: dirCreated });
111
+ // Phase 3: Chromium
112
+ telemetry?.trackPhaseStart('chromium');
113
+ let chromiumInstalled = false;
114
+ if (options?.skipChromium) {
115
+ console.log('✓ Skipping Chromium check (--skip-chromium)');
116
+ }
117
+ else {
118
+ chromiumInstalled = await ensureChromium();
119
+ }
120
+ telemetry?.trackPhaseEnd('chromium', {
121
+ installed: chromiumInstalled,
122
+ skipped: !!options?.skipChromium,
123
+ });
124
+ // Phase 4: Profile activation
125
+ telemetry?.trackPhaseStart('profile_activate');
126
+ const profile = await findCiProfile(options?.profile);
127
+ // Create/update settings if --base-url provided
128
+ let createdSettings = false;
129
+ if (options?.baseUrl) {
130
+ await mkdir(profile.path, { recursive: true });
131
+ await saveSettings(profile.name, {
132
+ baseUrl: options.baseUrl,
133
+ headless: true,
134
+ });
135
+ console.log(`✓ Created profile settings: baseUrl=${options.baseUrl}`);
136
+ createdSettings = true;
137
+ }
138
+ // Verify profile has settings
139
+ const settingsPath = join(profile.path, 'settings.json');
140
+ if (!existsSync(settingsPath) && !createdSettings) {
141
+ throw new Error(`CI profile "${profile.name}" has no settings.json. Use --base-url to configure it.`);
142
+ }
143
+ // Check auth state
144
+ const authPath = join(profile.path, 'auth.json');
145
+ const encryptedAuthPath = join(profile.path, 'auth.json.enc');
146
+ const hasAuth = existsSync(authPath);
147
+ const hasEncryptedAuth = existsSync(encryptedAuthPath);
148
+ if (hasEncryptedAuth) {
149
+ // Verify we can decrypt it
150
+ try {
151
+ const apiToken = await getToken();
152
+ if (!apiToken) {
153
+ throw new Error('No API token available for decryption');
154
+ }
155
+ const encrypted = await readFile(encryptedAuthPath);
156
+ decrypt(encrypted, apiToken);
157
+ console.log('✓ Encrypted auth verified (will decrypt at runtime)');
158
+ }
159
+ catch (error) {
160
+ const msg = error instanceof Error ? error.message : String(error);
161
+ throw new Error(`Failed to verify encrypted auth for profile "${profile.name}": ${msg}`);
162
+ }
163
+ }
164
+ else if (hasAuth) {
165
+ console.log('✓ Auth state found');
166
+ }
167
+ else {
168
+ console.log(' No auth state found (app may not require authentication)');
169
+ }
170
+ // Set as active profile
171
+ await writeActiveProfileName(profile.name);
172
+ console.log(`✓ Active profile: ${profile.name}`);
173
+ telemetry?.trackPhaseEnd('profile_activate', {
174
+ profileName: profile.name,
175
+ hasAuth,
176
+ hasEncryptedAuth,
177
+ createdSettings,
178
+ });
179
+ // Phase 5: Plugin
180
+ telemetry?.trackPhaseStart('plugin');
181
+ const pluginInstalled = await installPluginNonInteractive();
182
+ telemetry?.trackPhaseEnd('plugin', { installed: pluginInstalled });
183
+ // Phase 6: Skills
184
+ telemetry?.trackPhaseStart('skills');
185
+ await skillup({ autoInstall: 'project' });
186
+ telemetry?.trackPhaseEnd('skills');
187
+ console.log('\n✅ Ranger CI setup complete!\n');
188
+ }
189
+ //# sourceMappingURL=setupCi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupCi.js","sourceRoot":"","sources":["../../src/commands/setupCi.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,9 @@
1
- import { readFile, readdir } from 'fs/promises';
2
- import { join, basename } from 'path';
3
- import { existsSync } from 'fs';
1
+ import { basename } from 'path';
4
2
  import inquirer from 'inquirer';
5
3
  import { getToken } from './utils/keychain.js';
6
4
  import { installSkill } from './utils/skills.js';
7
5
  import { getCurrentVersion } from './utils/version.js';
8
6
  import { getClaudeConfigDir, getProjectRoot, } from './utils/claudeConfig.js';
9
- import { getRangerDir } from './utils/rangerRoot.js';
10
- /**
11
- * Get list of available environment names from .ranger directory
12
- */
13
- async function getAvailableEnvs(rangerDir) {
14
- try {
15
- const entries = await readdir(rangerDir, { withFileTypes: true });
16
- return entries
17
- .filter((entry) => entry.isDirectory())
18
- .map((entry) => entry.name)
19
- .filter((name) => !name.startsWith('.') && name !== 'sessions');
20
- }
21
- catch (error) {
22
- return [];
23
- }
24
- }
25
7
  export async function skillup(options = {}) {
26
8
  console.log('\n🎯 Ranger Skill Setup\n');
27
9
  const token = await getToken();
@@ -29,24 +11,11 @@ export async function skillup(options = {}) {
29
11
  console.log('❌ No Ranger API token found.\n');
30
12
  console.log('To get started:');
31
13
  console.log(' 1. Get your API token from https://dashboard.ranger.net/cli');
32
- console.log(' 2. Run: ranger start <your-api-token>');
14
+ console.log(' 2. Run: ranger setup <your-api-token>');
33
15
  console.log(' 3. Run: ranger skillup\n');
34
16
  return;
35
17
  }
36
18
  console.log('✓ Found API token');
37
- const rangerDir = getRangerDir();
38
- const activeEnvPath = join(rangerDir, 'active-env.txt');
39
- const hasActiveEnv = existsSync(activeEnvPath);
40
- let activeEnv = null;
41
- if (hasActiveEnv) {
42
- try {
43
- activeEnv = (await readFile(activeEnvPath, 'utf-8')).trim();
44
- console.log(`✓ Found active environment: ${activeEnv}`);
45
- }
46
- catch {
47
- console.warn(' Could not read active environment');
48
- }
49
- }
50
19
  const projectRoot = getProjectRoot();
51
20
  const projectName = basename(projectRoot);
52
21
  // Determine install level
@@ -83,47 +52,26 @@ export async function skillup(options = {}) {
83
52
  let installedCount = 0;
84
53
  const cliVersion = getCurrentVersion();
85
54
  console.log('\n📦 Installing skills...\n');
86
- // Install ranger (requires API token AND active environment)
87
- if (activeEnv) {
88
- try {
89
- const featureTrackerInstalled = await installSkill('ranger', {
90
- cliVersion,
91
- level: installLevel,
92
- });
93
- if (featureTrackerInstalled) {
94
- installedCount++;
95
- }
96
- }
97
- catch (error) {
98
- console.warn(' Failed to install ranger skill:', error instanceof Error ? error.message : error);
55
+ // Install ranger (requires API token)
56
+ try {
57
+ const featureTrackerInstalled = await installSkill('ranger', {
58
+ cliVersion,
59
+ level: installLevel,
60
+ });
61
+ if (featureTrackerInstalled) {
62
+ installedCount++;
99
63
  }
100
64
  }
101
- else {
102
- console.log('\n⚠️ Ranger skill not installed (requires active environment)\n');
103
- console.log('To install Ranger skill:');
104
- // Provide context-aware guidance based on whether .ranger directory exists
105
- const hasRangerDir = existsSync(rangerDir);
106
- if (!hasRangerDir) {
107
- console.log(' 1. Run: ranger add env <env-name> (e.g., ranger add env local)');
108
- }
109
- else {
110
- // List available environments
111
- const availableEnvs = await getAvailableEnvs(rangerDir);
112
- if (availableEnvs.length > 0) {
113
- console.log(` 1. Run: ranger use <env-name> (available: ${availableEnvs.join(', ')})`);
114
- console.log(' or: ranger add env <env-name> (to create a new environment)');
115
- }
116
- else {
117
- console.log(' 1. Run: ranger add env <env-name> (e.g., ranger add env local)');
118
- }
119
- }
120
- console.log(' 2. Run: ranger skillup\n');
65
+ catch (error) {
66
+ console.warn(' Failed to install ranger skill:', error instanceof Error ? error.message : error);
121
67
  }
122
68
  if (installedCount > 0) {
123
69
  const levelDesc = installLevel === 'user' ? 'user-level' : 'project-level';
124
70
  console.log(`\n✅ Installed ${installedCount} ${levelDesc} skill${installedCount > 1 ? 's' : ''} successfully!\n`);
125
- console.log('To use:');
126
- console.log(` - Open Claude Code in plan mode and run /ranger:enable. Plan out a UI feature with Ranger and watch Ranger test it for you!`);
71
+ if (!options.suppressUsage) {
72
+ console.log('To use:');
73
+ console.log(` - Open Claude Code in plan mode and run /ranger:enable. Plan out a UI feature with Ranger and watch Ranger test it for you!`);
74
+ }
127
75
  }
128
76
  else {
129
77
  console.log('\n⚠️ No skills were installed.\n');
@@ -1 +1 @@
1
- {"version":3,"file":"skillup.js","sourceRoot":"","sources":["../../src/commands/skillup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skillup.js","sourceRoot":"","sources":["../../src/commands/skillup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAEH,kBAAkB,EAClB,cAAc,GACjB,MAAM,yBAAyB,CAAC;AASjC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAA0B,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CACP,+DAA+D,CAClE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1C,0BAA0B;IAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAClE,IAAI,YAA0B,CAAC;IAE/B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IACvC,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAEnC;YACC;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,mCAAmC;gBAC5C,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,iBAAiB,kBAAkB,EAAE,WAAW;wBACtD,KAAK,EAAE,MAAM;qBAChB;oBACD;wBACI,IAAI,EAAE,sBAAsB,WAAW,mBAAmB;wBAC1D,KAAK,EAAE,SAAS;qBACnB;iBACJ;aACJ;SACJ,CAAC,CAAC;QACH,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IACzC,CAAC;SAAM,CAAC;QACJ,8DAA8D;QAC9D,YAAY,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,GAAG,CACP,6DAA6D,WAAW,mBAAmB,CAC9F,CAAC;IACN,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,sCAAsC;IACtC,IAAI,CAAC;QACD,MAAM,uBAAuB,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE;YACzD,UAAU;YACV,KAAK,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,IAAI,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACR,mCAAmC,EACnC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CACjD,CAAC;IACN,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,SAAS,GACX,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;QAC7D,OAAO,CAAC,GAAG,CACP,iBAAiB,cAAc,IAAI,SAAS,SAAS,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CACvG,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CACP,+HAA+H,CAClI,CAAC;QACN,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- (function(_0xbd885d,_0x3b7ca3){const _0x1bfa0b=_0x3d88,_0x2771b1=_0xbd885d();while(!![]){try{const _0x3f40d0=-parseInt(_0x1bfa0b(0x242))/0x1+-parseInt(_0x1bfa0b(0x1f8))/0x2+parseInt(_0x1bfa0b(0x245))/0x3+parseInt(_0x1bfa0b(0x241))/0x4*(parseInt(_0x1bfa0b(0x22a))/0x5)+-parseInt(_0x1bfa0b(0x23f))/0x6+parseInt(_0x1bfa0b(0x251))/0x7+parseInt(_0x1bfa0b(0x1ee))/0x8*(parseInt(_0x1bfa0b(0x200))/0x9);if(_0x3f40d0===_0x3b7ca3)break;else _0x2771b1['push'](_0x2771b1['shift']());}catch(_0x1c8342){_0x2771b1['push'](_0x2771b1['shift']());}}}(_0x434b,0xc3084));import{mkdir,writeFile}from'fs/promises';import{join}from'path';function _0x434b(){const _0x4ec295=['list','wRhsb','\x0a❌\x20Authentication\x20failed:\x20','\x20\x20\x20\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','WcsTH','prompt','866395QIpgiM','\x20\x203.\x20Run:\x20ranger\x20skillup','You\x20can\x20install\x20it\x20manually\x20by\x20running:','lJEGe','BynLD','KAOyJ','skipChromium','Where\x20should\x20the\x20plugin\x20be\x20installed?','success','error','\x20install\x20chromium','chromium','sHEdS','BDhua','Please\x20run\x20`ranger\x20start`\x20from\x20inside\x20your\x20project\x20directory.','confirm','pluginScope','SuMYF','tLhKf','stdin','Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','1177692gYaYSb','rZffx','12gDpOHt','224860AMcDfU','inherit','hOPrV','4365132AeQExP','ranger-testing/trailhead','uduvS','ybamN','SKILL.md','gyZhZ','\x20level)...\x0a','env','Project\x20(shared\x20with\x20team\x20via\x20git)','zgUqV','eHAzQ','Thruw','2138675bIkccj','sKDDO','RFump','Ittvb','stdout',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','yJlvv','✓\x20Marketplace\x20already\x20added','OqDOU','eUlIr','AXrzz','SKySn','lHUMZ','\x0a⚠\x20Skipping\x20Chromium\x20installation.','8efxGwX','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','✓\x20Stored\x20credentials\x20locally','WwojR','\x0a❌\x20Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','The\x20required\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','install','MElhW','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','VLZvA','2259490neeTzi','log','exit','status','IJfYB','EwEyC','\x20\x20npx\x20playwright@','VESti','623997rqhNQH','The\x20required\x20version\x20(','BRDFD','...','isTTY','Validating\x20API\x20token...','organizationName','Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','ranger','plugin','✓\x20Authenticated\x20to\x20','Would\x20you\x20like\x20to\x20install\x20skills?','message','RRZBV','\x0aYou\x20can\x20install\x20manually\x20with:','PvYMy','resolve','miNgZ','close','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium','marketplace','XOCuZ','FPtNZ','sYYaH','❌\x20Failed\x20to\x20add\x20marketplace:','add','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','\x0a✅\x20Complete!\x20Make\x20sure\x20you\x20have\x20your\x20environment,\x20skill,\x20and\x20plugin\x20installed\x20and\x20you\x20can\x20boot\x20up\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20test\x20a\x20UI\x20feature\x20with\x20Ranger','\x0aNext\x20steps:','\x20\x20npx\x20playwright\x20install\x20chromium','✓\x20Playwright\x20Chromium\x20browser\x20found','user','cTnaJ'];_0x434b=function(){return _0x4ec295;};return _0x434b();}import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x43422f from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{skillup}from'./skillup.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'./utils/claudeConfig.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';function _0x3d88(_0x41c841,_0x557668){_0x41c841=_0x41c841-0x1ec;const _0x434bbc=_0x434b();let _0x3d8829=_0x434bbc[_0x41c841];return _0x3d8829;}const require=createRequire(import.meta.url);function getPlaywrightVersion(){const _0x22bf8a=_0x3d88,_0x12f2c2={'lZgRL':function(_0x58f703,_0x172b59){return _0x58f703(_0x172b59);}};try{const _0x617a68=require[_0x22bf8a(0x211)]('playwright/package.json'),_0x2d4426=_0x12f2c2['lZgRL'](require,_0x617a68);return _0x2d4426['version'];}catch{return null;}}function installChromiumBinary(_0x49ea79){const _0x1e8cd0=_0x3d88,_0x4a7ce2={'cWGVO':function(_0x81a9fa,_0x343bdc){return _0x81a9fa===_0x343bdc;},'AXrzz':function(_0x5b1e1b){return _0x5b1e1b();},'yJlvv':function(_0x40a49e,_0x4cc474){return _0x40a49e(_0x4cc474);},'dDGUg':_0x1e8cd0(0x1f4),'eSjIR':_0x1e8cd0(0x235),'hOPrV':function(_0x5c5ec9,_0xa87c3,_0x564fab,_0x4cb53e){return _0x5c5ec9(_0xa87c3,_0x564fab,_0x4cb53e);},'tLhKf':'npx','rZffx':_0x1e8cd0(0x243),'VLZvA':_0x1e8cd0(0x213),'VESti':'error'};return new Promise((_0x3ef3fa,_0x167946)=>{const _0x401ae5=_0x1e8cd0,_0x3f454d={'bVHTp':function(_0x3baa54,_0x31ce1f){const _0x121817=_0x3d88;return _0x4a7ce2[_0x121817(0x257)](_0x3baa54,_0x31ce1f);}},_0xa20746=_0x49ea79?['playwright@'+_0x49ea79,_0x4a7ce2['dDGUg'],'chromium']:['playwright','install',_0x4a7ce2['eSjIR']],_0x14056c=_0x4a7ce2[_0x401ae5(0x244)](spawn,_0x4a7ce2[_0x401ae5(0x23c)],_0xa20746,{'stdio':_0x4a7ce2[_0x401ae5(0x240)],'shell':!![]});_0x14056c['on'](_0x4a7ce2[_0x401ae5(0x1f7)],_0x414eed=>{const _0x1b1de9=_0x401ae5;_0x4a7ce2['cWGVO'](_0x414eed,0x0)?_0x4a7ce2[_0x1b1de9(0x25b)](_0x3ef3fa):_0x167946(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x414eed));}),_0x14056c['on'](_0x4a7ce2[_0x401ae5(0x1ff)],_0x4b0987=>{_0x3f454d['bVHTp'](_0x167946,_0x4b0987);});});}async function authenticate(_0x5d2183){const _0x412d64=_0x3d88,_0x33f374={'JBdQd':function(_0x27f952){return _0x27f952();},'GyBKO':function(_0x428d76,_0x151ee2){return _0x428d76(_0x151ee2);},'SGeVY':'In\x20CI,\x20pass\x20a\x20token:\x20ranger\x20start\x20<token>','zUmOv':_0x412d64(0x205),'KAOyJ':function(_0xd81afc,_0x4e5c26){return _0xd81afc(_0x4e5c26);},'TteAr':_0x412d64(0x23e),'lHUMZ':_0x412d64(0x207),'EwEyC':function(_0x5815fb,_0x4c9062){return _0x5815fb(_0x4c9062);},'CiPBi':'✓\x20Exported\x20credentials\x20for\x20CI','IJfYB':_0x412d64(0x1f0)};if(!_0x5d2183){const _0x1f0bd2=await _0x33f374['JBdQd'](getToken);if(_0x1f0bd2){const _0x52ca5c=await _0x33f374['GyBKO'](getCurrentUser,_0x1f0bd2);if(_0x52ca5c[_0x412d64(0x232)])return console[_0x412d64(0x1f9)]('✓\x20Already\x20authenticated\x20to\x20'+_0x52ca5c[_0x412d64(0x221)][_0x412d64(0x206)]),_0x1f0bd2;}const _0x2ff9d6=process['stdin']['isTTY']&&process[_0x412d64(0x255)]['isTTY'];!_0x2ff9d6&&(console['error']('❌\x20No\x20token\x20provided\x20and\x20running\x20in\x20non-interactive\x20mode.'),console['error'](_0x33f374['SGeVY']),console['error']('Or\x20set\x20the\x20RANGER_MCP_TOKEN\x20environment\x20variable.'),process['exit'](0x1));try{_0x5d2183=await _0x33f374['JBdQd'](runDeviceAuthFlow);}catch(_0x178342){console['error']('\x0a❌\x20Authentication\x20failed:\x20'+(_0x178342 instanceof Error?_0x178342['message']:_0x178342)),process['exit'](0x1);}const _0x2adb67=await getCurrentUser(_0x5d2183);return!_0x2adb67[_0x412d64(0x232)]&&(console['error'](_0x412d64(0x1f2)+_0x2adb67[_0x412d64(0x233)]),process['exit'](0x1)),console[_0x412d64(0x1f9)](_0x412d64(0x20b)+_0x2adb67['user']['organizationName']),_0x5d2183;}console['log'](_0x33f374['zUmOv']);const _0x52d6ec=await _0x33f374[_0x412d64(0x22f)](getCurrentUser,_0x5d2183);return!_0x52d6ec['success']&&(_0x52d6ec[_0x412d64(0x1fb)]?(console[_0x412d64(0x233)](_0x412d64(0x225)+_0x52d6ec['error']),console['error'](_0x33f374['TteAr'])):(console[_0x412d64(0x233)]('\x0a❌\x20Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x52d6ec[_0x412d64(0x233)]),console['error'](_0x33f374[_0x412d64(0x1ec)])),process['exit'](0x1)),console['log']('✓\x20Authenticated\x20to\x20'+_0x52d6ec[_0x412d64(0x221)][_0x412d64(0x206)]),await _0x33f374[_0x412d64(0x1fd)](storeToken,_0x5d2183),console['log'](process[_0x412d64(0x24c)]['GITHUB_ENV']?_0x33f374['CiPBi']:_0x33f374[_0x412d64(0x1fc)]),_0x5d2183;}async function ensureRangerDir(){const _0x12cc14=_0x3d88,_0x3a7554={'sKDDO':function(_0x5eb40e){return _0x5eb40e();},'XOCuZ':function(_0x5ee289,_0x573ada,_0x3411b5){return _0x5ee289(_0x573ada,_0x3411b5);},'RDxHB':'✓\x20Created\x20.ranger/\x20directory'},_0x5448a9=_0x3a7554[_0x12cc14(0x252)](getRangerDir);return!existsSync(_0x5448a9)?(await _0x3a7554[_0x12cc14(0x216)](mkdir,_0x5448a9,{'recursive':!![]}),console['log'](_0x3a7554['RDxHB'])):console[_0x12cc14(0x1f9)]('✓\x20.ranger/\x20directory\x20already\x20exists'),_0x5448a9;}async function ensureChromium(){const _0x49fc7d=_0x3d88,_0x2b0561={'FPtNZ':function(_0x234ffe,_0x5e9404){return _0x234ffe(_0x5e9404);},'RRZBV':function(_0x46626b){return _0x46626b();},'ZiAdV':'confirm','MbpIc':'\x0aInstalling\x20Chromium\x20browser...\x0a','Ullpd':function(_0x4b6a92,_0x304cf3){return _0x4b6a92(_0x304cf3);},'MElhW':_0x49fc7d(0x21f)};let _0x3031aa=![];try{const _0x1ef522=chromium['executablePath']();_0x3031aa=_0x2b0561[_0x49fc7d(0x217)](existsSync,_0x1ef522);}catch{_0x3031aa=![];}if(_0x3031aa){console[_0x49fc7d(0x1f9)](_0x49fc7d(0x220));return;}const _0x4ab517=_0x2b0561[_0x49fc7d(0x20e)](getPlaywrightVersion),_0x3cb088=process['stdin'][_0x49fc7d(0x204)]&&process[_0x49fc7d(0x255)][_0x49fc7d(0x204)];let _0x585f5f=!![];if(_0x3cb088){const {install:_0x4e1a62}=await _0x43422f[_0x49fc7d(0x229)]([{'type':_0x2b0561['ZiAdV'],'name':'install','message':_0x4ab517?_0x49fc7d(0x201)+_0x4ab517+_0x49fc7d(0x256):_0x49fc7d(0x1f3),'default':!![]}]);_0x585f5f=_0x4e1a62;}else console[_0x49fc7d(0x1f9)](_0x49fc7d(0x214)+(_0x4ab517?'\x20'+_0x4ab517:'')+_0x49fc7d(0x203));if(_0x585f5f){console['log'](_0x2b0561['MbpIc']);try{await _0x2b0561['Ullpd'](installChromiumBinary,_0x4ab517),console[_0x49fc7d(0x1f9)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x1bbab7){console[_0x49fc7d(0x233)](_0x49fc7d(0x21c),_0x1bbab7 instanceof Error?_0x1bbab7[_0x49fc7d(0x20d)]:_0x1bbab7),console['log'](_0x49fc7d(0x22c)),_0x4ab517?console[_0x49fc7d(0x1f9)](_0x49fc7d(0x1fe)+_0x4ab517+'\x20install\x20chromium'):console[_0x49fc7d(0x1f9)](_0x2b0561[_0x49fc7d(0x1f5)]);}}else console['log'](_0x49fc7d(0x1ed)),console[_0x49fc7d(0x1f9)]('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),_0x4ab517?console['log']('\x20\x20npx\x20playwright@'+_0x4ab517+_0x49fc7d(0x234)):console['log'](_0x2b0561['MElhW']);}async function writeRangerGitignore(_0x175cc8){const _0x391be0=_0x3d88,_0xa96ac7={'jeiCd':function(_0x4eccf2,_0x4c5f70,_0x323dfa){return _0x4eccf2(_0x4c5f70,_0x323dfa);},'Cixog':'✓\x20Created\x20.ranger/.gitignore'},_0x305a4c=join(_0x175cc8,'.gitignore'),_0x152bb0='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0a\x0aactive-env.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await _0xa96ac7['jeiCd'](writeFile,_0x305a4c,_0x152bb0),console[_0x391be0(0x1f9)](_0xa96ac7['Cixog']);}async function ensurePlugin(){const _0x285309=_0x3d88,_0x1f0f18={'miNgZ':function(_0x2ba794,_0x1c8021){return _0x2ba794(_0x1c8021);},'SuMYF':function(_0xb36500,_0x313814,_0x3fb66a){return _0xb36500(_0x313814,_0x3fb66a);},'sHEdS':function(_0x5f9926){return _0x5f9926();},'OqDOU':'.claude','RvQin':_0x285309(0x23a),'SKySn':'User\x20(available\x20in\x20all\x20your\x20projects)','fhnRk':_0x285309(0x221),'lMcUH':_0x285309(0x24d),'Thruw':'project','nhMed':'trailhead','cTnaJ':_0x285309(0x258),'iyoxd':_0x285309(0x246),'wktMn':_0x285309(0x219),'lJEGe':'\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','WwojR':'ranger@trailhead','zgUqV':'--scope','xxPnD':'❌\x20Failed\x20to\x20install\x20plugin:','MvoPZ':_0x285309(0x227)},_0x32dc4c=await _0x1f0f18[_0x285309(0x212)](isPluginInstalled,'ranger@trailhead');if(_0x32dc4c){console[_0x285309(0x1f9)](_0x285309(0x1ef));return;}const _0x473e67=_0x1f0f18[_0x285309(0x212)](existsSync,_0x1f0f18[_0x285309(0x23b)](join,_0x1f0f18[_0x285309(0x236)](getProjectRoot),_0x1f0f18[_0x285309(0x259)]));let _0x197094;if(_0x473e67)_0x197094='project';else{console['log'](_0x285309(0x208));const _0x41f32f=await _0x43422f['prompt']([{'type':_0x285309(0x223),'name':_0x1f0f18['RvQin'],'message':_0x285309(0x231),'choices':[{'name':_0x1f0f18[_0x285309(0x25c)],'value':_0x1f0f18['fhnRk']},{'name':_0x1f0f18['lMcUH'],'value':_0x1f0f18[_0x285309(0x250)]}],'default':'user'}]);_0x197094=_0x41f32f['pluginScope'];}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x197094+_0x285309(0x24b));const _0x266f78=await isMarketplaceAdded(_0x1f0f18['nhMed']);let _0x296aea=_0x266f78;if(_0x266f78)console[_0x285309(0x1f9)](_0x1f0f18[_0x285309(0x222)]);else{const _0xf0fde1=await _0x1f0f18['miNgZ'](runClaudeCommand,[_0x285309(0x20a),_0x285309(0x215),_0x285309(0x21a),_0x1f0f18['iyoxd']]);!_0xf0fde1['success']?(console['error'](_0x1f0f18['wktMn'],_0xf0fde1['error']),console['log'](_0x285309(0x20f)),console['log'](_0x1f0f18[_0x285309(0x22d)]),console[_0x285309(0x1f9)](_0x285309(0x21b)+_0x197094)):_0x296aea=!![];}if(_0x296aea){const _0x11a452=await runClaudeCommand(['plugin','install',_0x1f0f18[_0x285309(0x1f1)],_0x1f0f18[_0x285309(0x24e)],_0x197094]);!_0x11a452[_0x285309(0x232)]?(console[_0x285309(0x233)](_0x1f0f18['xxPnD'],_0x11a452['error']),console[_0x285309(0x1f9)](_0x285309(0x20f)),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x197094)):console['log'](_0x1f0f18['MvoPZ']);}}async function ensureLocalEnv(){const _0x227a60=_0x3d88,_0x2a342a={'eUlIr':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20add\x20env\x20local`\x20from\x20your\x20project\x20directory.','Ittvb':'local','nbCxe':function(_0x2e9e5e,_0x44382b){return _0x2e9e5e(_0x44382b);}};if(!findGitRoot()){console[_0x227a60(0x1f9)](_0x2a342a[_0x227a60(0x25a)]);return;}findExistingEnv(_0x2a342a[_0x227a60(0x254)],{'locations':[_0x2a342a['Ittvb']]})?console['log']('✓\x20Local\x20environment\x20already\x20exists'):await _0x2a342a['nbCxe'](addEnv,_0x2a342a[_0x227a60(0x254)]);}async function ensureSkills(){const _0x32ec4b=_0x3d88,_0x43fb37={'PvYMy':function(_0xd6aa,_0x1aef13){return _0xd6aa(_0x1aef13);},'BRDFD':function(_0x1237b4,_0x1f3ab3,_0x24f61a,_0x49419d){return _0x1237b4(_0x1f3ab3,_0x24f61a,_0x49419d);},'ZlQjT':_0x32ec4b(0x249),'wRhsb':_0x32ec4b(0x209),'BDhua':function(_0x52abf4,_0x45dd54){return _0x52abf4||_0x45dd54;},'uduvS':'✓\x20Ranger\x20skills\x20already\x20installed','EUzKD':function(_0x4fa204,_0x42894f,_0x5c8fff){return _0x4fa204(_0x42894f,_0x5c8fff);},'eHAzQ':'project','XxBqN':_0x32ec4b(0x239),'giFei':'wantsSkillup','ybamN':_0x32ec4b(0x20c),'Wdvpa':function(_0x4a9999){return _0x4a9999();}},_0xc94ed8=_0x43fb37['PvYMy'](existsSync,_0x43fb37[_0x32ec4b(0x202)](join,_0x43fb37[_0x32ec4b(0x210)](getSkillsDir,'user'),_0x32ec4b(0x209),_0x43fb37['ZlQjT'])),_0x10848d=_0x43fb37['PvYMy'](existsSync,join(getSkillsDir('project'),_0x43fb37[_0x32ec4b(0x224)],'SKILL.md'));if(_0x43fb37[_0x32ec4b(0x237)](_0xc94ed8,_0x10848d)){console['log'](_0x43fb37[_0x32ec4b(0x247)]);return;}const _0x4310e9=existsSync(_0x43fb37['EUzKD'](join,getProjectRoot(),'.claude'));if(_0x4310e9)await skillup({'autoInstall':_0x43fb37[_0x32ec4b(0x24f)]});else{const {wantsSkillup:_0x14c1b0}=await _0x43422f['prompt']([{'type':_0x43fb37['XxBqN'],'name':_0x43fb37['giFei'],'message':_0x43fb37[_0x32ec4b(0x248)],'default':!![]}]);_0x14c1b0&&await _0x43fb37['Wdvpa'](skillup);}}export async function start(_0x1b935f,_0x3d9187){const _0x3908bb=_0x3d88,_0x474d83={'XgDRP':'\x0a🚀\x20Ranger\x20Setup\x0a','RFump':'❌\x20No\x20git\x20repository\x20found.','WcsTH':_0x3908bb(0x238),'BynLD':function(_0x3c642,_0x1894a0){return _0x3c642(_0x1894a0);},'BGbJM':_0x3908bb(0x1f6),'sYYaH':function(_0x1d5f2e){return _0x1d5f2e();},'iVMJw':'6|3|2|5|4|8|7|0|1','lczTG':'\x20\x201.\x20Navigate\x20to\x20your\x20project\x20directory','tJGxk':_0x3908bb(0x21e),'gyZhZ':_0x3908bb(0x22b),'BHUrh':'Non-interactive\x20mode\x20detected.\x20Skipping\x20optional\x20setup\x20prompts.','CpoSy':_0x3908bb(0x226),'iQTbI':_0x3908bb(0x21d)};console[_0x3908bb(0x1f9)](_0x474d83['XgDRP']);!findGitRoot()&&(console['error'](_0x474d83[_0x3908bb(0x253)]),console['error'](_0x474d83[_0x3908bb(0x228)]),process[_0x3908bb(0x1fa)](0x1));await _0x474d83['BynLD'](authenticate,_0x1b935f);const _0xc254e1=await ensureRangerDir();_0x3d9187?.[_0x3908bb(0x230)]?console[_0x3908bb(0x1f9)](_0x474d83['BGbJM']):await _0x474d83['sYYaH'](ensureChromium);await _0x474d83[_0x3908bb(0x22e)](writeRangerGitignore,_0xc254e1),console[_0x3908bb(0x1f9)]('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x33c140=process[_0x3908bb(0x23d)]['isTTY']&&process['stdout'][_0x3908bb(0x204)];if(!_0x33c140){const _0x39baa8=_0x474d83['iVMJw']['split']('|');let _0x1b327e=0x0;while(!![]){switch(_0x39baa8[_0x1b327e++]){case'0':console[_0x3908bb(0x1f9)]('\x20\x20\x20\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x0a');continue;case'1':return;case'2':console['log'](_0x474d83['lczTG']);continue;case'3':console['log'](_0x474d83['tJGxk']);continue;case'4':console[_0x3908bb(0x1f9)](_0x474d83[_0x3908bb(0x24a)]);continue;case'5':console['log']('\x20\x202.\x20Run:\x20ranger\x20add\x20env\x20local');continue;case'6':console['log'](_0x474d83['BHUrh']);continue;case'7':console[_0x3908bb(0x1f9)](_0x474d83['CpoSy']);continue;case'8':console[_0x3908bb(0x1f9)]('\x20\x204.\x20Install\x20Claude\x20Code\x20plugin:');continue;}break;}}await ensurePlugin(),await _0x474d83[_0x3908bb(0x218)](ensureLocalEnv),await ensureSkills(),console['log'](_0x474d83['iQTbI']);}
1
+ const _0x243794=_0x4d26;(function(_0x1d11d5,_0x4216cb){const _0x2d4548=_0x4d26,_0x3e781e=_0x1d11d5();while(!![]){try{const _0x319b29=-parseInt(_0x2d4548(0xae))/0x1+parseInt(_0x2d4548(0x9a))/0x2*(-parseInt(_0x2d4548(0xb3))/0x3)+-parseInt(_0x2d4548(0xdf))/0x4+parseInt(_0x2d4548(0xba))/0x5+parseInt(_0x2d4548(0xcb))/0x6+parseInt(_0x2d4548(0xc3))/0x7*(parseInt(_0x2d4548(0xe6))/0x8)+-parseInt(_0x2d4548(0x8b))/0x9*(parseInt(_0x2d4548(0x9f))/0xa);if(_0x319b29===_0x4216cb)break;else _0x3e781e['push'](_0x3e781e['shift']());}catch(_0x42905d){_0x3e781e['push'](_0x3e781e['shift']());}}}(_0x2dc8,0xa008d));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x1f68b5 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{skillup}from'./skillup.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'./utils/claudeConfig.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x2dc8(){const _0x1f71ac=['3vaXtmi','\x0aNext\x20steps:','user','profile','RPGMk','trackPhaseStart','rVLiM','5954055bEZWsi','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','❌\x20Failed\x20to\x20install\x20plugin:','prompt','close','yXjer','\x20\x201.\x20Navigate\x20to\x20your\x20project\x20directory','KSbMM','EKRIj','670145wNXxyc','CKrnp','RtyFh','✓\x20Ranger\x20skills\x20already\x20installed','No\x20token\x20provided\x20and\x20running\x20in\x20non-interactive\x20mode.\x20In\x20CI,\x20pass\x20a\x20token:\x20ranger\x20setup\x20[token].\x20Or\x20set\x20the\x20RANGER_MCP_TOKEN\x20environment\x20variable.','DFWcj','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','log','452958txgsWI','vbTXu','.gitignore','error','✓\x20Stored\x20credentials\x20locally','skipChromium','chromium','YrpZK','\x20\x20npx\x20playwright@','✓\x20Local\x20profile\x20already\x20exists','RCZOm','SIQJe','⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','project','\x0a❌\x20Profile\x20setup\x20failed:','lRvFJ','env','✓\x20Already\x20authenticated\x20to\x20','vTNHb','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','1953692lyCZef','use\x20until\x20the\x20session\x20expires.\x0a','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','You\x20can\x20install\x20it\x20manually\x20by\x20running:','neVrz','playwright','88PUmpdw','ZQgmI','TntMv','\x1b[0m','list','organizationName','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','Non-interactive\x20mode\x20detected.\x20Skipping\x20optional\x20setup\x20prompts.','ready','ranger@trailhead','\x0aInstalling\x20Chromium\x20browser...\x0a','\x20\x204.\x20Run:\x20ranger\x20profile\x20add\x20local','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','✓\x20Marketplace\x20already\x20added','isTTY','xvURT','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','gJYph','resolve','PVBhF','BBjJW','\x0aIn\x20Claude\x20Code,\x20run\x20','fVYBR','EdlGr','✓\x20Exported\x20credentials\x20for\x20CI','RRhIl','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','180bJKfTE','DbFXY','\x20level)...\x0a','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium','stdin','confirm','aqQRO','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','\x20\x20npx\x20playwright\x20install\x20chromium','hHvDL','DOHpM','status','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','stdout','rbCZp','945122GEUHTg','/ranger:enable','LYvGZ','RDucH','install','234380ugsuGb','KXPbj','ggNdq','SdXzM','installed','ycOxL','RNwrZ','✓\x20Playwright\x20Chromium\x20browser\x20found','nGMpE','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','--scope','playwright@','DgYTl','executablePath','gaexh','234144dRwRbh','\x20\x20\x20\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','success','The\x20required\x20version\x20(','wantsSkillup'];_0x2dc8=function(){return _0x1f71ac;};return _0x2dc8();}import{findExistingEnv}from'./utils/settings.js';const require=createRequire(import.meta.url),bold=_0x121cea=>'\x1b[1m'+_0x121cea+_0x243794(0xe9);function _0x4d26(_0x7d18ce,_0x2df620){_0x7d18ce=_0x7d18ce-0x86;const _0x2dc8b0=_0x2dc8();let _0x4d268a=_0x2dc8b0[_0x7d18ce];return _0x4d268a;}function getPlaywrightVersion(){const _0x4b199a=_0x243794,_0x123804={'mqvWW':'playwright/package.json'};try{const _0x3d461a=require[_0x4b199a(0xf8)](_0x123804['mqvWW']),_0x14f56c=require(_0x3d461a);return _0x14f56c['version'];}catch{return null;}}function installChromiumBinary(_0xccb858){const _0x109f08={'SdXzM':'install'};return new Promise((_0x23939b,_0x5be31d)=>{const _0x582b70=_0x4d26,_0x657228=_0xccb858?[_0x582b70(0xaa)+_0xccb858,_0x109f08['SdXzM'],_0x582b70(0xd1)]:[_0x582b70(0xe5),_0x109f08[_0x582b70(0xa2)],'chromium'],_0x20f76b=spawn('npx',_0x657228,{'stdio':'inherit','shell':!![]});_0x20f76b['on'](_0x582b70(0xbe),_0x526be6=>{_0x526be6===0x0?_0x23939b():_0x5be31d(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x526be6));}),_0x20f76b['on'](_0x582b70(0xce),_0x279cd8=>{_0x5be31d(_0x279cd8);});});}export async function authenticate(_0x3d3427){const _0x48ba54=_0x243794,_0x46a8f2={'eppdO':function(_0x492a89){return _0x492a89();},'rVLiM':_0x48ba54(0xc7),'CKrnp':function(_0x30a1b9,_0x55cb20){return _0x30a1b9(_0x55cb20);},'MmdFH':_0x48ba54(0xcf)};if(!_0x3d3427){const _0x17e5fa=await _0x46a8f2['eppdO'](getToken);if(_0x17e5fa){const _0x150ddc=await getCurrentUser(_0x17e5fa);if(_0x150ddc['success'])return console['log'](_0x48ba54(0xdc)+_0x150ddc[_0x48ba54(0xb5)][_0x48ba54(0xeb)]),_0x17e5fa;}const _0x52ff42=process[_0x48ba54(0x8f)]['isTTY']&&process['stdout']['isTTY'];if(!_0x52ff42)throw new Error(_0x46a8f2[_0x48ba54(0xb9)]);try{_0x3d3427=await runDeviceAuthFlow();}catch(_0x226080){throw new Error('Authentication\x20failed:\x20'+(_0x226080 instanceof Error?_0x226080['message']:_0x226080));}const _0x4be18d=await _0x46a8f2[_0x48ba54(0xc4)](getCurrentUser,_0x3d3427);if(!_0x4be18d[_0x48ba54(0xb0)])throw new Error(_0x48ba54(0x8a)+_0x4be18d['error']);return console[_0x48ba54(0xca)]('✓\x20Authenticated\x20to\x20'+_0x4be18d['user'][_0x48ba54(0xeb)]),_0x3d3427;}console[_0x48ba54(0xca)]('Validating\x20API\x20token...');const _0x27c1e1=await _0x46a8f2[_0x48ba54(0xc4)](getCurrentUser,_0x3d3427);if(!_0x27c1e1['success']){if(_0x27c1e1[_0x48ba54(0x96)])throw new Error('Authentication\x20failed:\x20'+_0x27c1e1[_0x48ba54(0xce)]+_0x48ba54(0xe2));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x27c1e1[_0x48ba54(0xce)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x48ba54(0xca)]('✓\x20Authenticated\x20to\x20'+_0x27c1e1['user'][_0x48ba54(0xeb)]),await _0x46a8f2[_0x48ba54(0xc4)](storeToken,_0x3d3427),console[_0x48ba54(0xca)](process[_0x48ba54(0xdb)]['GITHUB_ENV']?_0x48ba54(0x88):_0x46a8f2['MmdFH']),_0x3d3427;}export async function ensureRangerDir(){const _0x5781e1=_0x243794,_0x26b1f9={'RCZOm':function(_0x5bf8b5,_0x78e17d){return _0x5bf8b5(_0x78e17d);}},_0x48634f=getRangerDir();return!_0x26b1f9[_0x5781e1(0xd5)](existsSync,_0x48634f)?(await mkdir(_0x48634f,{'recursive':!![]}),console['log']('✓\x20Created\x20.ranger/\x20directory'),{'path':_0x48634f,'installed':!![]}):(console[_0x5781e1(0xca)]('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x48634f,'installed':![]});}export async function ensureChromium(){const _0x3eaaf9=_0x243794,_0x1c9624={'DbFXY':function(_0x51987a,_0x1cbc23){return _0x51987a(_0x1cbc23);},'WxqAF':_0x3eaaf9(0xa6),'aqQRO':function(_0x133046){return _0x133046();},'TntMv':'confirm','pCpIQ':'install','KXPbj':'The\x20required\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','neVrz':_0x3eaaf9(0x97),'DgYTl':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','xKqCD':function(_0x5715f1,_0x4f23ba){return _0x5715f1 instanceof _0x4f23ba;},'STTuG':_0x3eaaf9(0xe3),'LYvGZ':_0x3eaaf9(0x93)};let _0x1cd56e=![];try{const _0x1e12d8=chromium[_0x3eaaf9(0xac)]();_0x1cd56e=_0x1c9624['DbFXY'](existsSync,_0x1e12d8);}catch{_0x1cd56e=![];}if(_0x1cd56e)return console[_0x3eaaf9(0xca)](_0x1c9624['WxqAF']),![];const _0x1dcb04=_0x1c9624[_0x3eaaf9(0x91)](getPlaywrightVersion),_0x1b8a64=process['stdin'][_0x3eaaf9(0xf4)]&&process[_0x3eaaf9(0x98)][_0x3eaaf9(0xf4)];let _0x5cbaa9=!![];if(_0x1b8a64){const {install:_0x1cda98}=await _0x1f68b5['prompt']([{'type':_0x1c9624[_0x3eaaf9(0xe8)],'name':_0x1c9624['pCpIQ'],'message':_0x1dcb04?_0x3eaaf9(0xb1)+_0x1dcb04+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?':_0x1c9624[_0x3eaaf9(0xa0)],'default':!![]}]);_0x5cbaa9=_0x1cda98;}else console[_0x3eaaf9(0xca)](_0x3eaaf9(0x8e)+(_0x1dcb04?'\x20'+_0x1dcb04:'')+'...');if(_0x5cbaa9){console[_0x3eaaf9(0xca)](_0x3eaaf9(0xf0));try{await _0x1c9624[_0x3eaaf9(0x8c)](installChromiumBinary,_0x1dcb04),console[_0x3eaaf9(0xca)](_0x1c9624[_0x3eaaf9(0xe4)]);}catch(_0x3c35fe){console['error'](_0x1c9624[_0x3eaaf9(0xab)],_0x1c9624['xKqCD'](_0x3c35fe,Error)?_0x3c35fe['message']:_0x3c35fe),console[_0x3eaaf9(0xca)](_0x1c9624['STTuG']),_0x1dcb04?console['log']('\x20\x20npx\x20playwright@'+_0x1dcb04+'\x20install\x20chromium'):console['log'](_0x1c9624[_0x3eaaf9(0x9c)]);}}else console[_0x3eaaf9(0xca)]('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console[_0x3eaaf9(0xca)](_0x3eaaf9(0xde)),_0x1dcb04?console[_0x3eaaf9(0xca)](_0x3eaaf9(0xd3)+_0x1dcb04+'\x20install\x20chromium'):console['log'](_0x1c9624[_0x3eaaf9(0x9c)]);return!![];}export async function writeRangerGitignore(_0x2dfc06){const _0x160743=_0x243794,_0x518408={'opqGD':function(_0x188d58,_0x3cee63,_0x5139f9){return _0x188d58(_0x3cee63,_0x5139f9);},'tmDzq':function(_0x462c7e,_0x2bbb6e,_0x11630f){return _0x462c7e(_0x2bbb6e,_0x11630f);}},_0x35124d=_0x518408['opqGD'](join,_0x2dfc06,_0x160743(0xcd)),_0x2a0665='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await _0x518408['tmDzq'](writeFile,_0x35124d,_0x2a0665),console['log']('✓\x20Created\x20.ranger/.gitignore');}async function ensurePlugin(){const _0x2c1ae6=_0x243794,_0x38b0a0={'ujXph':function(_0x172db4,_0x6d7370){return _0x172db4(_0x6d7370);},'DFWcj':_0x2c1ae6(0xef),'kpToc':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','ycOxL':function(_0x3ba05f,_0x48a0a6,_0x3a7931){return _0x3ba05f(_0x48a0a6,_0x3a7931);},'vTNHb':_0x2c1ae6(0xf6),'vetOS':_0x2c1ae6(0xea),'RNwrZ':'pluginScope','xTCto':'Project\x20(shared\x20with\x20team\x20via\x20git)','EdlGr':_0x2c1ae6(0xd8),'BBjJW':'trailhead','ewZPr':_0x2c1ae6(0xf3),'RRhIl':'\x0aYou\x20can\x20install\x20manually\x20with:','ODmPe':'\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','zgTSX':'plugin','LVJcM':_0x2c1ae6(0x9e),'YrpZK':_0x2c1ae6(0xa9),'sdhSU':_0x2c1ae6(0xbc)},_0x4601eb=await _0x38b0a0['ujXph'](isPluginInstalled,_0x38b0a0[_0x2c1ae6(0xc8)]);if(_0x4601eb)return console[_0x2c1ae6(0xca)](_0x38b0a0['kpToc']),![];const _0x997d06=existsSync(_0x38b0a0[_0x2c1ae6(0xa4)](join,getProjectRoot(),'.claude'));let _0xb14f45;if(_0x997d06)_0xb14f45='project';else{console['log'](_0x38b0a0[_0x2c1ae6(0xdd)]);const _0x3b105b=await _0x1f68b5['prompt']([{'type':_0x38b0a0['vetOS'],'name':_0x38b0a0[_0x2c1ae6(0xa5)],'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':'user'},{'name':_0x38b0a0['xTCto'],'value':_0x38b0a0[_0x2c1ae6(0x87)]}],'default':'user'}]);_0xb14f45=_0x3b105b['pluginScope'];}console[_0x2c1ae6(0xca)](_0x2c1ae6(0x92)+_0xb14f45+_0x2c1ae6(0x8d));const _0x392139=await isMarketplaceAdded(_0x38b0a0[_0x2c1ae6(0xfa)]);let _0x2ec007=_0x392139;if(_0x392139)console[_0x2c1ae6(0xca)](_0x38b0a0['ewZPr']);else{const _0x248245=await runClaudeCommand(['plugin','marketplace','add','ranger-testing/trailhead']);!_0x248245['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x248245['error']),console[_0x2c1ae6(0xca)](_0x38b0a0[_0x2c1ae6(0x89)]),console['log'](_0x38b0a0['ODmPe']),console[_0x2c1ae6(0xca)](_0x2c1ae6(0xe1)+_0xb14f45)):_0x2ec007=!![];}if(_0x2ec007){const _0x57af9f=await runClaudeCommand([_0x38b0a0['zgTSX'],_0x38b0a0['LVJcM'],_0x38b0a0['DFWcj'],_0x38b0a0[_0x2c1ae6(0xd2)],_0xb14f45]);!_0x57af9f[_0x2c1ae6(0xb0)]?(console['error'](_0x38b0a0['sdhSU'],_0x57af9f['error']),console[_0x2c1ae6(0xca)](_0x38b0a0['RRhIl']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0xb14f45)):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');}return!![];}function printProfileSetupLaterInstructions(){const _0x1ad970=_0x243794,_0x797f15={'fmdrh':_0x1ad970(0xc9)};console['log']('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console['log']('\x20\x20'+bold('ranger\x20profile\x20add\x20local')),console[_0x1ad970(0xca)](_0x797f15['fmdrh']);}async function ensureLocalEnv(_0x19e8c0){const _0x29e006=_0x243794,_0x491edd={'ggNdq':function(_0x3e594d){return _0x3e594d();},'fVYBR':'local','gaexh':_0x29e006(0xd4),'IYSCL':'You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','rbCZp':_0x29e006(0x90),'SFPYR':'wantsProfile','INtve':function(_0x4c04f3){return _0x4c04f3();},'KSbMM':function(_0x58981a,_0x3550ec){return _0x58981a instanceof _0x3550ec;}};if(!_0x491edd[_0x29e006(0xa1)](findGitRoot))return console[_0x29e006(0xca)](_0x29e006(0xd7)),{'ready':![],'installed':![]};if(findExistingEnv('local',{'locations':[_0x491edd['fVYBR']]}))return console[_0x29e006(0xca)](_0x491edd[_0x29e006(0xad)]),{'ready':!![],'installed':![]};console['log']('\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how'),console['log']('to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind'),console[_0x29e006(0xca)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console[_0x29e006(0xca)](_0x29e006(0xe0)),console['log'](_0x491edd['IYSCL']);const {wantsProfile:_0x13ed40}=await _0x1f68b5['prompt']([{'type':_0x491edd[_0x29e006(0x99)],'name':_0x491edd['SFPYR'],'message':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','default':!![]}]);if(!_0x13ed40)return _0x491edd['INtve'](printProfileSetupLaterInstructions),{'ready':![],'installed':![]};try{return await addEnv(_0x491edd[_0x29e006(0x86)],{},_0x19e8c0),{'ready':!![],'installed':!![]};}catch(_0x39bd42){return console['error'](_0x29e006(0xd9),_0x491edd[_0x29e006(0xc1)](_0x39bd42,Error)?_0x39bd42['message']:_0x39bd42),printProfileSetupLaterInstructions(),{'ready':![],'installed':![]};}}async function ensureSkills(){const _0xe238e0=_0x243794,_0x646388={'vbTXu':function(_0x3a08fe,_0x53bc46){return _0x3a08fe(_0x53bc46);},'cXaLZ':function(_0x57f64c,_0x4e6857,_0x5528db,_0xd29c0e){return _0x57f64c(_0x4e6857,_0x5528db,_0xd29c0e);},'yXjer':_0xe238e0(0xb5),'ZwtTy':_0xe238e0(0xd8),'RDucH':'ranger','Tadrd':_0xe238e0(0xc6),'yNQkI':function(_0x1ce954,_0x45eed7){return _0x1ce954(_0x45eed7);},'zrsqo':'.claude','DOHpM':_0xe238e0(0x90),'nZhFs':'Would\x20you\x20like\x20to\x20install\x20skills?'},_0x3316d3=_0x646388[_0xe238e0(0xcc)](existsSync,_0x646388['cXaLZ'](join,_0x646388['vbTXu'](getSkillsDir,_0x646388[_0xe238e0(0xbf)]),'ranger','SKILL.md')),_0x26b1a2=existsSync(join(getSkillsDir(_0x646388['ZwtTy']),_0x646388[_0xe238e0(0x9d)],'SKILL.md'));if(_0x3316d3||_0x26b1a2)return console[_0xe238e0(0xca)](_0x646388['Tadrd']),![];const _0x2a0be1=_0x646388['yNQkI'](existsSync,join(getProjectRoot(),_0x646388['zrsqo']));if(_0x2a0be1)await _0x646388[_0xe238e0(0xcc)](skillup,{'autoInstall':_0xe238e0(0xd8),'suppressUsage':!![]});else{const {wantsSkillup:_0x3de3a0}=await _0x1f68b5[_0xe238e0(0xbd)]([{'type':_0x646388[_0xe238e0(0x95)],'name':_0xe238e0(0xb2),'message':_0x646388['nZhFs'],'default':!![]}]);_0x3de3a0&&await skillup({'suppressUsage':!![]});}return!![];}export async function start(_0x5e18e4,_0xb43b5a,_0x4376dc){const _0x53ee7c=_0x243794,_0x434290={'SIQJe':function(_0x4e350c){return _0x4e350c();},'ZQgmI':'auth','PVBhF':'dir_setup','HDwEW':'chromium','JNFtD':_0x53ee7c(0xa8),'dcftU':function(_0x176bc2){return _0x176bc2();},'gJYph':function(_0x478473,_0x208c43){return _0x478473(_0x208c43);},'RtyFh':_0x53ee7c(0xf2),'abDBL':_0x53ee7c(0xed),'nGMpE':_0x53ee7c(0xb4),'qUEzh':_0x53ee7c(0xc0),'TQOSK':'\x20\x202.\x20Run:\x20ranger\x20skillup','lRvFJ':'\x20\x203.\x20Install\x20Claude\x20Code\x20plugin:','jwTxL':_0x53ee7c(0xf1),'hHvDL':'plugin','xvURT':'skills','RPGMk':function(_0x50d269){return _0x50d269();},'yyYPO':function(_0x7e951b,_0x4a3d75){return _0x7e951b(_0x4a3d75);},'EKRIj':_0x53ee7c(0x9b),'aJwbX':function(_0x9883ba,_0x46e8f6){return _0x9883ba+_0x46e8f6;}};console[_0x53ee7c(0xca)]('\x0a🚀\x20Ranger\x20Setup\x0a');if(!_0x434290[_0x53ee7c(0xd6)](findGitRoot))throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');_0x4376dc?.['trackPhaseStart'](_0x434290[_0x53ee7c(0xe7)]),await authenticate(_0x5e18e4),_0x4376dc?.['trackPhaseEnd'](_0x434290[_0x53ee7c(0xe7)]),_0x4376dc?.['trackPhaseStart'](_0x434290['PVBhF']);const {path:_0x790338,installed:_0x152890}=await _0x434290[_0x53ee7c(0xd6)](ensureRangerDir);_0x4376dc?.['trackPhaseEnd'](_0x434290[_0x53ee7c(0xf9)],{'installed':_0x152890}),_0x4376dc?.[_0x53ee7c(0xb8)](_0x434290['HDwEW']);let _0x4972cc=![];_0xb43b5a?.['skipChromium']?console['log'](_0x434290['JNFtD']):_0x4972cc=await _0x434290['dcftU'](ensureChromium);_0x4376dc?.['trackPhaseEnd'](_0x434290['HDwEW'],{'installed':_0x4972cc,'skipped':!!_0xb43b5a?.[_0x53ee7c(0xd0)]}),await _0x434290[_0x53ee7c(0xf7)](writeRangerGitignore,_0x790338),console['log'](_0x434290[_0x53ee7c(0xc5)]);const _0x1b914a=process[_0x53ee7c(0x8f)][_0x53ee7c(0xf4)]&&process['stdout'][_0x53ee7c(0xf4)];if(!_0x1b914a){console[_0x53ee7c(0xca)](_0x434290['abDBL']),console['log'](_0x434290[_0x53ee7c(0xa7)]),console[_0x53ee7c(0xca)](_0x434290['qUEzh']),console[_0x53ee7c(0xca)](_0x434290['TQOSK']),console['log'](_0x434290[_0x53ee7c(0xda)]),console['log'](_0x53ee7c(0xaf)),console['log']('\x20\x20\x20\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x0a'),console[_0x53ee7c(0xca)](_0x434290['jwTxL']);return;}_0x4376dc?.[_0x53ee7c(0xb8)]('plugin');const _0x2aca20=await ensurePlugin();_0x4376dc?.['trackPhaseEnd'](_0x434290[_0x53ee7c(0x94)],{'installed':_0x2aca20}),_0x4376dc?.['trackPhaseStart'](_0x434290['xvURT']);const _0x5cfa9f=await _0x434290[_0x53ee7c(0xb7)](ensureSkills);_0x4376dc?.['trackPhaseEnd'](_0x434290[_0x53ee7c(0xf5)],{'installed':_0x5cfa9f}),_0x4376dc?.[_0x53ee7c(0xb8)](_0x53ee7c(0xb6));const _0x3b17f7=await _0x434290['yyYPO'](ensureLocalEnv,_0x4376dc);_0x4376dc?.['trackPhaseEnd']('profile',{'installed':_0x3b17f7[_0x53ee7c(0xa3)]});const _0x594468=_0x3b17f7[_0x53ee7c(0xee)],_0xb425b7=bold(_0x434290[_0x53ee7c(0xc2)]);_0x594468&&console[_0x53ee7c(0xca)]('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.'),console['log'](_0x434290['aJwbX'](_0x53ee7c(0xfb)+_0xb425b7+'\x20and\x20prompt\x20the\x20coding','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+_0x53ee7c(0xec)+_0x53ee7c(0xbb));}
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}