@ranger-testing/ranger-cli 2.0.0 → 2.0.1

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.
@@ -1,7 +1,8 @@
1
+ import { open } from 'fs/promises';
1
2
  import { getToken } from '../utils/keychain.js';
2
3
  import { getFeature, concludeSession } from '../utils/featureApi.js';
3
4
  import { getSessionEntry } from '../utils/sessionCache.js';
4
- import { getEnabledSessionId } from './output.js';
5
+ import { getEnabledHookContext } from './output.js';
5
6
  import { createTelemetryCollector } from '../utils/telemetry.js';
6
7
  /**
7
8
  * Stop hook handler
@@ -10,7 +11,12 @@ import { createTelemetryCollector } from '../utils/telemetry.js';
10
11
  * Attempts to conclude the feature review session before allowing stop.
11
12
  */
12
13
  export async function stopHook(sessionIdOverride) {
13
- const sessionId = await getEnabledSessionId(sessionIdOverride);
14
+ const context = await getEnabledHookContext(sessionIdOverride);
15
+ const sessionId = context?.sessionId ?? null;
16
+ const stopHookActive = Boolean(context?.input?.stop_hook_active);
17
+ const transcriptPath = typeof context?.input?.transcript_path === 'string'
18
+ ? context.input.transcript_path
19
+ : null;
14
20
  let stopAllowed = true;
15
21
  if (!sessionId) {
16
22
  await trackStop(sessionId, false, stopAllowed);
@@ -24,36 +30,69 @@ export async function stopHook(sessionIdOverride) {
24
30
  await trackStop(sessionId, true, stopAllowed);
25
31
  return;
26
32
  }
33
+ const dashboardUrl = `https://dashboard.ranger.net/features/${sessionEntry.featureId}`;
34
+ const skipToken = 'RANGER_SKIP_VERIFICATION';
27
35
  const token = await getToken();
28
- if (!token) {
29
- // No token configured - allow stop
30
- await trackStop(sessionId, true, stopAllowed);
31
- return;
36
+ const shouldRemind = !stopHookActive;
37
+ let featureName = null;
38
+ let currentSessionId = null;
39
+ const skipRequested = stopHookActive &&
40
+ (await transcriptHasToken(transcriptPath, skipToken));
41
+ const linkIncluded = await transcriptHasToken(transcriptPath, dashboardUrl);
42
+ if (token) {
43
+ try {
44
+ const feature = await getFeature(sessionEntry.featureId);
45
+ featureName = feature.name ?? null;
46
+ currentSessionId = feature.currentSessionId ?? null;
47
+ }
48
+ catch {
49
+ // Fail open for feature lookup
50
+ }
32
51
  }
33
- // Get the feature
34
- const feature = await getFeature(sessionEntry.featureId);
35
- // If there's no current session, allow stop
36
- if (!feature.currentSessionId) {
52
+ if (skipRequested && !linkIncluded) {
53
+ stopAllowed = false;
54
+ const output = {
55
+ decision: 'block',
56
+ reason: `Before ending, include a final message with the feature review link (${dashboardUrl}) and direct the user to visit it. If you are skipping verification, keep \`${skipToken}\` in that final message, then run /exit again.`,
57
+ };
58
+ console.log(JSON.stringify(output));
37
59
  await trackStop(sessionId, true, stopAllowed);
38
60
  return;
39
61
  }
40
- // Try to conclude the session
41
- try {
42
- await concludeSession(feature.id, feature.currentSessionId);
43
- await trackStop(sessionId, true, stopAllowed);
44
- return;
62
+ // Try to conclude the session if we have one
63
+ if (token && currentSessionId) {
64
+ try {
65
+ await concludeSession(sessionEntry.featureId, currentSessionId);
66
+ }
67
+ catch (err) {
68
+ if (skipRequested && linkIncluded) {
69
+ await trackStop(sessionId, true, stopAllowed);
70
+ return;
71
+ }
72
+ // Failed to conclude - block with error message
73
+ stopAllowed = false;
74
+ const errorMessage = err instanceof Error ? err.message : String(err);
75
+ const output = {
76
+ decision: 'block',
77
+ reason: `Failed to conclude Ranger feature review session${featureName ? ` for "${featureName}"` : ''}:\n\n${errorMessage}\n\nThis is most likely due to pending scenarios that need to be verified. Please resolve the issue or resume later with:\n ranger resume\n\nIf you are extremely sure this is the user's requirement and want to skip verification for now, send a final message that includes the feature review link (${dashboardUrl}) and the token \`${skipToken}\`, then run /exit again.`,
78
+ };
79
+ console.log(JSON.stringify(output));
80
+ await trackStop(sessionId, true, stopAllowed);
81
+ return;
82
+ }
45
83
  }
46
- catch (err) {
47
- // Failed to conclude - block with error message
84
+ if (shouldRemind) {
48
85
  stopAllowed = false;
49
- const errorMessage = err instanceof Error ? err.message : String(err);
50
86
  const output = {
51
87
  decision: 'block',
52
- reason: `Failed to conclude Ranger feature review session for "${feature.name}":\n\n${errorMessage}\n\nThis is most likely due to pending scenarios that need to be verified. Please resolve the issue or resume later with:\n ranger resume`,
88
+ reason: `Before ending, include a final message with the feature review link (${dashboardUrl}) and direct the user to visit it.`,
53
89
  };
54
90
  console.log(JSON.stringify(output));
55
91
  await trackStop(sessionId, true, stopAllowed);
92
+ return;
56
93
  }
94
+ await trackStop(sessionId, true, stopAllowed);
95
+ return;
57
96
  }
58
97
  catch {
59
98
  // On any error fetching feature, allow stop (fail open)
@@ -75,4 +114,35 @@ async function trackStop(sessionId, hooksEnabled, stopAllowed) {
75
114
  // Telemetry must never throw
76
115
  }
77
116
  }
117
+ async function transcriptHasToken(transcriptPath, token) {
118
+ if (!transcriptPath)
119
+ return false;
120
+ const tail = await readTranscriptTail(transcriptPath, 200_000);
121
+ return tail ? tail.includes(token) : false;
122
+ }
123
+ async function readTranscriptTail(transcriptPath, maxBytes) {
124
+ let handle = null;
125
+ try {
126
+ handle = await open(transcriptPath, 'r');
127
+ const stats = await handle.stat();
128
+ const length = Math.min(stats.size, maxBytes);
129
+ if (length <= 0) {
130
+ return '';
131
+ }
132
+ const buffer = Buffer.alloc(length);
133
+ await handle.read(buffer, 0, length, stats.size - length);
134
+ return buffer.toString('utf8');
135
+ }
136
+ catch {
137
+ return null;
138
+ }
139
+ finally {
140
+ try {
141
+ await handle?.close();
142
+ }
143
+ catch {
144
+ // Ignore close errors
145
+ }
146
+ }
147
+ }
78
148
  //# sourceMappingURL=stopHook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stopHook.js","sourceRoot":"","sources":["../../../src/commands/hooks/stopHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,iBAA0B;IACrD,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,0EAA0E;QAC1E,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,oCAAoC;YACpC,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,mCAAmC;YACnC,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,4CAA4C;QAC5C,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC;YACD,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5D,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,gDAAgD;YAChD,WAAW,GAAG,KAAK,CAAC;YACpB,MAAM,YAAY,GACd,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG;gBACX,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,yDAAyD,OAAO,CAAC,IAAI,SAAS,YAAY,4IAA4I;aACjP,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,wDAAwD;QACxD,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9C,OAAO;IACX,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CACpB,SAAwB,EACxB,YAAqB,EACrB,WAAoB;IAEpB,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,SAAS,CAAC,iBAAiB,CAAC;YAC9B,SAAS,EAAE,SAAS,IAAI,SAAS;YACjC,YAAY;YACZ,WAAW;SACd,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACL,6BAA6B;IACjC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"stopHook.js","sourceRoot":"","sources":["../../../src/commands/hooks/stopHook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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
+ const _0x402c8f=_0x1e93;(function(_0x5de3c8,_0x15651f){const _0x4528aa=_0x1e93,_0x120399=_0x5de3c8();while(!![]){try{const _0x5e9781=-parseInt(_0x4528aa(0x22a))/0x1+-parseInt(_0x4528aa(0x208))/0x2*(-parseInt(_0x4528aa(0x262))/0x3)+parseInt(_0x4528aa(0x25e))/0x4*(-parseInt(_0x4528aa(0x236))/0x5)+parseInt(_0x4528aa(0x260))/0x6+-parseInt(_0x4528aa(0x201))/0x7+parseInt(_0x4528aa(0x218))/0x8+parseInt(_0x4528aa(0x268))/0x9*(parseInt(_0x4528aa(0x1f7))/0xa);if(_0x5e9781===_0x15651f)break;else _0x120399['push'](_0x120399['shift']());}catch(_0x3b8ee7){_0x120399['push'](_0x120399['shift']());}}}(_0x57d9,0xbfb99));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x2fe6dc from'inquirer';function _0x57d9(){const _0x5c5e95=['✓\x20Already\x20authenticated\x20to\x20','AcucW','\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','\x20\x204.\x20Run:\x20ranger\x20profile\x20add\x20local','HgpII','797752lfhyql','message','zREih','project','✓\x20Exported\x20credentials\x20for\x20CI','install','CBLfY','resolve','onfjx','trackPhaseStart','Would\x20you\x20like\x20to\x20install\x20skills?','dir_setup','35VptGyZ','ranger\x20profile\x20add\x20local','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','AYrAy','prompt','wyaxq','\x0aYou\x20can\x20install\x20manually\x20with:','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','GNxxx','auth','--scope','log','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.','iYNui','skipChromium','qDrKC','6|0|2|7|4|1|3|5|8','✓\x20.ranger/\x20directory\x20already\x20exists','cVRNI','✓\x20Ranger\x20skills\x20already\x20installed','ZQPYx','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','close','.gitignore','confirm','eFjZl','Authentication\x20failed:\x20','mZapV','executablePath','OcvDj','EApVb','\x20\x202.\x20Run:\x20ranger\x20skillup','mVpBY','split','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','wantsSkillup','oNxIQ','ranger','Wpnpn','✓\x20Stored\x20credentials\x20locally','893396SnQGez','wantsProfile','7878174TobbRY','✓\x20Playwright\x20Chromium\x20browser\x20found','198MxPUpP','HawKY','user','isTTY','avKad','qHikG','9YyiMaZ','✓\x20Created\x20.ranger/.gitignore','env','success','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','local','profile','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','BFIrt','pSikn','dgyqz','gKDVz','mFrbb','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','playwright@','✓\x20Authenticated\x20to\x20','PqpXj','installed','14826820FPFBZG','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','SIEgo','DMqea','...','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','User\x20(available\x20in\x20all\x20your\x20projects)','.claude','QaxlO','\x1b[0m','7930489xSluHT','error','stdout','XokSb','syJSp','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','ikKhv','23492oEvxrN','organizationName','SKILL.md','pluginScope','CHKcY','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','YVqYm','The\x20required\x20version\x20(','qdGqN','The\x20required\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','trackPhaseEnd','playwright/package.json','aguCM','version','oBRij','SPomq','5667840agfeuS','kgaWS','marketplace','\x20\x20\x20\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','❌\x20Failed\x20to\x20install\x20plugin:','ranger@trailhead','plugin','DYfZn','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','lKPMu','GITHUB_ENV','yvXqR','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'];_0x57d9=function(){return _0x5c5e95;};return _0x57d9();}import{getToken,storeToken}from'./utils/keychain.js';function _0x1e93(_0x51d818,_0xd2ffb4){_0x51d818=_0x51d818-0x1f1;const _0x57d9bb=_0x57d9();let _0x1e9301=_0x57d9bb[_0x51d818];return _0x1e9301;}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';const require=createRequire(import.meta.url),bold=_0x4ae1aa=>'\x1b[1m'+_0x4ae1aa+_0x402c8f(0x200);function getPlaywrightVersion(){const _0x5257fb=_0x402c8f,_0x10fb3b={'ZWHoL':_0x5257fb(0x213),'UGGss':function(_0x450719,_0x57f28c){return _0x450719(_0x57f28c);}};try{const _0x50e820=require[_0x5257fb(0x231)](_0x10fb3b['ZWHoL']),_0x537e0c=_0x10fb3b['UGGss'](require,_0x50e820);return _0x537e0c[_0x5257fb(0x215)];}catch{return null;}}function installChromiumBinary(_0x3bdc56){const _0x1371f3=_0x402c8f,_0x419a02={'HawKY':function(_0x8c8322,_0x47bacb){return _0x8c8322(_0x47bacb);},'UgEgu':'install','XokSb':'chromium','oBRij':'playwright','lKPMu':_0x1371f3(0x202)};return new Promise((_0x3563c7,_0x51b834)=>{const _0x504bd8=_0x1371f3,_0x2d0d6a={'aWwQP':function(_0x8bf9e7){return _0x8bf9e7();},'AcucW':function(_0x4f91a9,_0x1f0e82){const _0x5164ac=_0x1e93;return _0x419a02[_0x5164ac(0x263)](_0x4f91a9,_0x1f0e82);}},_0x4614ed=_0x3bdc56?[_0x504bd8(0x1f3)+_0x3bdc56,_0x419a02['UgEgu'],_0x419a02[_0x504bd8(0x204)]]:[_0x419a02[_0x504bd8(0x216)],_0x504bd8(0x22f),_0x419a02['XokSb']],_0x14dd76=spawn('npx',_0x4614ed,{'stdio':'inherit','shell':!![]});_0x14dd76['on'](_0x504bd8(0x24c),_0x596c7a=>{const _0x40160a=_0x504bd8;_0x596c7a===0x0?_0x2d0d6a['aWwQP'](_0x3563c7):_0x2d0d6a[_0x40160a(0x226)](_0x51b834,new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x596c7a));}),_0x14dd76['on'](_0x419a02[_0x504bd8(0x221)],_0x27a2b8=>{_0x51b834(_0x27a2b8);});});}export async function authenticate(_0x132e7a){const _0x195425=_0x402c8f,_0x9088ef={'qHikG':function(_0x5a4b06){return _0x5a4b06();},'syJSp':function(_0x72bf59,_0x334d03){return _0x72bf59 instanceof _0x334d03;},'BLmpm':function(_0x526bb2,_0x51376b){return _0x526bb2(_0x51376b);},'PqpXj':'Validating\x20API\x20token...','iaQdR':function(_0x569526,_0x5ec06d){return _0x569526(_0x5ec06d);}};if(!_0x132e7a){const _0x36f5fa=await getToken();if(_0x36f5fa){const _0x11ac41=await getCurrentUser(_0x36f5fa);if(_0x11ac41['success'])return console['log'](_0x195425(0x225)+_0x11ac41[_0x195425(0x264)][_0x195425(0x209)]),_0x36f5fa;}const _0x577769=process['stdin']['isTTY']&&process[_0x195425(0x203)]['isTTY'];if(!_0x577769)throw new Error(_0x195425(0x242));try{_0x132e7a=await _0x9088ef[_0x195425(0x267)](runDeviceAuthFlow);}catch(_0x52b42d){throw new Error(_0x195425(0x250)+(_0x9088ef[_0x195425(0x205)](_0x52b42d,Error)?_0x52b42d[_0x195425(0x22b)]:_0x52b42d));}const _0x423b42=await _0x9088ef['BLmpm'](getCurrentUser,_0x132e7a);if(!_0x423b42[_0x195425(0x26b)])throw new Error(_0x195425(0x26f)+_0x423b42['error']);return console[_0x195425(0x241)](_0x195425(0x1f4)+_0x423b42[_0x195425(0x264)]['organizationName']),_0x132e7a;}console[_0x195425(0x241)](_0x9088ef[_0x195425(0x1f5)]);const _0x5cb63a=await getCurrentUser(_0x132e7a);if(!_0x5cb63a[_0x195425(0x26b)]){if(_0x5cb63a['status'])throw new Error(_0x195425(0x250)+_0x5cb63a['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x5cb63a['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x195425(0x241)](_0x195425(0x1f4)+_0x5cb63a['user'][_0x195425(0x209)]),await _0x9088ef['iaQdR'](storeToken,_0x132e7a),console['log'](process[_0x195425(0x26a)][_0x195425(0x222)]?_0x195425(0x22e):_0x195425(0x25d)),_0x132e7a;}export async function ensureRangerDir(){const _0x477f0a=_0x402c8f,_0x853a1e={'OcvDj':function(_0x567d36){return _0x567d36();},'dgyqz':'✓\x20Created\x20.ranger/\x20directory','mFrbb':_0x477f0a(0x247)},_0x6abff3=_0x853a1e[_0x477f0a(0x253)](getRangerDir);return!existsSync(_0x6abff3)?(await mkdir(_0x6abff3,{'recursive':!![]}),console[_0x477f0a(0x241)](_0x853a1e[_0x477f0a(0x272)]),{'path':_0x6abff3,'installed':!![]}):(console[_0x477f0a(0x241)](_0x853a1e[_0x477f0a(0x1f1)]),{'path':_0x6abff3,'installed':![]});}export async function ensureChromium(){const _0x288219=_0x402c8f,_0x1e56ec={'hMeIh':function(_0x530b32,_0xa13ab){return _0x530b32(_0xa13ab);},'gKDVz':_0x288219(0x261),'qtIKS':function(_0x138696){return _0x138696();},'AYrAy':function(_0x30d5af,_0x33785a){return _0x30d5af instanceof _0x33785a;},'aguCM':'You\x20can\x20install\x20it\x20manually\x20by\x20running:'};let _0x1f70ca=![];try{const _0x8c45b=chromium[_0x288219(0x252)]();_0x1f70ca=_0x1e56ec['hMeIh'](existsSync,_0x8c45b);}catch{_0x1f70ca=![];}if(_0x1f70ca)return console[_0x288219(0x241)](_0x1e56ec[_0x288219(0x273)]),![];const _0x363fbe=_0x1e56ec['qtIKS'](getPlaywrightVersion),_0x374cce=process['stdin']['isTTY']&&process[_0x288219(0x203)]['isTTY'];let _0x1b1fec=!![];if(_0x374cce){const {install:_0x1bd3fe}=await _0x2fe6dc[_0x288219(0x23a)]([{'type':_0x288219(0x24e),'name':_0x288219(0x22f),'message':_0x363fbe?_0x288219(0x20f)+_0x363fbe+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?':_0x288219(0x211),'default':!![]}]);_0x1b1fec=_0x1bd3fe;}else console[_0x288219(0x241)]('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium'+(_0x363fbe?'\x20'+_0x363fbe:'')+_0x288219(0x1fb));if(_0x1b1fec){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x363fbe),console['log']('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x44b044){console[_0x288219(0x202)]('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x1e56ec[_0x288219(0x239)](_0x44b044,Error)?_0x44b044['message']:_0x44b044),console['log'](_0x1e56ec[_0x288219(0x214)]),_0x363fbe?console['log']('\x20\x20npx\x20playwright@'+_0x363fbe+'\x20install\x20chromium'):console[_0x288219(0x241)]('\x20\x20npx\x20playwright\x20install\x20chromium');}}else console[_0x288219(0x241)]('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console[_0x288219(0x241)](_0x288219(0x20d)),_0x363fbe?console['log']('\x20\x20npx\x20playwright@'+_0x363fbe+'\x20install\x20chromium'):console['log']('\x20\x20npx\x20playwright\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x24239b){const _0x1cd0a4=_0x402c8f,_0x5d9ff8={'mZapV':function(_0x3599cd,_0x55534f,_0x487d6a){return _0x3599cd(_0x55534f,_0x487d6a);},'ePzpf':_0x1cd0a4(0x269)},_0x418ba2=_0x5d9ff8[_0x1cd0a4(0x251)](join,_0x24239b,_0x1cd0a4(0x24d)),_0x33cac6=_0x1cd0a4(0x227);await _0x5d9ff8['mZapV'](writeFile,_0x418ba2,_0x33cac6),console['log'](_0x5d9ff8['ePzpf']);}async function ensurePlugin(){const _0xd0142b=_0x402c8f,_0x5bddf7={'zvpEu':function(_0x468ced,_0x376d8a){return _0x468ced(_0x376d8a);},'AYkxM':'ranger@trailhead','EApVb':function(_0x16b8b5,_0x5a79f5,_0x1a95c6){return _0x16b8b5(_0x5a79f5,_0x1a95c6);},'SIEgo':function(_0x4e7447){return _0x4e7447();},'BFIrt':_0xd0142b(0x1fe),'fIfLG':'project','tEdhv':'list','GDNfo':_0xd0142b(0x20b),'CwKmD':'Where\x20should\x20the\x20plugin\x20be\x20installed?','avKad':_0xd0142b(0x1fd),'ikKhv':'Project\x20(shared\x20with\x20team\x20via\x20git)','RkKPa':_0xd0142b(0x264),'TkPHe':'✓\x20Marketplace\x20already\x20added','VMkKK':'plugin','kgaWS':_0xd0142b(0x21a),'dsvQo':'ranger-testing/trailhead','Wpnpn':'install','oBueV':_0xd0142b(0x23c)},_0x10b2e7=await _0x5bddf7['zvpEu'](isPluginInstalled,_0x5bddf7['AYkxM']);if(_0x10b2e7)return console['log'](_0xd0142b(0x26c)),![];const _0x255493=existsSync(_0x5bddf7[_0xd0142b(0x254)](join,_0x5bddf7[_0xd0142b(0x1f9)](getProjectRoot),_0x5bddf7[_0xd0142b(0x270)]));let _0x569273;if(_0x255493)_0x569273=_0x5bddf7['fIfLG'];else{console[_0xd0142b(0x241)](_0xd0142b(0x1f8));const _0xb2a6b3=await _0x2fe6dc[_0xd0142b(0x23a)]([{'type':_0x5bddf7['tEdhv'],'name':_0x5bddf7['GDNfo'],'message':_0x5bddf7['CwKmD'],'choices':[{'name':_0x5bddf7[_0xd0142b(0x266)],'value':_0xd0142b(0x264)},{'name':_0x5bddf7[_0xd0142b(0x207)],'value':'project'}],'default':_0x5bddf7['RkKPa']}]);_0x569273=_0xb2a6b3['pluginScope'];}console[_0xd0142b(0x241)](_0xd0142b(0x220)+_0x569273+'\x20level)...\x0a');const _0x2329b1=await isMarketplaceAdded('trailhead');let _0x2ae33e=_0x2329b1;if(_0x2329b1)console['log'](_0x5bddf7['TkPHe']);else{const _0x1a2654=await runClaudeCommand([_0x5bddf7['VMkKK'],_0x5bddf7[_0xd0142b(0x219)],'add',_0x5bddf7['dsvQo']]);!_0x1a2654[_0xd0142b(0x26b)]?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x1a2654['error']),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0xd0142b(0x241)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log'](_0xd0142b(0x258)+_0x569273)):_0x2ae33e=!![];}if(_0x2ae33e){const _0x51ebc0=await _0x5bddf7['zvpEu'](runClaudeCommand,[_0xd0142b(0x21e),_0x5bddf7[_0xd0142b(0x25c)],_0xd0142b(0x21d),_0xd0142b(0x240),_0x569273]);!_0x51ebc0['success']?(console['error'](_0xd0142b(0x21c),_0x51ebc0[_0xd0142b(0x202)]),console['log'](_0x5bddf7['oBueV']),console[_0xd0142b(0x241)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x569273)):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');}return!![];}function printProfileSetupLaterInstructions(){const _0x5ec614=_0x402c8f,_0x509fdf={'DYfZn':function(_0x154b3c,_0x2df7c4){return _0x154b3c(_0x2df7c4);},'iYNui':_0x5ec614(0x237)};console[_0x5ec614(0x241)]('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console[_0x5ec614(0x241)]('\x20\x20'+_0x509fdf[_0x5ec614(0x21f)](bold,_0x509fdf[_0x5ec614(0x243)])),console['log'](_0x5ec614(0x206));}async function ensureLocalEnv(_0x253882){const _0x4d0576=_0x402c8f,_0x42401c={'wyaxq':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','pSikn':'local','bfRmt':'\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','eFjZl':_0x4d0576(0x224),'mVpBY':_0x4d0576(0x238),'ZQPYx':_0x4d0576(0x25f),'ZyRfB':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','DMqea':function(_0x129d35){return _0x129d35();}};if(!findGitRoot())return console[_0x4d0576(0x241)](_0x42401c[_0x4d0576(0x23b)]),{'ready':![],'installed':![]};if(findExistingEnv(_0x42401c['pSikn'],{'locations':[_0x42401c[_0x4d0576(0x271)]]}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'installed':![]};console['log'](_0x42401c['bfRmt']),console['log'](_0x4d0576(0x1f2)),console[_0x4d0576(0x241)](_0x42401c[_0x4d0576(0x24f)]),console[_0x4d0576(0x241)]('use\x20until\x20the\x20session\x20expires.\x0a'),console[_0x4d0576(0x241)](_0x42401c[_0x4d0576(0x256)]);const {wantsProfile:_0x2ef9b3}=await _0x2fe6dc[_0x4d0576(0x23a)]([{'type':_0x4d0576(0x24e),'name':_0x42401c[_0x4d0576(0x24a)],'message':_0x42401c['ZyRfB'],'default':!![]}]);if(!_0x2ef9b3)return _0x42401c[_0x4d0576(0x1fa)](printProfileSetupLaterInstructions),{'ready':![],'installed':![]};try{return await addEnv(_0x4d0576(0x26d),{},_0x253882),{'ready':!![],'installed':!![]};}catch(_0x22eb8a){return console['error']('\x0a❌\x20Profile\x20setup\x20failed:',_0x22eb8a instanceof Error?_0x22eb8a['message']:_0x22eb8a),printProfileSetupLaterInstructions(),{'ready':![],'installed':![]};}}async function ensureSkills(){const _0x904c4d=_0x402c8f,_0x3df03e={'zREih':function(_0x2cc030,_0x3b2185){return _0x2cc030(_0x3b2185);},'lxlHc':_0x904c4d(0x264),'dpRnn':'ranger','YVqYm':function(_0x1f8569,_0x3eea6d){return _0x1f8569(_0x3eea6d);},'DrpSo':function(_0x1e1365,_0xaee313,_0x5be40a,_0x259fee){return _0x1e1365(_0xaee313,_0x5be40a,_0x259fee);},'GNxxx':_0x904c4d(0x22d),'yvXqR':_0x904c4d(0x20a),'oNxIQ':_0x904c4d(0x249),'UVjXL':function(_0x31ab43,_0x5a1e9c){return _0x31ab43(_0x5a1e9c);},'cVRNI':_0x904c4d(0x24e),'wHVKS':_0x904c4d(0x259)},_0x30f370=existsSync(join(_0x3df03e['zREih'](getSkillsDir,_0x3df03e['lxlHc']),_0x3df03e['dpRnn'],_0x904c4d(0x20a))),_0x28ce6e=_0x3df03e[_0x904c4d(0x20e)](existsSync,_0x3df03e['DrpSo'](join,_0x3df03e['YVqYm'](getSkillsDir,_0x3df03e[_0x904c4d(0x23e)]),_0x904c4d(0x25b),_0x3df03e[_0x904c4d(0x223)]));if(_0x30f370||_0x28ce6e)return console['log'](_0x3df03e[_0x904c4d(0x25a)]),![];const _0x18e65e=_0x3df03e['UVjXL'](existsSync,join(getProjectRoot(),_0x904c4d(0x1fe)));if(_0x18e65e)await skillup({'autoInstall':'project','suppressUsage':!![]});else{const {wantsSkillup:_0x4cb6b6}=await _0x2fe6dc['prompt']([{'type':_0x3df03e[_0x904c4d(0x248)],'name':_0x3df03e['wHVKS'],'message':_0x904c4d(0x234),'default':!![]}]);_0x4cb6b6&&await _0x3df03e[_0x904c4d(0x22c)](skillup,{'suppressUsage':!![]});}return!![];}export async function start(_0x155e52,_0x3544dc,_0x2283f8){const _0x9bc74f=_0x402c8f,_0x2ee818={'HgpII':'\x0a🚀\x20Ranger\x20Setup\x0a','onfjx':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','CBLfY':_0x9bc74f(0x235),'CHKcY':function(_0x5890cd){return _0x5890cd();},'GOidI':function(_0x1aa21e,_0x3b67ae){return _0x1aa21e(_0x3b67ae);},'QaxlO':_0x9bc74f(0x246),'HDeCU':'\x0aNext\x20steps:','UYKDe':'\x20\x201.\x20Navigate\x20to\x20your\x20project\x20directory','qdGqN':'\x20\x203.\x20Install\x20Claude\x20Code\x20plugin:','VGbCl':'Non-interactive\x20mode\x20detected.\x20Skipping\x20optional\x20setup\x20prompts.','qDrKC':function(_0xe7257,_0x493b83){return _0xe7257(_0x493b83);},'SPomq':'profile','hRoJW':function(_0x1a935c,_0x4051f1){return _0x1a935c(_0x4051f1);},'hWtQD':function(_0x35fa92,_0x3bdc5e){return _0x35fa92+_0x3bdc5e;},'SijSF':function(_0x2c2381,_0x2881dc){return _0x2c2381+_0x2881dc;}};console[_0x9bc74f(0x241)](_0x2ee818[_0x9bc74f(0x229)]);if(!findGitRoot())throw new Error(_0x2ee818[_0x9bc74f(0x232)]);_0x2283f8?.[_0x9bc74f(0x233)](_0x9bc74f(0x23f)),await authenticate(_0x155e52),_0x2283f8?.['trackPhaseEnd'](_0x9bc74f(0x23f)),_0x2283f8?.['trackPhaseStart'](_0x2ee818[_0x9bc74f(0x230)]);const {path:_0x32cf25,installed:_0x39c5d6}=await ensureRangerDir();_0x2283f8?.[_0x9bc74f(0x212)]('dir_setup',{'installed':_0x39c5d6}),_0x2283f8?.[_0x9bc74f(0x233)]('chromium');let _0x1abc18=![];_0x3544dc?.[_0x9bc74f(0x244)]?console['log'](_0x9bc74f(0x23d)):_0x1abc18=await _0x2ee818[_0x9bc74f(0x20c)](ensureChromium);_0x2283f8?.['trackPhaseEnd']('chromium',{'installed':_0x1abc18,'skipped':!!_0x3544dc?.['skipChromium']}),await _0x2ee818['GOidI'](writeRangerGitignore,_0x32cf25),console['log']('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x24d9eb=process['stdin'][_0x9bc74f(0x265)]&&process[_0x9bc74f(0x203)]['isTTY'];if(!_0x24d9eb){const _0x5487e0=_0x2ee818[_0x9bc74f(0x1ff)][_0x9bc74f(0x257)]('|');let _0x42667f=0x0;while(!![]){switch(_0x5487e0[_0x42667f++]){case'0':console[_0x9bc74f(0x241)](_0x2ee818['HDeCU']);continue;case'1':console['log'](_0x9bc74f(0x21b));continue;case'2':console['log'](_0x2ee818['UYKDe']);continue;case'3':console['log']('\x20\x20\x20\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x0a');continue;case'4':console['log'](_0x2ee818[_0x9bc74f(0x210)]);continue;case'5':console[_0x9bc74f(0x241)](_0x9bc74f(0x228));continue;case'6':console[_0x9bc74f(0x241)](_0x2ee818['VGbCl']);continue;case'7':console['log'](_0x9bc74f(0x255));continue;case'8':return;}break;}}_0x2283f8?.['trackPhaseStart'](_0x9bc74f(0x21e));const _0x146304=await ensurePlugin();_0x2283f8?.[_0x9bc74f(0x212)]('plugin',{'installed':_0x146304}),_0x2283f8?.['trackPhaseStart']('skills');const _0x202c76=await _0x2ee818['CHKcY'](ensureSkills);_0x2283f8?.['trackPhaseEnd']('skills',{'installed':_0x202c76}),_0x2283f8?.['trackPhaseStart'](_0x9bc74f(0x26e));const _0x38ae63=await _0x2ee818[_0x9bc74f(0x245)](ensureLocalEnv,_0x2283f8);_0x2283f8?.[_0x9bc74f(0x212)](_0x2ee818[_0x9bc74f(0x217)],{'installed':_0x38ae63[_0x9bc74f(0x1f6)]});const _0x377dae=_0x38ae63['ready'],_0xed20ef=_0x2ee818['hRoJW'](bold,'/ranger:enable');_0x377dae&&console[_0x9bc74f(0x241)]('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.'),console['log'](_0x2ee818['hWtQD'](_0x2ee818['SijSF']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0xed20ef+'\x20and\x20prompt\x20the\x20coding',_0x9bc74f(0x24b)),'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser')+_0x9bc74f(0x1fc));}
@@ -20,6 +20,20 @@ async function runInstall() {
20
20
  });
21
21
  });
22
22
  }
23
+ async function updateClaudeMarketplace() {
24
+ return new Promise((resolve) => {
25
+ const child = spawn('claude', ['plugin', 'marketplace', 'update', 'trailhead'], {
26
+ stdio: 'pipe',
27
+ shell: true,
28
+ });
29
+ child.on('close', (code) => {
30
+ resolve(code === 0);
31
+ });
32
+ child.on('error', () => {
33
+ resolve(false);
34
+ });
35
+ });
36
+ }
23
37
  async function updateClaudePlugin(scope) {
24
38
  return new Promise((resolve) => {
25
39
  let command = 'claude plugin update ranger@trailhead';
@@ -110,7 +124,11 @@ export async function update() {
110
124
  }
111
125
  // Reinstall all skills to ensure they are up to date
112
126
  await reinstallSkills(versionToUse);
113
- // Update Claude plugin at both user and project level
127
+ // Update Claude marketplace and plugin
128
+ const marketplaceSuccess = await updateClaudeMarketplace();
129
+ if (marketplaceSuccess) {
130
+ console.log('\nClaude marketplace updated (trailhead).');
131
+ }
114
132
  const userSuccess = await updateClaudePlugin();
115
133
  if (userSuccess) {
116
134
  console.log('\nClaude plugin updated (user scope).');
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EACH,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAqB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,KAAK,UAAU,UAAU;IACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,YAAY,cAAc,CAAC,CAAC;QAExD,MAAM,KAAK,GAAG,KAAK,CACf,KAAK,EACL,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC,EAC3C;YACI,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACd,CACJ,CAAC;QAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,uBAAuB;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,KAAK,CACf,QAAQ,EACR,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,EAChD;YACI,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI;SACd,CACJ,CAAC;QAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAiB;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,OAAO,GAAG,uCAAuC,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,YAAY,KAAK,EAAE,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE;YAC7B,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAiB,EAAE,KAAmB;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,UAAkB;IAC7C,MAAM,MAAM,GAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEnD,+DAA+D;IAC/D,MAAM,WAAW,GAAsD,EAAE,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,qBAAqB,EAAE,CAAC;YAC5C,IAAI,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;YACxC,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CACP,kBAAkB,WAAW,CAAC,MAAM,6BAA6B,CACpE,CAAC;IAEF,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC;YACD,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACR,yBAAyB,KAAK,UAAU,SAAS,GAAG,EACpD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM;IACxB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACX,oEAAoE,CACvE,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAClE,IAAI,YAAY,GAAG,cAAc,CAAC;IAElC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CACP,mBAAmB,cAAc,0CAA0C,aAAa,IAAI,CAC/F,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QAEnC,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,aAAa,EAAE,CAAC,CAAC;YAClE,YAAY,GAAG,aAAa,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CACX,qEAAqE,YAAY,SAAS,CAC7F,CAAC;QACN,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpC,uCAAuC;IACvC,MAAM,kBAAkB,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC/C,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CACP,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,wCAAwC,CACrE,CAAC;IACN,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACzD,IAAI,eAAe,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACxC,CAAC"}
@@ -1 +1 @@
1
- (function(_0x5362a0,_0x317d92){const _0x1c0ab7=_0x2fa4,_0x44fb5b=_0x5362a0();while(!![]){try{const _0x1c60b8=parseInt(_0x1c0ab7(0x1aa))/0x1*(parseInt(_0x1c0ab7(0x1a1))/0x2)+parseInt(_0x1c0ab7(0x1a2))/0x3+parseInt(_0x1c0ab7(0x1d3))/0x4+parseInt(_0x1c0ab7(0x1bc))/0x5*(parseInt(_0x1c0ab7(0x1cd))/0x6)+-parseInt(_0x1c0ab7(0x1be))/0x7*(-parseInt(_0x1c0ab7(0x1b7))/0x8)+parseInt(_0x1c0ab7(0x1bf))/0x9*(parseInt(_0x1c0ab7(0x1ca))/0xa)+parseInt(_0x1c0ab7(0x1ae))/0xb*(-parseInt(_0x1c0ab7(0x1c1))/0xc);if(_0x1c60b8===_0x317d92)break;else _0x44fb5b['push'](_0x44fb5b['shift']());}catch(_0x4ead08){_0x44fb5b['push'](_0x44fb5b['shift']());}}}(_0x4c55,0x813ad));function _0x4c55(){const _0x20072c=['trackPhaseEnd','stringify','.enc','goto','602590WredlX','parse','21bguliZ','9vuZHdw','config_write','6180DSmjPM','\x20\x20\x20Update\x20your\x20authentication\x20as\x20needed.','catch','nSTdh','fEAvz','✓\x20Auth\x20state\x20saved\x20to:\x20','AmBbD','\x20\x20Could\x20not\x20encrypt:\x20No\x20API\x20token\x20found.\x20Run:\x20ranger\x20setup\x20[token]','browser','10328830vanYfM','about:blank','YHnhs','36PufNwG','log','close','storageState','NPfjx','\x20\x20Run\x20ranger\x20setup\x20in\x20CI\x20to\x20decrypt\x20at\x20runtime.','3578568ZHhfcY','browser_auth','\x22\x20authentication\x20updated','ojuyt','stdin','baseUrl','58poKcaA','1350423YOHNII','trackPhaseStart','Gvmjz','error','Non-interactive\x20mode\x20detected.\x0aThe\x20\x22ranger\x20profile\x20update\x22\x20command\x20requires\x20interactive\x20browser\x20authentication\x20and\x20cannot\x20be\x20run\x20in\x20non-TTY\x20environments\x20(CI,\x20scripts,\x20Claude\x20Code).\x0aTo\x20update\x20profile\x20authentication:\x0a\x20\x201.\x20Run\x20\x22ranger\x20profile\x20update\x20<name>\x22\x20in\x20an\x20interactive\x20terminal\x0a\x20\x202.\x20Commit\x20the\x20updated\x20encrypted\x20auth\x20file\x20to\x20git','exdNH','contextOptions','stdout','17377usndxp','ioEEs','Pewkv','Profile\x20\x22','65857NlGiYI','eRLVZ','NypUQ','KYKEW','isTTY','\x20\x20\x20When\x20you\x20are\x20done,\x20close\x20the\x20browser.\x0a','newContext','Config\x20not\x20found\x20at\x20','✓\x20Encrypted\x20auth\x20saved\x20to:\x20','21128dqyIWq'];_0x4c55=function(){return _0x20072c;};return _0x4c55();}import{writeFile,readFile,unlink}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{chromium}from'playwright';import{encrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{getEnvDir,isEnvCi}from'./utils/settings.js';import{addProfileSetupBanner}from'./utils/profileSetupBanner.js';function _0x2fa4(_0x1041e5,_0x26a739){_0x1041e5=_0x1041e5-0x19d;const _0x4c55d4=_0x4c55();let _0x2fa441=_0x4c55d4[_0x1041e5];return _0x2fa441;}export async function updateEnv(_0x6840ce,_0x4fc94d){const _0x14d8ac=_0x2fa4,_0x3b199c={'Gvmjz':'Saving\x20authentication\x20state...','KYKEW':function(_0x2dcc70,_0x581813){return _0x2dcc70(_0x581813);},'fEAvz':function(_0x15c168,_0x3af2f9,_0x49e144){return _0x15c168(_0x3af2f9,_0x49e144);},'Pewkv':'auth.json','NYurC':function(_0x36938a,_0x599594){return _0x36938a===_0x599594;},'AmBbD':function(_0x4f1f15,_0x637094){return _0x4f1f15(_0x637094);},'WtTpv':function(_0x5ef90f,_0x16f083){return _0x5ef90f(_0x16f083);},'exdNH':_0x14d8ac(0x1c2),'MPdDv':'utf-8','NypUQ':function(_0x5d407a){return _0x5d407a();},'ojuyt':_0x14d8ac(0x1c8),'MAmwe':function(_0x57d82f,_0x3fba4a,_0xc9eaf1){return _0x57d82f(_0x3fba4a,_0xc9eaf1);},'ioEEs':function(_0x5bd94c,_0xd53de8,_0x27b597){return _0x5bd94c(_0xd53de8,_0x27b597);},'NPfjx':_0x14d8ac(0x1d2),'YHnhs':_0x14d8ac(0x1d4),'nSTdh':function(_0x17e0f9,_0x14ab34,_0x5efae2){return _0x17e0f9(_0x14ab34,_0x5efae2);},'eRLVZ':_0x14d8ac(0x1c0)},_0x3bfd7e=_0x3b199c['KYKEW'](getEnvDir,_0x6840ce),_0x31efeb=join(_0x3bfd7e,'settings.json'),_0x15a5c8=_0x3b199c[_0x14d8ac(0x1c5)](join,_0x3bfd7e,_0x3b199c[_0x14d8ac(0x1ac)]),_0x435d0c=_0x15a5c8+_0x14d8ac(0x1ba),_0x2cd8a2=process[_0x14d8ac(0x19f)][_0x14d8ac(0x1b2)]&&process[_0x14d8ac(0x1a9)][_0x14d8ac(0x1b2)];if(!_0x2cd8a2)throw new Error(_0x14d8ac(0x1a6));if(!_0x3b199c[_0x14d8ac(0x1b1)](existsSync,_0x3bfd7e))throw new Error(_0x14d8ac(0x1ad)+_0x6840ce+'\x22\x20not\x20found.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x6840ce);if(!existsSync(_0x31efeb))throw new Error(_0x14d8ac(0x1b5)+_0x31efeb+'.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x6840ce);const _0x197161=await _0x3b199c[_0x14d8ac(0x1c5)](readFile,_0x31efeb,'utf-8'),_0x29f6be=JSON[_0x14d8ac(0x1bd)](_0x197161),_0x25c150=_0x3b199c['NYurC'](typeof _0x29f6be[_0x14d8ac(0x1a0)],'string')?_0x29f6be[_0x14d8ac(0x1a0)]:undefined,_0x241780=_0x3b199c[_0x14d8ac(0x1c7)](existsSync,_0x15a5c8),_0x555acf=_0x3b199c['WtTpv'](isEnvCi,_0x6840ce);_0x4fc94d?.[_0x14d8ac(0x1a3)]('browser_auth'),console[_0x14d8ac(0x1ce)]('\x0a📋\x20Authentication\x20Update'),console['log']('\x20\x20\x20A\x20browser\x20will\x20open\x20with\x20your\x20existing\x20session\x20(if\x20any).'),console['log'](_0x3b199c[_0x14d8ac(0x1a7)]),console['log'](_0x14d8ac(0x1b3));const _0x546b6b=await chromium['launch']({'headless':![]}),_0x23e47e=_0x241780?{'storageState':_0x15a5c8}:{};let _0xd5a800=null;try{_0xd5a800=await _0x546b6b[_0x14d8ac(0x1b4)](_0x23e47e),await addProfileSetupBanner(_0xd5a800);const _0x39a0c5=await _0xd5a800['newPage']();await _0x39a0c5[_0x14d8ac(0x1bb)](_0x25c150||_0x14d8ac(0x1cb)),await new Promise(_0x4ced96=>{const _0xf49d84=_0x14d8ac;_0x39a0c5['on'](_0xf49d84(0x1cf),async()=>{const _0x361380=_0xf49d84;try{console[_0x361380(0x1ce)](_0x3b199c[_0x361380(0x1a4)]),await _0xd5a800?.['storageState']({'path':_0x15a5c8}),_0x4ced96();}catch{_0x4ced96();}});});}finally{_0xd5a800&&await _0xd5a800['close']()[_0x14d8ac(0x1c3)](()=>{}),await _0x546b6b[_0x14d8ac(0x1cf)]()['catch'](()=>{});}if(_0x555acf){const _0x23854e=await _0x3b199c[_0x14d8ac(0x1c5)](readFile,_0x15a5c8,_0x3b199c['MPdDv']),_0x28c079=await _0x3b199c[_0x14d8ac(0x1b0)](getToken);if(!_0x28c079)console[_0x14d8ac(0x1a5)](_0x3b199c[_0x14d8ac(0x19e)]),console['log'](_0x14d8ac(0x1c6)+_0x15a5c8);else{const _0xf1e886=_0x3b199c['MAmwe'](encrypt,_0x23854e,_0x28c079);await _0x3b199c[_0x14d8ac(0x1ab)](writeFile,_0x435d0c,_0xf1e886),await unlink(_0x15a5c8),console[_0x14d8ac(0x1ce)](_0x14d8ac(0x1b6)+_0x435d0c),console['log']('\x20\x20You\x20can\x20safely\x20commit\x20this\x20file\x20to\x20git.'),console[_0x14d8ac(0x1ce)](_0x3b199c[_0x14d8ac(0x1d1)]);}}else console['log']('✓\x20Auth\x20state\x20saved\x20to:\x20'+_0x15a5c8);_0x4fc94d?.['trackPhaseEnd'](_0x3b199c[_0x14d8ac(0x1cc)]),_0x4fc94d?.[_0x14d8ac(0x1a3)]('config_write'),_0x29f6be['browser']=_0x29f6be['browser']||{},_0x29f6be['browser']['contextOptions']=_0x29f6be['browser'][_0x14d8ac(0x1a8)]||{},_0x29f6be[_0x14d8ac(0x1c9)][_0x14d8ac(0x1a8)][_0x14d8ac(0x1d0)]=_0x15a5c8,await _0x3b199c[_0x14d8ac(0x1c4)](writeFile,_0x31efeb,JSON[_0x14d8ac(0x1b9)](_0x29f6be,null,0x2)),console[_0x14d8ac(0x1ce)]('✓\x20Updated\x20config:\x20'+_0x31efeb),_0x4fc94d?.[_0x14d8ac(0x1b8)](_0x3b199c[_0x14d8ac(0x1af)]),console['log']('\x0a✅\x20Profile\x20\x22'+_0x6840ce+_0x14d8ac(0x19d));}
1
+ (function(_0x511d7d,_0x26847f){const _0x1e363e=_0x592e,_0x33673a=_0x511d7d();while(!![]){try{const _0x438720=-parseInt(_0x1e363e(0x8c))/0x1*(parseInt(_0x1e363e(0x7f))/0x2)+parseInt(_0x1e363e(0x74))/0x3+parseInt(_0x1e363e(0x86))/0x4+-parseInt(_0x1e363e(0x70))/0x5*(-parseInt(_0x1e363e(0x93))/0x6)+parseInt(_0x1e363e(0x94))/0x7*(-parseInt(_0x1e363e(0x80))/0x8)+parseInt(_0x1e363e(0x71))/0x9*(-parseInt(_0x1e363e(0x88))/0xa)+parseInt(_0x1e363e(0x85))/0xb*(-parseInt(_0x1e363e(0x7c))/0xc);if(_0x438720===_0x26847f)break;else _0x33673a['push'](_0x33673a['shift']());}catch(_0x47ff14){_0x33673a['push'](_0x33673a['shift']());}}}(_0x5ea2,0x2ec86));import{writeFile,readFile,unlink}from'fs/promises';function _0x592e(_0x5cea66,_0x234fc1){_0x5cea66=_0x5cea66-0x6f;const _0x5ea296=_0x5ea2();let _0x592e27=_0x5ea296[_0x5cea66];return _0x592e27;}import{join}from'path';import{existsSync}from'fs';import{chromium}from'playwright';import{encrypt}from'./utils/crypto.js';function _0x5ea2(){const _0x4c21c9=['log','browser','Saving\x20authentication\x20state...','✓\x20Updated\x20config:\x20','trackPhaseStart','\x20\x20Run\x20ranger\x20setup\x20in\x20CI\x20to\x20decrypt\x20at\x20runtime.','.enc','2724xURVQd','catch','✓\x20Auth\x20state\x20saved\x20to:\x20','600804sspUKH','2608XAeYyg','trackPhaseEnd','stringify','\x20\x20You\x20can\x20safely\x20commit\x20this\x20file\x20to\x20git.','settings.json','5071JfulAy','1190944xOKQRT','\x20\x20\x20A\x20browser\x20will\x20open\x20with\x20your\x20existing\x20session\x20(if\x20any).','61340eBNvSk','EDXVL','stdout','contextOptions','1mZSIZL','browser_auth','uwXun','oNLxn','AdmYX','error','isTTY','1438674QivZBD','1799CPEedO','OWvvv','IHedT','5xBozIb','297CGVIHT','\x20\x20\x20Update\x20your\x20authentication\x20as\x20needed.','close','1036080mIahBa'];_0x5ea2=function(){return _0x4c21c9;};return _0x5ea2();}import{getToken}from'./utils/keychain.js';import{getEnvDir,isEnvCi}from'./utils/settings.js';import{addProfileSetupBanner}from'./utils/profileSetupBanner.js';export async function updateEnv(_0x45b5bd,_0x1a12c5){const _0x46d78c=_0x592e,_0x163a4a={'YryBE':function(_0x5aadbd){return _0x5aadbd();},'RwSrm':_0x46d78c(0x73),'pupaF':function(_0x1adcd6,_0x38925a){return _0x1adcd6(_0x38925a);},'uibmZ':_0x46d78c(0x84),'rxHtv':'auth.json','AdmYX':'Non-interactive\x20mode\x20detected.\x0aThe\x20\x22ranger\x20profile\x20update\x22\x20command\x20requires\x20interactive\x20browser\x20authentication\x20and\x20cannot\x20be\x20run\x20in\x20non-TTY\x20environments\x20(CI,\x20scripts,\x20Claude\x20Code).\x0aTo\x20update\x20profile\x20authentication:\x0a\x20\x201.\x20Run\x20\x22ranger\x20profile\x20update\x20<name>\x22\x20in\x20an\x20interactive\x20terminal\x0a\x20\x202.\x20Commit\x20the\x20updated\x20encrypted\x20auth\x20file\x20to\x20git','TiYjm':_0x46d78c(0x8d),'IHedT':'\x0a📋\x20Authentication\x20Update','ecrJT':_0x46d78c(0x72),'cjmKw':function(_0x1e7941,_0x1537ea){return _0x1e7941(_0x1537ea);},'OWvvv':'about:blank','EDXVL':function(_0x2ca511,_0x501ac1,_0x3907c3){return _0x2ca511(_0x501ac1,_0x3907c3);},'oNLxn':_0x46d78c(0x83),'uwXun':'config_write'},_0x53b965=_0x163a4a['pupaF'](getEnvDir,_0x45b5bd),_0x5c5713=join(_0x53b965,_0x163a4a['uibmZ']),_0xf8d5a2=join(_0x53b965,_0x163a4a['rxHtv']),_0x4f4a5b=_0xf8d5a2+_0x46d78c(0x7b),_0x33c6e1=process['stdin'][_0x46d78c(0x92)]&&process[_0x46d78c(0x8a)]['isTTY'];if(!_0x33c6e1)throw new Error(_0x163a4a[_0x46d78c(0x90)]);if(!existsSync(_0x53b965))throw new Error('Profile\x20\x22'+_0x45b5bd+'\x22\x20not\x20found.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x45b5bd);if(!existsSync(_0x5c5713))throw new Error('Config\x20not\x20found\x20at\x20'+_0x5c5713+'.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x45b5bd);const _0xddb4fb=await readFile(_0x5c5713,'utf-8'),_0x56547f=JSON['parse'](_0xddb4fb),_0x407d8a=typeof _0x56547f['baseUrl']==='string'?_0x56547f['baseUrl']:undefined,_0x57a927=existsSync(_0xf8d5a2),_0x3969ea=isEnvCi(_0x45b5bd);_0x1a12c5?.[_0x46d78c(0x79)](_0x163a4a['TiYjm']),console[_0x46d78c(0x75)](_0x163a4a[_0x46d78c(0x6f)]),console[_0x46d78c(0x75)](_0x46d78c(0x87)),console[_0x46d78c(0x75)](_0x163a4a['ecrJT']),console[_0x46d78c(0x75)]('\x20\x20\x20When\x20you\x20are\x20done,\x20close\x20the\x20browser.\x0a');const _0x2c069a=await chromium['launch']({'headless':![]}),_0x414069=_0x57a927?{'storageState':_0xf8d5a2}:{};let _0x1e7055=null;try{_0x1e7055=await _0x2c069a['newContext'](_0x414069),await _0x163a4a['cjmKw'](addProfileSetupBanner,_0x1e7055);const _0xfe75f2=await _0x1e7055['newPage']();await _0xfe75f2['goto'](_0x407d8a||_0x163a4a[_0x46d78c(0x95)]),await new Promise(_0x434a06=>{const _0x564a23={'MwEew':function(_0x1d4814){return _0x163a4a['YryBE'](_0x1d4814);}};_0xfe75f2['on'](_0x163a4a['RwSrm'],async()=>{const _0x177ecc=_0x592e;try{console['log'](_0x177ecc(0x77)),await _0x1e7055?.['storageState']({'path':_0xf8d5a2}),_0x564a23['MwEew'](_0x434a06);}catch{_0x564a23['MwEew'](_0x434a06);}});});}finally{_0x1e7055&&await _0x1e7055['close']()[_0x46d78c(0x7d)](()=>{}),await _0x2c069a[_0x46d78c(0x73)]()[_0x46d78c(0x7d)](()=>{});}if(_0x3969ea){const _0x56a882=await readFile(_0xf8d5a2,'utf-8'),_0x2b98d5=await _0x163a4a['YryBE'](getToken);if(!_0x2b98d5)console[_0x46d78c(0x91)]('\x20\x20Could\x20not\x20encrypt:\x20No\x20API\x20token\x20found.\x20Run:\x20ranger\x20setup\x20[token]'),console['log'](_0x46d78c(0x7e)+_0xf8d5a2);else{const _0x5d250c=_0x163a4a[_0x46d78c(0x89)](encrypt,_0x56a882,_0x2b98d5);await _0x163a4a['EDXVL'](writeFile,_0x4f4a5b,_0x5d250c),await _0x163a4a['pupaF'](unlink,_0xf8d5a2),console[_0x46d78c(0x75)]('✓\x20Encrypted\x20auth\x20saved\x20to:\x20'+_0x4f4a5b),console[_0x46d78c(0x75)](_0x163a4a[_0x46d78c(0x8f)]),console[_0x46d78c(0x75)](_0x46d78c(0x7a));}}else console['log']('✓\x20Auth\x20state\x20saved\x20to:\x20'+_0xf8d5a2);_0x1a12c5?.[_0x46d78c(0x81)](_0x163a4a['TiYjm']),_0x1a12c5?.['trackPhaseStart'](_0x163a4a[_0x46d78c(0x8e)]),_0x56547f['browser']=_0x56547f['browser']||{},_0x56547f['browser'][_0x46d78c(0x8b)]=_0x56547f['browser']['contextOptions']||{},_0x56547f[_0x46d78c(0x76)][_0x46d78c(0x8b)]['storageState']=_0xf8d5a2,await writeFile(_0x5c5713,JSON[_0x46d78c(0x82)](_0x56547f,null,0x2)),console[_0x46d78c(0x75)](_0x46d78c(0x78)+_0x5c5713),_0x1a12c5?.[_0x46d78c(0x81)](_0x163a4a['uwXun']),console['log']('\x0a✅\x20Profile\x20\x22'+_0x45b5bd+'\x22\x20authentication\x20updated');}
@@ -1 +1 @@
1
- (function(_0x3173dd,_0x24e717){const _0x27f7eb=_0x5dce,_0x361612=_0x3173dd();while(!![]){try{const _0x55df19=-parseInt(_0x27f7eb(0x124))/0x1+-parseInt(_0x27f7eb(0x127))/0x2*(-parseInt(_0x27f7eb(0x129))/0x3)+-parseInt(_0x27f7eb(0x12b))/0x4+-parseInt(_0x27f7eb(0x12c))/0x5+parseInt(_0x27f7eb(0x128))/0x6*(parseInt(_0x27f7eb(0x126))/0x7)+-parseInt(_0x27f7eb(0x123))/0x8+parseInt(_0x27f7eb(0x12d))/0x9;if(_0x55df19===_0x24e717)break;else _0x361612['push'](_0x361612['shift']());}catch(_0xb86153){_0x361612['push'](_0x361612['shift']());}}}(_0x2f79,0x9b22f));import{join}from'path';import{existsSync}from'fs';import{getEnvDir}from'./utils/settings.js';function _0x2f79(){const _0x138c82=['\x0a✓\x20Now\x20using\x20profile\x20\x22','3075520gPTKXU','5956090LTnqda','34967997LJRSHZ','7079816TGNvBp','870144whJRTc','sKsWC','7hNKqDj','76IYmiyU','322482DOLZbJ','32493dRrwdZ'];_0x2f79=function(){return _0x138c82;};return _0x2f79();}function _0x5dce(_0x34922e,_0x9b13e0){_0x34922e=_0x34922e-0x123;const _0x2f790b=_0x2f79();let _0x5dce4c=_0x2f790b[_0x34922e];return _0x5dce4c;}import{writeActiveProfileName}from'./utils/activeProfile.js';export async function useEnv(_0x142420){const _0x5d3d12=_0x5dce,_0x14d16a={'zwHFJ':function(_0x228002,_0x529185,_0xd28a12){return _0x228002(_0x529185,_0xd28a12);},'sKsWC':function(_0x13422b,_0x3ceca4){return _0x13422b(_0x3ceca4);}},_0xa2f203=getEnvDir(_0x142420),_0x2b620e=_0x14d16a['zwHFJ'](join,_0xa2f203,'settings.json');if(!_0x14d16a[_0x5d3d12(0x125)](existsSync,_0xa2f203))throw new Error('Profile\x20\x22'+_0x142420+'\x22\x20not\x20found.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x142420);if(!existsSync(_0x2b620e))throw new Error('Config\x20not\x20found\x20at\x20'+_0x2b620e+'.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x142420);await writeActiveProfileName(_0x142420),console['log'](_0x5d3d12(0x12a)+_0x142420+'\x22');}
1
+ (function(_0x17a5a9,_0x1a6436){const _0x33a8d2=_0x8cd5,_0x527719=_0x17a5a9();while(!![]){try{const _0x1ed299=-parseInt(_0x33a8d2(0x1ca))/0x1*(parseInt(_0x33a8d2(0x1c5))/0x2)+-parseInt(_0x33a8d2(0x1c8))/0x3+parseInt(_0x33a8d2(0x1c2))/0x4+parseInt(_0x33a8d2(0x1c9))/0x5*(-parseInt(_0x33a8d2(0x1cb))/0x6)+parseInt(_0x33a8d2(0x1c6))/0x7+parseInt(_0x33a8d2(0x1c0))/0x8+parseInt(_0x33a8d2(0x1c3))/0x9;if(_0x1ed299===_0x1a6436)break;else _0x527719['push'](_0x527719['shift']());}catch(_0x2ce9c1){_0x527719['push'](_0x527719['shift']());}}}(_0x29f7,0x34038));import{join}from'path';import{existsSync}from'fs';import{getEnvDir}from'./utils/settings.js';import{writeActiveProfileName}from'./utils/activeProfile.js';export async function useEnv(_0x224f8f){const _0x446c86=_0x8cd5,_0x45855b={'VXaCf':function(_0x22b73c,_0x1ea4a2){return _0x22b73c(_0x1ea4a2);},'DAzZq':function(_0x11df66,_0x2652af){return _0x11df66(_0x2652af);}},_0x421129=getEnvDir(_0x224f8f),_0x1a02f0=join(_0x421129,_0x446c86(0x1cc));if(!_0x45855b['VXaCf'](existsSync,_0x421129))throw new Error(_0x446c86(0x1c1)+_0x224f8f+'\x22\x20not\x20found.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x224f8f);if(!_0x45855b[_0x446c86(0x1c4)](existsSync,_0x1a02f0))throw new Error(_0x446c86(0x1c7)+_0x1a02f0+'.\x20Run\x20first:\x20ranger\x20profile\x20add\x20'+_0x224f8f);await writeActiveProfileName(_0x224f8f),console['log'](_0x446c86(0x1cd)+_0x224f8f+'\x22');}function _0x8cd5(_0x415138,_0x3b75fb){_0x415138=_0x415138-0x1c0;const _0x29f759=_0x29f7();let _0x8cd583=_0x29f759[_0x415138];return _0x8cd583;}function _0x29f7(){const _0x323e5e=['2374680pnLixl','Profile\x20\x22','1306604lvaPCY','2423502Urpwqs','DAzZq','1066QBDwGA','327103skdwms','Config\x20not\x20found\x20at\x20','97488dWwHMh','155GavnAg','519qfsmzW','80772dpWOAR','settings.json','\x0a✓\x20Now\x20using\x20profile\x20\x22'];_0x29f7=function(){return _0x323e5e;};return _0x29f7();}
@@ -1 +1 @@
1
- (function(_0x10ae70,_0x49f063){const _0x5a8c06=_0xc03b,_0x1d2726=_0x10ae70();while(!![]){try{const _0x89848f=parseInt(_0x5a8c06(0x1e7))/0x1+-parseInt(_0x5a8c06(0x20a))/0x2*(-parseInt(_0x5a8c06(0x1c6))/0x3)+parseInt(_0x5a8c06(0x22b))/0x4+-parseInt(_0x5a8c06(0x220))/0x5+-parseInt(_0x5a8c06(0x1f3))/0x6*(parseInt(_0x5a8c06(0x1f4))/0x7)+-parseInt(_0x5a8c06(0x1fb))/0x8+-parseInt(_0x5a8c06(0x20d))/0x9;if(_0x89848f===_0x49f063)break;else _0x1d2726['push'](_0x1d2726['shift']());}catch(_0x142dbe){_0x1d2726['push'](_0x1d2726['shift']());}}}(_0x38d6,0x47e38));function _0x38d6(){const _0x1c76d6=['Dgv4Da','t0rHBKi','rMfPBgvKihrVigDLDcbICM93C2vYihnLC3nPB246ia','rhPis0q','DKjusLG','yMfZzty0','y2HLy2TSAxn0sxrLBuLK','DxbKyxrL','ufvu','BxPSquO','yufquwu','C2L6zq','ue9tva','uKLXtKG','r0vu','wwjzv2W','EvjTEhu','B2f3Ee8','vhDKDwm','sxrluuS','ndGWmZK0uMndCunc','r1jlzvy','wfbQrMG','AwHztNm','yLfjsKO','AhPttxC','kcGOlISPkYKRksSK','Aw1Hz2uVCg5N','ALzrswq','zgLNzxn0','uwLJuuW','BxHvugW','nZyYotCYwhn4zfvc','mJfdsgzfu2G','suzyzNm','DLL2r3u','zw52AxjVBM1LBNroyw1L','wLnuDve','l3vWBg9Hzc11CMXZ','D1j6reu','mJKZotKZnK9fAfz3Aa','AeDLDfG','Bwv0ywrHDge','rMfPBgvKihrVignYzwf0zsbZDgvWigfZC2v0oIa','ANnVBG','AxfPvwW','C2vZC2LVBLrVA2vU','l2fWAs92ms9Ty3aVyNjVD3nLCI1ZzxnZAw9UCY8','C3rYAw5NAwz5','Dg5pqwC','uefuq0G','q1r5zwC','ENDLAMW','r09LBee','B3nWyNC','nNf2rLbRuW','y29UC3rYDwn0B3i','vxfTENG','odGYmJuYD2XMuunj','yxbWBgLJyxrPB24VEMLW','yxbWBgLJyxrPB24VANnVBG','revxz0O','qMvHCMvYia','C2vHCMnO','DMLKzw8VD2vIBq','l3n0zxbZlW','CLrozNi','z1foBfm','thHbCg8','tgfkzLm','tuLkuLa','rMfPBgvKihrVignYzwf0zsbICM93C2vYihnLC3nPB246ia','yxbWBhK','vMrIEw8','swzhBfi','r0vyAMS','l2fWAs92ms9Ty3aVChjVEhKTC2vZC2LVBG','mti2mZC1zunmqLvc','wvLvA0W','ELjIwNe','Dfn0AeO','DNnLtw0','rMfPBgvKihrVihvWBg9HzcbMAwXLoIa','vwLvy1i','DxjS','AKHrr28','rwfpr1q','Dg9tDhjPBMC','mJmWmdG2ofHLrgrJBW','l3n0zxbZ','DgfZAW','mteXmti2t2vbB2TH','y2H1t1i','ENnKweG','DLLjBNy','tgDorLO','vMXKz04','tM8GqvbjihrVA2vUignVBMzPz3vYzwqUifj1BJOGCMfUz2vYihnLDhvWifT0B2TLBL0','rMfPBgvKihrVihvWzgf0zsbICM93C2vYihnLC3nPB246ia','EvP3rfC','y2HLy2TZDw0','yxbWBgLJyxrPB24VANnVBMW','vMrbtLa','reLMzem'];_0x38d6=function(){return _0x1c76d6;};return _0x38d6();}const _0x49a800=(function(){const _0x3e444f=_0xc03b,_0x4b20e4={'DEWgJ':function(_0x26d009,_0x20ab7f){return _0x26d009!==_0x20ab7f;},'ODanB':_0x3e444f(0x1ee),'aAPQe':function(_0x4b5630,_0xea77a2){return _0x4b5630===_0xea77a2;},'ihYNs':'rwWGc'};let _0xfa81e3=!![];return function(_0x2d5cf0,_0x47557f){const _0x32129f=_0x3e444f;if(_0x4b20e4[_0x32129f(0x1dd)](_0x4b20e4[_0x32129f(0x1ea)],_0x4b20e4[_0x32129f(0x1ea)])){const _0x3222a7=_0xfa81e3?function(){const _0x16977b=_0x32129f;if(_0x47557f){if(_0x4b20e4[_0x16977b(0x210)](_0x16977b(0x1f2),_0x16977b(0x1eb))){const _0xf325ff=_0x47557f['apply'](_0x2d5cf0,arguments);return _0x47557f=null,_0xf325ff;}else{const _0x2001f2=_0x2aca4e?function(){if(_0x518326){const _0x2a51a7=_0x28a349['apply'](_0x787667,arguments);return _0x66daf3=null,_0x2a51a7;}}:function(){};return _0x3f6cd5=![],_0x2001f2;}}}:function(){};return _0xfa81e3=![],_0x3222a7;}else return _0x3ee1a4(_0x5bb472,_0x19f49f,_0x4b20e4[_0x32129f(0x1d4)]);};}()),_0x3e700c=_0x49a800(this,function(){const _0x4a3a9f=_0xc03b;return _0x3e700c[_0x4a3a9f(0x22a)]()[_0x4a3a9f(0x212)](_0x4a3a9f(0x1ed))[_0x4a3a9f(0x22a)]()[_0x4a3a9f(0x20b)](_0x3e700c)[_0x4a3a9f(0x212)](_0x4a3a9f(0x1ed));});_0x3e700c();import{getToken}from'./keychain.js';import{getApiBaseUrl}from'./environment.js';function _0xc03b(_0x52e39e,_0x3b930a){_0x52e39e=_0x52e39e-0x1c6;const _0x32a46=_0x38d6();let _0x3e700c=_0x32a46[_0x52e39e];if(_0xc03b['iYNsqR']===undefined){var _0x49a800=function(_0x55a7b3){const _0x101e99='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x100c2d='',_0x5e05fc='',_0x2ba450=_0x100c2d+_0x49a800;for(let _0x3d607c=0x0,_0x284e04,_0x4e821e,_0x22780d=0x0;_0x4e821e=_0x55a7b3['charAt'](_0x22780d++);~_0x4e821e&&(_0x284e04=_0x3d607c%0x4?_0x284e04*0x40+_0x4e821e:_0x4e821e,_0x3d607c++%0x4)?_0x100c2d+=_0x2ba450['charCodeAt'](_0x22780d+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x284e04>>(-0x2*_0x3d607c&0x6)):_0x3d607c:0x0){_0x4e821e=_0x101e99['indexOf'](_0x4e821e);}for(let _0x5791e6=0x0,_0x107659=_0x100c2d['length'];_0x5791e6<_0x107659;_0x5791e6++){_0x5e05fc+='%'+('00'+_0x100c2d['charCodeAt'](_0x5791e6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5e05fc);};_0xc03b['UWVRTk']=_0x49a800,_0xc03b['pvBRLA']={},_0xc03b['iYNsqR']=!![];}const _0x38d60c=_0x32a46[0x0],_0xc03b98=_0x52e39e+_0x38d60c,_0x104512=_0xc03b['pvBRLA'][_0xc03b98];if(!_0x104512){const _0x2aca4e=function(_0x317f2f){this['IidDiI']=_0x317f2f,this['aeWoym']=[0x1,0x0,0x0],this['tCzVYi']=function(){return'newState';},this['EeFyds']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['SaOGrP']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x2aca4e['prototype']['TXPKfj']=function(){const _0x3faa39=new RegExp(this['EeFyds']+this['SaOGrP']),_0x44079b=_0x3faa39['test'](this['tCzVYi']['toString']())?--this['aeWoym'][0x1]:--this['aeWoym'][0x0];return this['lnzxhp'](_0x44079b);},_0x2aca4e['prototype']['lnzxhp']=function(_0x563764){if(!Boolean(~_0x563764))return _0x563764;return this['IymxSb'](this['IidDiI']);},_0x2aca4e['prototype']['IymxSb']=function(_0x3f6cd5){for(let _0x518326=0x0,_0x325e5d=this['aeWoym']['length'];_0x518326<_0x325e5d;_0x518326++){this['aeWoym']['push'](Math['round'](Math['random']())),_0x325e5d=this['aeWoym']['length'];}return _0x3f6cd5(this['aeWoym'][0x0]);},new _0x2aca4e(_0xc03b)['TXPKfj'](),_0x3e700c=_0xc03b['UWVRTk'](_0x3e700c),_0xc03b['pvBRLA'][_0xc03b98]=_0x3e700c;}else _0x3e700c=_0x104512;return _0x3e700c;}import{createHash}from'crypto';import{withRetry}from'./retry.js';export async function createBrowserSession(_0x26382b){const _0x458a51=_0xc03b,_0x1ad4a6={'Vdbyo':function(_0x5af42b){return _0x5af42b();},'tnOAg':'No\x20API\x20token\x20configured.\x20Run:\x20ranger\x20setup\x20[token]','ospbw':_0x458a51(0x1df),'vYInv':'application/json'},_0x1190ba=await _0x1ad4a6[_0x458a51(0x21c)](getToken);if(!_0x1190ba)throw new Error(_0x1ad4a6[_0x458a51(0x204)]);const _0x12f5dd=getApiBaseUrl(),_0x560b1f=await fetch(_0x12f5dd+'/api/v1/mcp/browser-sessions',{'method':_0x1ad4a6[_0x458a51(0x209)],'headers':{'Authorization':_0x458a51(0x211)+_0x1190ba,'Content-Type':_0x1ad4a6[_0x458a51(0x1c9)]},'body':JSON[_0x458a51(0x203)]({'environmentName':_0x26382b?.[_0x458a51(0x1f7)],'settings':_0x26382b?.['settings'],'task':_0x26382b?.[_0x458a51(0x22d)],'url':_0x26382b?.[_0x458a51(0x227)],'featureId':_0x26382b?.['featureId'],'checklistItemId':_0x26382b?.[_0x458a51(0x1d9)]})});if(!_0x560b1f['ok']){const _0x11c031=await _0x560b1f[_0x458a51(0x1d3)]();throw new Error(_0x458a51(0x21a)+_0x11c031);}return _0x560b1f[_0x458a51(0x1ff)]();}export async function updateBrowserSession(_0x57a7d3,_0x3874dd){const _0x502353=_0xc03b,_0x4976ed={'yRmxu':function(_0xe1dd03,_0x1028b1){return _0xe1dd03!==_0x1028b1;},'Twduc':_0x502353(0x1e4),'PLXKw':_0x502353(0x1e9),'ItKQK':function(_0x353500){return _0x353500();},'RIqNH':function(_0x2ca1c0,_0x4ab467,_0x1dfb5f){return _0x2ca1c0(_0x4ab467,_0x1dfb5f);},'GOelA':_0x502353(0x205),'iqiUl':_0x502353(0x20f),'rTNfr':function(_0x42aba7,_0x166e69,_0x35ca46){return _0x42aba7(_0x166e69,_0x35ca46);},'zRbZq':'updateBrowserSession'};return _0x4976ed[_0x502353(0x215)](withRetry,async()=>{const _0x398e53=_0x502353;if(_0x4976ed[_0x398e53(0x1e3)](_0x4976ed[_0x398e53(0x1e5)],_0x4976ed['PLXKw'])){const _0x1be7d7=await _0x4976ed[_0x398e53(0x1e6)](getToken);if(!_0x1be7d7)throw new Error(_0x398e53(0x1cc));const _0x2bcdac=_0x4976ed[_0x398e53(0x1e6)](getApiBaseUrl),_0x13436a=await _0x4976ed[_0x398e53(0x1e0)](fetch,_0x2bcdac+_0x398e53(0x202)+_0x57a7d3,{'method':_0x4976ed[_0x398e53(0x208)],'headers':{'Authorization':_0x398e53(0x211)+_0x1be7d7,'Content-Type':_0x4976ed[_0x398e53(0x200)]},'body':JSON[_0x398e53(0x203)](_0x3874dd)});if(!_0x13436a['ok']){const _0x2cc1e1=await _0x13436a[_0x398e53(0x1d3)]();throw new Error(_0x398e53(0x1cd)+_0x2cc1e1);}return _0x13436a[_0x398e53(0x1ff)]();}else{if(_0x36b378){const _0x3037e7=_0x42880b[_0x398e53(0x21b)](_0x5ea9cf,arguments);return _0x59e9aa=null,_0x3037e7;}}},{'label':_0x4976ed[_0x502353(0x222)]});}export async function getBrowserSession(_0x73d685){const _0x332ee6=_0xc03b,_0x28bc98={'CTyeg':function(_0x4fabc2){return _0x4fabc2();},'yZwDW':_0x332ee6(0x1cc),'itdXv':function(_0x433734,_0x4bba87,_0x3d0dcf){return _0x433734(_0x4bba87,_0x3d0dcf);},'QicQL':_0x332ee6(0x1e1)},_0x1b094a=await _0x28bc98['CTyeg'](getToken);if(!_0x1b094a)throw new Error(_0x28bc98[_0x332ee6(0x1ce)]);const _0x19fe0e=_0x28bc98[_0x332ee6(0x206)](getApiBaseUrl),_0x54b14f=await _0x28bc98['itdXv'](fetch,_0x19fe0e+'/api/v1/mcp/browser-sessions/'+_0x73d685,{'method':_0x28bc98[_0x332ee6(0x1f1)],'headers':{'Authorization':'Bearer\x20'+_0x1b094a}});if(!_0x54b14f['ok']){const _0x2b4ac9=await _0x54b14f[_0x332ee6(0x1d3)]();throw new Error(_0x332ee6(0x1d5)+_0x2b4ac9);}return _0x54b14f[_0x332ee6(0x1ff)]();}export async function getUploadUrls(_0x4a8ec7,_0x3f38fd,_0x3cc21d,_0x1b988f){const _0x59a5e8=_0xc03b,_0x4cfba9={'IfGlR':function(_0x5c48b5,_0x2279be,_0x4689b6,_0x48b7c7){return _0x5c48b5(_0x2279be,_0x4689b6,_0x48b7c7);},'tYlVl':_0x59a5e8(0x20e),'tSthJ':function(_0x4fbe51){return _0x4fbe51();},'VldgN':_0x59a5e8(0x1cc),'mGSQO':function(_0x4d073a){return _0x4d073a();},'GRKeV':function(_0x27dbe3,_0x56bfae,_0xabb34a){return _0x27dbe3(_0x56bfae,_0xabb34a);},'hzSMw':_0x59a5e8(0x20f),'Rucda':function(_0x5bb162,_0x849ebe){return _0x5bb162!==_0x849ebe;},'YYUkL':function(_0xae45fb,_0x18be72){return _0xae45fb!==_0x18be72;},'vYvGu':function(_0x202fcb,_0x28dd6e){return _0x202fcb!==_0x28dd6e;},'gQNlS':_0x59a5e8(0x1e2)},_0x40ead3=await _0x4cfba9[_0x59a5e8(0x223)](getToken);if(!_0x40ead3)throw new Error(_0x4cfba9[_0x59a5e8(0x1cb)]);const _0x410792=_0x4cfba9['mGSQO'](getApiBaseUrl),_0x4954ff=await _0x4cfba9[_0x59a5e8(0x1e8)](fetch,_0x410792+'/api/v1/mcp/browser-sessions/'+_0x4a8ec7+_0x59a5e8(0x1f9),{'method':'POST','headers':{'Authorization':'Bearer\x20'+_0x40ead3,'Content-Type':_0x4cfba9[_0x59a5e8(0x1ec)]},'body':JSON['stringify']({'filename':_0x3f38fd,'filetype':_0x3cc21d,..._0x1b988f?.[_0x59a5e8(0x1de)]!==undefined&&{'size':_0x1b988f[_0x59a5e8(0x1de)]},..._0x4cfba9['Rucda'](_0x1b988f?.[_0x59a5e8(0x1cf)],undefined)&&{'checksum':_0x1b988f['checksum']},..._0x4cfba9[_0x59a5e8(0x221)](_0x1b988f?.['metadata'],undefined)&&{'metadata':_0x1b988f[_0x59a5e8(0x1fd)]}})});if(!_0x4954ff['ok']){if(_0x4cfba9[_0x59a5e8(0x1f6)](_0x4cfba9[_0x59a5e8(0x216)],_0x59a5e8(0x1e2)))return _0x4cfba9[_0x59a5e8(0x21d)](_0x4e7533,_0x39636c,_0xcb30b9,_0x4cfba9['tYlVl']);else{const _0x42047e=await _0x4954ff[_0x59a5e8(0x1d3)]();throw new Error('Failed\x20to\x20get\x20upload\x20URLs:\x20'+_0x42047e);}}return _0x4954ff['json']();}export async function uploadFile(_0x15f9e6,_0x1685cb,_0x13db5f){const _0x37d1d6=_0xc03b,_0x5324ac={'lpBBW':function(_0x1f2508,_0x5051c9,_0x2585bc){return _0x1f2508(_0x5051c9,_0x2585bc);},'DIfdC':_0x37d1d6(0x1db)},_0x4ae806=await _0x5324ac['lpBBW'](fetch,_0x15f9e6,{'method':_0x5324ac[_0x37d1d6(0x1d2)],'headers':{'Content-Type':_0x13db5f,'Content-Length':_0x1685cb['length'][_0x37d1d6(0x22a)]()},'body':_0x1685cb});if(!_0x4ae806['ok']){const _0x56c6ec=await _0x4ae806[_0x37d1d6(0x1d3)]();throw new Error(_0x37d1d6(0x225)+_0x56c6ec);}}export async function uploadTrace(_0xd898ec,_0x1ac270){const _0x39b5a5=_0xc03b,_0x5dda1c={'jHQGo':function(_0x505823,_0x2ffcc5,_0x203608,_0x34538d){return _0x505823(_0x2ffcc5,_0x203608,_0x34538d);},'UiUcR':_0x39b5a5(0x20e)};return _0x5dda1c[_0x39b5a5(0x228)](uploadFile,_0xd898ec,_0x1ac270,_0x5dda1c[_0x39b5a5(0x226)]);}export async function uploadConversation(_0x52113f,_0x5d31a7){const _0x3c1f67=_0xc03b,_0x1b8b74={'hGetX':function(_0x290418,_0x160a27,_0x450b84,_0x25d87a){return _0x290418(_0x160a27,_0x450b84,_0x25d87a);},'XAqLl':_0x3c1f67(0x1d0)};return _0x1b8b74[_0x3c1f67(0x1fc)](uploadFile,_0x52113f,_0x5d31a7,_0x1b8b74['XAqLl']);}export async function uploadScreenshot(_0x14575d,_0x6d6aa){const _0x11fe6b=_0xc03b,_0x3f74b3={'LaJfS':function(_0x4e5041,_0x5a776b,_0x43e122,_0xe14d5a){return _0x4e5041(_0x5a776b,_0x43e122,_0xe14d5a);}};return _0x3f74b3[_0x11fe6b(0x218)](uploadFile,_0x14575d,_0x6d6aa,_0x11fe6b(0x1ee));}export async function uploadVideo(_0x33ea5e,_0x2f9afd){const _0x2d0245=_0xc03b,_0x4ec1e5={'jVQId':function(_0x3dc59a,_0x63dae6,_0x292f52,_0x4f6a43){return _0x3dc59a(_0x63dae6,_0x292f52,_0x4f6a43);}};return _0x4ec1e5[_0x2d0245(0x1ef)](uploadFile,_0x33ea5e,_0x2f9afd,_0x2d0245(0x213));}export function buildTraceViewerUrl(_0x2adb51){const _0x480b8b=encodeURIComponent(_0x2adb51);return'https://trace.playwright.dev/?trace='+_0x480b8b;}export async function getProxySessionToken(){const _0x8babde=_0xc03b,_0x3a2a38={'LVSuk':'No\x20API\x20token\x20configured.\x20Run:\x20ranger\x20setup\x20[token]','IDnNk':function(_0x2ef341){return _0x2ef341();},'ZSTuQ':function(_0x495ebf,_0x26b9ff,_0x222de4){return _0x495ebf(_0x26b9ff,_0x222de4);},'GEXjk':_0x8babde(0x1df)},_0x22472a=await getToken();if(!_0x22472a)throw new Error(_0x3a2a38['LVSuk']);const _0x173c18=_0x3a2a38['IDnNk'](getApiBaseUrl),_0x338b9e=await _0x3a2a38[_0x8babde(0x1f8)](fetch,_0x173c18+_0x8babde(0x21f),{'method':_0x3a2a38[_0x8babde(0x21e)],'headers':{'Authorization':_0x8babde(0x211)+_0x22472a}});if(!_0x338b9e['ok']){const _0x50a4df=await _0x338b9e[_0x8babde(0x1d3)]();throw new Error('Failed\x20to\x20get\x20proxy\x20session\x20token:\x20'+_0x50a4df);}const _0x306767=await _0x338b9e[_0x8babde(0x1ff)]();return _0x306767[_0x8babde(0x201)];}export function computeChecksum(_0x197580){const _0x2e9c5d=_0xc03b,_0x133922={'VdANP':'md5'};return createHash(_0x133922[_0x2e9c5d(0x1d1)])[_0x2e9c5d(0x1da)](_0x197580)[_0x2e9c5d(0x1f0)](_0x2e9c5d(0x1d8));}export async function createVerificationStep(_0x2c27f6,_0x14c63c){const _0x2fb2d8=_0xc03b,_0x48bf54={'zwejl':_0x2fb2d8(0x1cc),'chuOR':function(_0x1424a3){return _0x1424a3();},'MIJRP':function(_0x32c8de,_0x2e76ee,_0x1de967){return _0x32c8de(_0x2e76ee,_0x1de967);},'vBTJX':_0x2fb2d8(0x1df),'LxApo':_0x2fb2d8(0x20f),'EaOGT':function(_0x4a548c,_0x58fdd9){return _0x4a548c===_0x58fdd9;},'GunfY':_0x2fb2d8(0x1f5)},_0xc71dcc=await getToken();if(!_0xc71dcc)throw new Error(_0x48bf54[_0x2fb2d8(0x207)]);const _0x2a1046=_0x48bf54[_0x2fb2d8(0x1c7)](getApiBaseUrl),_0x3b233f=await _0x48bf54[_0x2fb2d8(0x219)](fetch,_0x2a1046+'/api/v1/mcp/browser-sessions/'+_0x2c27f6+_0x2fb2d8(0x22c),{'method':_0x48bf54[_0x2fb2d8(0x1d7)],'headers':{'Authorization':_0x2fb2d8(0x211)+_0xc71dcc,'Content-Type':_0x48bf54[_0x2fb2d8(0x217)]},'body':JSON[_0x2fb2d8(0x203)](_0x14c63c)});if(!_0x3b233f['ok']){if(_0x48bf54[_0x2fb2d8(0x229)](_0x48bf54['GunfY'],_0x2fb2d8(0x1fa)))throw new _0x5ece53('No\x20API\x20token\x20configured.\x20Run:\x20ranger\x20setup\x20[token]');else{const _0x46f452=await _0x3b233f['text']();throw new Error('Failed\x20to\x20create\x20verification\x20step:\x20'+_0x46f452);}}return _0x3b233f['json']();}export async function createStepAsset(_0x15fb8e,_0x5b4736,_0x2babb4){const _0x39f84c=_0xc03b,_0x348c52={'mzlAJ':function(_0x13bb8d){return _0x13bb8d();},'vseMm':_0x39f84c(0x1cc),'DzHKD':function(_0x2d50fe){return _0x2d50fe();},'zsdXH':function(_0x12422f,_0xb6065,_0x22a02a){return _0x12422f(_0xb6065,_0x22a02a);},'Uqmzx':'POST','LgNFZ':'application/json'},_0x1d0109=await _0x348c52[_0x39f84c(0x1dc)](getToken);if(!_0x1d0109)throw new Error(_0x348c52[_0x39f84c(0x224)]);const _0xa3d9d4=_0x348c52[_0x39f84c(0x1d6)](getApiBaseUrl),_0x4aa77c=await _0x348c52[_0x39f84c(0x1c8)](fetch,_0xa3d9d4+_0x39f84c(0x202)+_0x15fb8e+_0x39f84c(0x214)+_0x5b4736+'/assets',{'method':_0x348c52[_0x39f84c(0x20c)],'headers':{'Authorization':_0x39f84c(0x211)+_0x1d0109,'Content-Type':_0x348c52[_0x39f84c(0x1ca)]},'body':JSON[_0x39f84c(0x203)](_0x2babb4)});if(!_0x4aa77c['ok']){const _0x1319f2=await _0x4aa77c[_0x39f84c(0x1d3)]();throw new Error(_0x39f84c(0x1fe)+_0x1319f2);}return _0x4aa77c[_0x39f84c(0x1ff)]();}
1
+ (function(_0x1e8b7a,_0x11adc8){const _0x5942bc=_0x50a5,_0x26c1cb=_0x1e8b7a();while(!![]){try{const _0x382e9b=parseInt(_0x5942bc(0x171))/0x1*(-parseInt(_0x5942bc(0x1d8))/0x2)+parseInt(_0x5942bc(0x18c))/0x3*(parseInt(_0x5942bc(0x18b))/0x4)+-parseInt(_0x5942bc(0x19e))/0x5+parseInt(_0x5942bc(0x199))/0x6*(-parseInt(_0x5942bc(0x1c1))/0x7)+parseInt(_0x5942bc(0x1d2))/0x8+-parseInt(_0x5942bc(0x198))/0x9*(-parseInt(_0x5942bc(0x1bc))/0xa)+-parseInt(_0x5942bc(0x1b6))/0xb;if(_0x382e9b===_0x11adc8)break;else _0x26c1cb['push'](_0x26c1cb['shift']());}catch(_0x3972a8){_0x26c1cb['push'](_0x26c1cb['shift']());}}}(_0x3ac3,0x77d95));const _0x4af939=(function(){const _0x5721ca=_0x50a5,_0x4129a2={'doMIQ':function(_0x470d1e,_0x5b4db3){return _0x470d1e(_0x5b4db3);},'jZHex':function(_0x162c65,_0x2d69d1){return _0x162c65===_0x2d69d1;},'EmmGw':_0x5721ca(0x18d)};let _0x3f9669=!![];return function(_0x2702cc,_0x56bf77){const _0x12d6b9=_0x5721ca,_0x1a6a7e={'JwqJX':function(_0x2f3d5a,_0xfb682a){const _0x3a748c=_0x50a5;return _0x4129a2[_0x3a748c(0x192)](_0x2f3d5a,_0xfb682a);},'dqIaR':function(_0x47c251,_0x3a31d7){const _0x1ada3a=_0x50a5;return _0x4129a2[_0x1ada3a(0x1ce)](_0x47c251,_0x3a31d7);},'oXDVx':_0x4129a2[_0x12d6b9(0x1ac)]},_0x1f2736=_0x3f9669?function(){const _0x22da18=_0x12d6b9;if(_0x1a6a7e['dqIaR'](_0x1a6a7e[_0x22da18(0x1b2)],_0x22da18(0x196))){const _0x3a01bf=_0x1a6a7e['JwqJX'](_0x599529,_0x385cad);return'https://trace.playwright.dev/?trace='+_0x3a01bf;}else{if(_0x56bf77){const _0x46ad0e=_0x56bf77['apply'](_0x2702cc,arguments);return _0x56bf77=null,_0x46ad0e;}}}:function(){};return _0x3f9669=![],_0x1f2736;};}()),_0x2e04ce=_0x4af939(this,function(){const _0x2f1c8b=_0x50a5,_0x8065de={'vHjoo':_0x2f1c8b(0x1bb)};return _0x2e04ce['toString']()[_0x2f1c8b(0x1d7)]('(((.+)+)+)+$')[_0x2f1c8b(0x179)]()[_0x2f1c8b(0x1cd)](_0x2e04ce)['search'](_0x8065de[_0x2f1c8b(0x1b4)]);});_0x2e04ce();import{getToken}from'./keychain.js';import{getApiBaseUrl}from'./environment.js';import{createHash}from'crypto';import{withRetry}from'./retry.js';export async function createBrowserSession(_0x3d5af4){const _0x5f04f8=_0x50a5,_0x2bdbf1={'wdjkq':_0x5f04f8(0x172),'WohJF':function(_0x14907b){return _0x14907b();},'tjhTg':function(_0x235924,_0x269cdd){return _0x235924===_0x269cdd;},'XuYac':'QFfOk','nOMUp':_0x5f04f8(0x1da),'hDjWi':_0x5f04f8(0x187)},_0x11b00d=await _0x2bdbf1[_0x5f04f8(0x1a8)](getToken);if(!_0x11b00d){if(_0x2bdbf1['tjhTg'](_0x2bdbf1[_0x5f04f8(0x1e5)],_0x2bdbf1[_0x5f04f8(0x1e5)]))throw new Error(_0x2bdbf1['wdjkq']);else throw new _0xb888b9(_0x2bdbf1[_0x5f04f8(0x189)]);}const _0x164935=_0x2bdbf1[_0x5f04f8(0x1a8)](getApiBaseUrl),_0x2798d5=await fetch(_0x164935+'/api/v1/mcp/browser-sessions',{'method':_0x2bdbf1[_0x5f04f8(0x1be)],'headers':{'Authorization':'Bearer\x20'+_0x11b00d,'Content-Type':_0x2bdbf1['hDjWi']},'body':JSON[_0x5f04f8(0x17e)]({'environmentName':_0x3d5af4?.[_0x5f04f8(0x17f)],'settings':_0x3d5af4?.[_0x5f04f8(0x1a7)],'task':_0x3d5af4?.[_0x5f04f8(0x178)],'url':_0x3d5af4?.['url'],'featureId':_0x3d5af4?.[_0x5f04f8(0x194)],'checklistItemId':_0x3d5af4?.[_0x5f04f8(0x19d)]})});if(!_0x2798d5['ok']){const _0x525f1d=await _0x2798d5['text']();throw new Error(_0x5f04f8(0x1cf)+_0x525f1d);}return _0x2798d5[_0x5f04f8(0x1a5)]();}function _0x3ac3(){const _0x490fe7=['qLf2wve','whvzywm','rKnOu1e','yMfZzty0','twziAfe','mti2mZD1wxDiEhi','tM8GqvbjihrVA2vUignVBMzPz3vYzwqUifj1BJOGCMfUz2vYihnLDhvWifT0B2TLBL0','yxbWBhK','C2vZC2LVBLrVA2vU','s3rYv0q','Dgv4Da','rMfPBgvKihrVihvWBg9HzcbMAwXLoIa','DgfZAW','Dg9tDhjPBMC','AhnJsKq','tK9pwfC','C0zPzvK','Bw1fALa','C3rYAw5NAwz5','zw52AxjVBM1LBNroyw1L','sfLZq1a','wM1Yt2i','DxbKyxrLqNjVD3nLCLnLC3nPB24','zMTHEeq','rKXXuvq','l2fWAs92ms9Ty3aVyNjVD3nLCI1ZzxnZAw9UCY8','r0vu','yxbWBgLJyxrPB24VANnVBG','Bwq1','D2rQA3e','rhHJrge','ohL2wgXcqG','mteYmte5ou1WBezdyq','DwzHsMW','C2L6zq','uvnirLi','rNzWDKi','sefzzey','zg9nsve','DMLKzw8VD2vIBq','zMvHDhvYzuLK','r3rNy00','sxDZD3y','l2fWAs92ms9Ty3aVChjVEhKTC2vZC2LVBG','mtHWDK9pv04','mZmXmty0uLrIENP2','rMfPBgvKihrVignYzwf0zsbZDgvWigfZC2v0oIa','vwHjwfC','yu9greK','y2HLy2TSAxn0sxrLBuLK','nZu5nti1wNLzDLjM','yxbWBgLJyxrPB24VEMLW','l2fZC2v0CW','v2r0r3y','uLLht2G','Dgvky2q','uKvNzhC','ANnVBG','uNn3Ee8','C2v0DgLUz3m','v29OsKy','wLfrAvO','BNPpwgm','rKHvsKe','rw1Tr3C','rMfPBgvKihrVihvWzgf0zsbICM93C2vYihnLC3nPB246ia','tvDksMO','DuLHALq','rMfPBgvKihrVignYzwf0zsb2zxjPzMLJyxrPB24GC3rLCdOG','vuPNtwK','B1HevNG','Dhz4ufu','DKHQB28','yNztwNC','mJq2ntiXmgHNzwrhwq','DwvLDuO','wNLtBva','vKnduNe','txDNAKK','kcGOlISPkYKRksSK','odCXmteWDgTiuvPj','BgvUz3rO','BK9nvxa','rNHuBgi','uefuq0G','nZDTA0vfAMK','yxbWBgLJyxrPB24VANnVBMW','qMflExe','zgLNzxn0','CND5s3y','zxn2wgS','l3n0zxbZ','y2HLy2TZDw0','EwTIq2O','CKnTv00','Aw1Hz2uVCg5N','r1LLELq','y29UC3rYDwn0B3i','ALPizxG','rMfPBgvKihrVignYzwf0zsbICM93C2vYihnLC3nPB246ia','Bwv0ywrHDge','Ahr0Chm6lY90CMfJzs5WBgf5D3jPz2H0lMrLDI8/DhjHy2u9','nJiZodyYneHgsg5xtW','CeDRswG','DM9rELy','rMfPBgvKihrVigDLDcbICM93C2vYihnLC3nPB246ia','BefqtKi','C2vHCMnO','mZznD2Lxq20','Dxj4EeG','ue9tva','uwLiq2u','l3vWBg9Hzc11CMXZ','DxbKyxrL','ugPAwhm','DMLSrNy','rungsuW','yujOs2i','qMvHCMvYia','Chb4CvG'];_0x3ac3=function(){return _0x490fe7;};return _0x3ac3();}export async function updateBrowserSession(_0x8b457c,_0x2fa675){const _0x26cf9a=_0x50a5,_0x16a0bd={'WdtGv':function(_0x4bdac3,_0x5909d5){return _0x4bdac3===_0x5909d5;},'lAPNB':_0x26cf9a(0x1a3),'ZQQiZ':_0x26cf9a(0x1e4),'ZySmP':function(_0x315093){return _0x315093();},'EBlxe':function(_0x2c47b1,_0x12609d,_0x3952a6){return _0x2c47b1(_0x12609d,_0x3952a6);},'QeJTE':_0x26cf9a(0x1c0),'ueeuJ':_0x26cf9a(0x187),'tvxPU':function(_0x17c5c5,_0x1b40d2){return _0x17c5c5!==_0x1b40d2;},'sFieY':_0x26cf9a(0x1df)};return withRetry(async()=>{const _0x49a981=_0x26cf9a;if(_0x16a0bd[_0x49a981(0x1a1)](_0x16a0bd[_0x49a981(0x1d6)],_0x16a0bd[_0x49a981(0x1a9)]))throw new _0xd0ce0c(_0x49a981(0x172));else{const _0x53de3d=await _0x16a0bd[_0x49a981(0x1b8)](getToken);if(!_0x53de3d)throw new Error(_0x49a981(0x172));const _0x1ab7a9=getApiBaseUrl(),_0x1013b3=await _0x16a0bd['EBlxe'](fetch,_0x1ab7a9+'/api/v1/mcp/browser-sessions/'+_0x8b457c,{'method':_0x16a0bd['QeJTE'],'headers':{'Authorization':_0x49a981(0x1e2)+_0x53de3d,'Content-Type':_0x16a0bd[_0x49a981(0x1b7)]},'body':JSON[_0x49a981(0x17e)](_0x2fa675)});if(!_0x1013b3['ok']){if(_0x16a0bd[_0x49a981(0x1b3)](_0x49a981(0x17a),_0x16a0bd[_0x49a981(0x17c)])){const _0x350f39=await _0x1013b3[_0x49a981(0x176)]();throw new Error(_0x49a981(0x1ad)+_0x350f39);}else{const _0x5ac15b=_0x35c2e6['apply'](_0x1ef808,arguments);return _0x592d90=null,_0x5ac15b;}}return _0x1013b3['json']();}},{'label':_0x26cf9a(0x182)});}export async function getBrowserSession(_0x9eaae4){const _0x4632cf=_0x50a5,_0x4fbdf2={'ECFIL':_0x4632cf(0x1bb),'LGMYl':function(_0x222867){return _0x222867();},'QSHFR':function(_0x13202f,_0x1d55df,_0x44836f){return _0x13202f(_0x1d55df,_0x44836f);},'ZmrOb':function(_0x36c856,_0x5e7c8){return _0x36c856!==_0x5e7c8;},'MwgjI':_0x4632cf(0x1d9),'jjgGa':'qXTBd'},_0x438941=await getToken();if(!_0x438941)throw new Error('No\x20API\x20token\x20configured.\x20Run:\x20ranger\x20setup\x20[token]');const _0x5583b1=_0x4fbdf2['LGMYl'](getApiBaseUrl),_0x287241=await _0x4fbdf2[_0x4632cf(0x18f)](fetch,_0x5583b1+'/api/v1/mcp/browser-sessions/'+_0x9eaae4,{'method':_0x4632cf(0x186),'headers':{'Authorization':'Bearer\x20'+_0x438941}});if(!_0x287241['ok']){if(_0x4fbdf2[_0x4632cf(0x181)](_0x4fbdf2[_0x4632cf(0x1ba)],_0x4fbdf2['jjgGa'])){const _0xd5efac=await _0x287241[_0x4632cf(0x176)]();throw new Error(_0x4632cf(0x1d5)+_0xd5efac);}else return _0x268397[_0x4632cf(0x179)]()[_0x4632cf(0x1d7)](JhUcrF[_0x4632cf(0x1e0)])[_0x4632cf(0x179)]()[_0x4632cf(0x1cd)](_0x2fb6ac)[_0x4632cf(0x1d7)]('(((.+)+)+)+$');}return _0x287241[_0x4632cf(0x1a5)]();}export async function getUploadUrls(_0xf60a43,_0x59d07e,_0x3aebfd,_0x138474){const _0x3b0093=_0x50a5,_0x417ed1={'pGkIh':_0x3b0093(0x172),'QiHCe':function(_0x3c097c,_0x3dbb3d){return _0x3c097c!==_0x3dbb3d;},'voQzV':'xpRKb','GYezT':function(_0x3a3417){return _0x3a3417();},'FxTlb':function(_0x36f052,_0x4d65f4,_0x5dcca3){return _0x36f052(_0x4d65f4,_0x5dcca3);},'TxEVb':_0x3b0093(0x187),'FHUJA':function(_0x180090,_0x4d3c84){return _0x180090!==_0x4d3c84;},'RYGOh':_0x3b0093(0x1e1),'tGjbl':_0x3b0093(0x1af)},_0x500b71=await getToken();if(!_0x500b71){if(_0x417ed1[_0x3b0093(0x1db)](_0x417ed1[_0x3b0093(0x1d4)],'xpRKb')){if(_0x2a95a8){const _0x9076c0=_0xd13046[_0x3b0093(0x173)](_0x585cbd,arguments);return _0xd2ef6a=null,_0x9076c0;}}else throw new Error(_0x3b0093(0x172));}const _0x141534=_0x417ed1[_0x3b0093(0x1cc)](getApiBaseUrl),_0x27d511=await _0x417ed1[_0x3b0093(0x1bf)](fetch,_0x141534+_0x3b0093(0x185)+_0xf60a43+_0x3b0093(0x1dc),{'method':'POST','headers':{'Authorization':_0x3b0093(0x1e2)+_0x500b71,'Content-Type':_0x417ed1['TxEVb']},'body':JSON[_0x3b0093(0x17e)]({'filename':_0x59d07e,'filetype':_0x3aebfd,..._0x417ed1[_0x3b0093(0x1db)](_0x138474?.[_0x3b0093(0x18e)],undefined)&&{'size':_0x138474[_0x3b0093(0x18e)]},..._0x417ed1['QiHCe'](_0x138474?.['checksum'],undefined)&&{'checksum':_0x138474[_0x3b0093(0x1c8)]},..._0x417ed1[_0x3b0093(0x1db)](_0x138474?.[_0x3b0093(0x1d0)],undefined)&&{'metadata':_0x138474[_0x3b0093(0x1d0)]}})});if(!_0x27d511['ok']){if(_0x417ed1[_0x3b0093(0x1ab)](_0x417ed1[_0x3b0093(0x1a2)],_0x417ed1['tGjbl'])){const _0x962eac=await _0x27d511['text']();throw new Error('Failed\x20to\x20get\x20upload\x20URLs:\x20'+_0x962eac);}else throw new _0x236796(_0x417ed1[_0x3b0093(0x1d3)]);}return _0x27d511[_0x3b0093(0x1a5)]();}export async function uploadFile(_0x53e513,_0x3fd957,_0x229872){const _0x32321a=_0x50a5,_0x32089e={'PjZXs':function(_0x5324ef,_0x26f03a,_0x2c6660,_0x5d36a1){return _0x5324ef(_0x26f03a,_0x2c6660,_0x5d36a1);},'HYsCP':function(_0x2428eb,_0x32dcee,_0x50be0f){return _0x2428eb(_0x32dcee,_0x50be0f);},'rwyKv':'PUT','ppxqX':function(_0x1692d9,_0x20b003){return _0x1692d9===_0x20b003;},'DxcDa':_0x32321a(0x1aa)},_0x4ef4bf=await _0x32089e[_0x32321a(0x180)](fetch,_0x53e513,{'method':_0x32089e[_0x32321a(0x1c5)],'headers':{'Content-Type':_0x229872,'Content-Length':_0x3fd957[_0x32321a(0x1bd)][_0x32321a(0x179)]()},'body':_0x3fd957});if(!_0x4ef4bf['ok']){if(_0x32089e[_0x32321a(0x1e3)](_0x32089e[_0x32321a(0x18a)],_0x32089e[_0x32321a(0x18a)])){const _0x2449eb=await _0x4ef4bf[_0x32321a(0x176)]();throw new Error(_0x32321a(0x177)+_0x2449eb);}else return _0x32089e[_0x32321a(0x1de)](_0x5d4369,_0x4bd757,_0x569f39,_0x32321a(0x19f));}}export async function uploadTrace(_0x17f0aa,_0x2d013a){const _0x11c9ee=_0x50a5,_0xae02ac={'RswxO':function(_0x2d8314,_0x872331,_0x2746e9,_0x50a077){return _0x2d8314(_0x872331,_0x2746e9,_0x50a077);}};return _0xae02ac[_0x11c9ee(0x1a6)](uploadFile,_0x17f0aa,_0x2d013a,'application/zip');}export async function uploadConversation(_0x1e5ba8,_0x1f4639){const _0x48222e=_0x50a5,_0x34fdcf={'vWZLi':function(_0xbd18ed,_0x42cc1e,_0x1f5efd,_0x1c0a3a){return _0xbd18ed(_0x42cc1e,_0x1f5efd,_0x1c0a3a);}};return _0x34fdcf['vWZLi'](uploadFile,_0x1e5ba8,_0x1f4639,_0x48222e(0x1c2));}export async function uploadScreenshot(_0x3d741c,_0x4ed0ae){const _0x2c7c6a=_0x50a5,_0x19bf7d={'xkzEi':function(_0x86b8f8,_0x1df1a6,_0x577101,_0x37d769){return _0x86b8f8(_0x1df1a6,_0x577101,_0x37d769);},'HAYdF':_0x2c7c6a(0x1cb)};return _0x19bf7d['xkzEi'](uploadFile,_0x3d741c,_0x4ed0ae,_0x19bf7d[_0x2c7c6a(0x191)]);}export async function uploadVideo(_0x30e5e3,_0x2c7af1){const _0x1b650c=_0x50a5,_0x331c8c={'aOFDI':function(_0x4a40a3,_0x29d49a,_0x4e4fb9,_0x57ea1b){return _0x4a40a3(_0x29d49a,_0x4e4fb9,_0x57ea1b);},'VCCRq':_0x1b650c(0x193)};return _0x331c8c[_0x1b650c(0x19c)](uploadFile,_0x30e5e3,_0x2c7af1,_0x331c8c[_0x1b650c(0x1b9)]);}export function buildTraceViewerUrl(_0x42120a){const _0x33d296=_0x50a5,_0x5f4720={'FLqQT':function(_0x1a6ed3,_0x1f0657){return _0x1a6ed3(_0x1f0657);}},_0x325fb9=_0x5f4720[_0x33d296(0x184)](encodeURIComponent,_0x42120a);return _0x33d296(0x1d1)+_0x325fb9;}function _0x50a5(_0x118103,_0x3c1d6f){_0x118103=_0x118103-0x16e;const _0x42917f=_0x3ac3();let _0x2e04ce=_0x42917f[_0x118103];if(_0x50a5['ZWGeLE']===undefined){var _0x4af939=function(_0x1d0e2f){const _0x297180='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59df08='',_0x181558='',_0x32ede8=_0x59df08+_0x4af939;for(let _0x54552f=0x0,_0x1a4e2a,_0x52eb2c,_0x3c37cb=0x0;_0x52eb2c=_0x1d0e2f['charAt'](_0x3c37cb++);~_0x52eb2c&&(_0x1a4e2a=_0x54552f%0x4?_0x1a4e2a*0x40+_0x52eb2c:_0x52eb2c,_0x54552f++%0x4)?_0x59df08+=_0x32ede8['charCodeAt'](_0x3c37cb+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x1a4e2a>>(-0x2*_0x54552f&0x6)):_0x54552f:0x0){_0x52eb2c=_0x297180['indexOf'](_0x52eb2c);}for(let _0x254777=0x0,_0x1e0178=_0x59df08['length'];_0x254777<_0x1e0178;_0x254777++){_0x181558+='%'+('00'+_0x59df08['charCodeAt'](_0x254777)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x181558);};_0x50a5['iBcWIE']=_0x4af939,_0x50a5['NxFJjh']={},_0x50a5['ZWGeLE']=!![];}const _0x3ac33a=_0x42917f[0x0],_0x50a58b=_0x118103+_0x3ac33a,_0x42ad12=_0x50a5['NxFJjh'][_0x50a58b];if(!_0x42ad12){const _0x1eee5b=function(_0x8a336c){this['GHEkno']=_0x8a336c,this['RAFYAZ']=[0x1,0x0,0x0],this['OjzKev']=function(){return'newState';},this['CYuAjF']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['PPAQQL']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1eee5b['prototype']['sPijQe']=function(){const _0x40be6d=new RegExp(this['CYuAjF']+this['PPAQQL']),_0x15ff9e=_0x40be6d['test'](this['OjzKev']['toString']())?--this['RAFYAZ'][0x1]:--this['RAFYAZ'][0x0];return this['EuTPvt'](_0x15ff9e);},_0x1eee5b['prototype']['EuTPvt']=function(_0x10fed0){if(!Boolean(~_0x10fed0))return _0x10fed0;return this['DEYeco'](this['GHEkno']);},_0x1eee5b['prototype']['DEYeco']=function(_0x2edd59){for(let _0x1edf3e=0x0,_0x9cac7d=this['RAFYAZ']['length'];_0x1edf3e<_0x9cac7d;_0x1edf3e++){this['RAFYAZ']['push'](Math['round'](Math['random']())),_0x9cac7d=this['RAFYAZ']['length'];}return _0x2edd59(this['RAFYAZ'][0x0]);},new _0x1eee5b(_0x50a5)['sPijQe'](),_0x2e04ce=_0x50a5['iBcWIE'](_0x2e04ce),_0x50a5['NxFJjh'][_0x50a58b]=_0x2e04ce;}else _0x2e04ce=_0x42ad12;return _0x2e04ce;}export async function getProxySessionToken(){const _0x5e1ee9=_0x50a5,_0x2ed44d={'FChSQ':function(_0x24f797){return _0x24f797();},'WFhfF':_0x5e1ee9(0x172),'REgdw':function(_0xb26278){return _0xb26278();},'ZXIOZ':_0x5e1ee9(0x1da)},_0x50e95e=await _0x2ed44d[_0x5e1ee9(0x16e)](getToken);if(!_0x50e95e)throw new Error(_0x2ed44d['WFhfF']);const _0x21e87f=_0x2ed44d[_0x5e1ee9(0x1a4)](getApiBaseUrl),_0x4805ef=await fetch(_0x21e87f+_0x5e1ee9(0x197),{'method':_0x2ed44d['ZXIOZ'],'headers':{'Authorization':'Bearer\x20'+_0x50e95e}});if(!_0x4805ef['ok']){const _0x5071a4=await _0x4805ef[_0x5e1ee9(0x176)]();throw new Error('Failed\x20to\x20get\x20proxy\x20session\x20token:\x20'+_0x5071a4);}const _0x148bd2=await _0x4805ef[_0x5e1ee9(0x1a5)]();return _0x148bd2[_0x5e1ee9(0x174)];}export function computeChecksum(_0x5020b7){const _0x2ccd92=_0x50a5,_0x509e4f={'UJgMi':_0x2ccd92(0x188),'NOOXW':_0x2ccd92(0x16f)};return createHash(_0x509e4f[_0x2ccd92(0x1b1)])[_0x2ccd92(0x1dd)](_0x5020b7)[_0x2ccd92(0x1c4)](_0x509e4f[_0x2ccd92(0x17b)]);}export async function createVerificationStep(_0x50ea42,_0x33ea22){const _0x2fcb85=_0x50a5,_0x11a104={'mmEjP':'No\x20API\x20token\x20configured.\x20Run:\x20ranger\x20setup\x20[token]','emJvu':_0x2fcb85(0x1c3),'Dipsc':function(_0x398411){return _0x398411();},'UhIXW':function(_0x240ecf,_0x5b7925,_0x44e1ec){return _0x240ecf(_0x5b7925,_0x44e1ec);},'ykbCj':_0x2fcb85(0x1da),'FvpvB':'application/json'},_0x2fe2f2=await getToken();if(!_0x2fe2f2){if(_0x2fcb85(0x175)!==_0x11a104['emJvu'])throw new Error(_0x11a104['mmEjP']);else throw new _0x281323(_0x11a104[_0x2fcb85(0x17d)]);}const _0x26be3f=_0x11a104['Dipsc'](getApiBaseUrl),_0x4df498=await _0x11a104[_0x2fcb85(0x19b)](fetch,_0x26be3f+_0x2fcb85(0x185)+_0x50ea42+_0x2fcb85(0x1c7),{'method':_0x11a104[_0x2fcb85(0x1c9)],'headers':{'Authorization':_0x2fcb85(0x1e2)+_0x2fe2f2,'Content-Type':_0x11a104[_0x2fcb85(0x190)]},'body':JSON[_0x2fcb85(0x17e)](_0x33ea22)});if(!_0x4df498['ok']){const _0x3c999e=await _0x4df498[_0x2fcb85(0x176)]();throw new Error(_0x2fcb85(0x1b0)+_0x3c999e);}return _0x4df498['json']();}export async function createStepAsset(_0x50b790,_0x3bd9ec,_0x34168f){const _0x5539b1=_0x50a5,_0x38d5b3={'bvSZw':_0x5539b1(0x172),'esvXk':function(_0x58b2ae){return _0x58b2ae();},'MWJJj':function(_0x500d33,_0x9a10e9){return _0x500d33!==_0x9a10e9;},'GtgcM':_0x5539b1(0x170),'fkaxD':function(_0x81b087,_0x3ed723,_0x3c28a6){return _0x81b087(_0x3ed723,_0x3c28a6);},'rCmWM':_0x5539b1(0x1da)},_0x2b594c=await _0x38d5b3[_0x5539b1(0x1c6)](getToken);if(!_0x2b594c){if(_0x38d5b3[_0x5539b1(0x1ae)](_0x38d5b3[_0x5539b1(0x195)],_0x38d5b3['GtgcM']))throw new _0x4333fc(_0x38d5b3[_0x5539b1(0x1b5)]);else throw new Error(_0x38d5b3['bvSZw']);}const _0x4196af=_0x38d5b3['esvXk'](getApiBaseUrl),_0x181a31=await _0x38d5b3[_0x5539b1(0x183)](fetch,_0x4196af+_0x5539b1(0x185)+_0x50b790+'/steps/'+_0x3bd9ec+_0x5539b1(0x1a0),{'method':_0x38d5b3[_0x5539b1(0x1ca)],'headers':{'Authorization':_0x5539b1(0x1e2)+_0x2b594c,'Content-Type':'application/json'},'body':JSON[_0x5539b1(0x17e)](_0x34168f)});if(!_0x181a31['ok']){const _0x21b442=await _0x181a31[_0x5539b1(0x176)]();throw new Error(_0x5539b1(0x19a)+_0x21b442);}return _0x181a31['json']();}
@@ -303,6 +303,31 @@ export async function getItemFeedback(featureId, itemId) {
303
303
  }
304
304
  return response.json();
305
305
  }
306
+ /**
307
+ * Mark specific comments as addressed by a checklist item.
308
+ */
309
+ export async function markCommentsAddressed(featureId, checklistItemId, commentIds) {
310
+ const token = await getToken();
311
+ if (!token) {
312
+ throw new Error('No API token configured. Run: ranger setup [token]');
313
+ }
314
+ const baseUrl = getApiBaseUrl();
315
+ const response = await fetch(`${baseUrl}/api/v1/mcp/features/${featureId}/comments/address`, {
316
+ method: 'POST',
317
+ headers: {
318
+ Authorization: `Bearer ${token}`,
319
+ 'Content-Type': 'application/json',
320
+ },
321
+ body: JSON.stringify({
322
+ checklistItemId,
323
+ commentIds,
324
+ }),
325
+ });
326
+ if (!response.ok) {
327
+ const error = await response.text();
328
+ throw new Error(`Failed to mark comments as addressed: ${error}`);
329
+ }
330
+ }
306
331
  /**
307
332
  * Soft delete a feature
308
333
  */
@@ -1 +1 @@
1
- {"version":3,"file":"featureApi.js","sourceRoot":"","sources":["../../../src/commands/utils/featureApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureApi.js","sourceRoot":"","sources":["../../../src/commands/utils/featureApi.ts"],"names":[],"mappings":"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"}