@ranger-testing/ranger-cli 1.0.10 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +111 -0
  2. package/build/cli.js +290 -8
  3. package/build/cli.js.map +1 -1
  4. package/build/commands/addEnv.js +1 -1
  5. package/build/commands/addEnv.js.map +1 -1
  6. package/build/commands/clean.js +1 -1
  7. package/build/commands/clean.js.map +1 -1
  8. package/build/commands/dataMcpServer.js +1 -1
  9. package/build/commands/dataMcpServer.js.map +1 -1
  10. package/build/commands/env.js +46 -0
  11. package/build/commands/env.js.map +1 -0
  12. package/build/commands/feature.js +494 -0
  13. package/build/commands/feature.js.map +1 -0
  14. package/build/commands/index.js +1 -0
  15. package/build/commands/index.js.map +1 -1
  16. package/build/commands/skillup.js +68 -16
  17. package/build/commands/skillup.js.map +1 -1
  18. package/build/commands/start.js +1 -1
  19. package/build/commands/start.js.map +1 -1
  20. package/build/commands/status.js +42 -11
  21. package/build/commands/status.js.map +1 -1
  22. package/build/commands/update.js +29 -16
  23. package/build/commands/update.js.map +1 -1
  24. package/build/commands/updateEnv.js +1 -1
  25. package/build/commands/updateEnv.js.map +1 -1
  26. package/build/commands/useEnv.js +1 -1
  27. package/build/commands/useEnv.js.map +1 -1
  28. package/build/commands/utils/browserSessionsApi.js +1 -1
  29. package/build/commands/utils/browserSessionsApi.js.map +1 -1
  30. package/build/commands/utils/claudeConfig.js +73 -0
  31. package/build/commands/utils/claudeConfig.js.map +1 -0
  32. package/build/commands/utils/cliSecret.js +1 -1
  33. package/build/commands/utils/environment.js +69 -0
  34. package/build/commands/utils/environment.js.map +1 -0
  35. package/build/commands/utils/featureApi.js +190 -0
  36. package/build/commands/utils/featureApi.js.map +1 -0
  37. package/build/commands/utils/featureReportGenerator.js +170 -0
  38. package/build/commands/utils/featureReportGenerator.js.map +1 -0
  39. package/build/commands/utils/keychain.js +1 -1
  40. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  41. package/build/commands/utils/localAgentInstallationsApi.js.map +1 -1
  42. package/build/commands/utils/mcpConfig.js +1 -1
  43. package/build/commands/utils/settings.js +2 -2
  44. package/build/commands/utils/settings.js.map +1 -1
  45. package/build/commands/utils/skills.js +1 -1
  46. package/build/commands/utils/skills.js.map +1 -1
  47. package/build/commands/verifyFeature.js +451 -0
  48. package/build/commands/verifyFeature.js.map +1 -0
  49. package/build/commands/verifyInBrowser.js +1 -1
  50. package/build/commands/verifyInBrowser.js.map +1 -1
  51. package/build/skills/feature-tracker/SKILL.md +185 -0
  52. package/build/skills/feature-tracker/create.md +105 -0
  53. package/build/skills/feature-tracker/manage.md +145 -0
  54. package/build/skills/feature-tracker/report.md +159 -0
  55. package/build/skills/feature-tracker/start.md +93 -0
  56. package/build/skills/feature-tracker/verify.md +143 -0
  57. package/package.json +23 -20
  58. package/build/agents/bug-basher.md +0 -259
  59. package/build/agents/e2e-test-recommender.md +0 -164
  60. package/build/agents/quality-advocate.md +0 -164
  61. package/build/agents/ui-verifier.md +0 -100
  62. package/build/commands/addApp.js +0 -21
  63. package/build/commands/initAgents.js +0 -84
  64. package/build/commands/utils/agents.js +0 -45
  65. package/build/index.js +0 -436
  66. package/build/test-auth.js +0 -13
@@ -0,0 +1,451 @@
1
+ import { query } from '@anthropic-ai/claude-agent-sdk';
2
+ import { join, dirname } from 'path';
3
+ import { readFile, readdir, appendFile, mkdir, rm } from 'fs/promises';
4
+ import { existsSync } from 'fs';
5
+ import { execSync } from 'child_process';
6
+ import { tmpdir } from 'os';
7
+ import inquirer from 'inquirer';
8
+ import { loadSettings, resolveEnvVars, buildPlaywrightConfig, cleanupTempFiles, } from './utils/settings.js';
9
+ import { createBrowserSession, updateBrowserSession, getUploadUrls, uploadTrace, uploadConversation, uploadScreenshot, buildTraceViewerUrl, getAnthropicApiKey, } from './utils/browserSessionsApi.js';
10
+ import { getToken } from './utils/keychain.js';
11
+ import { getActiveFeatureId } from './feature.js';
12
+ import { getFeature, addChecklistItem, updateChecklistItem, } from './utils/featureApi.js';
13
+ /**
14
+ * Zip a directory and return the buffer
15
+ */
16
+ async function zipDirectory(dirPath) {
17
+ const outputPath = join(dirPath, '..', 'trace-upload.zip');
18
+ execSync(`cd "${dirPath}" && zip -r "${outputPath}" .`, {
19
+ stdio: 'pipe',
20
+ });
21
+ const buffer = await readFile(outputPath);
22
+ execSync(`rm "${outputPath}"`, { stdio: 'pipe' });
23
+ return buffer;
24
+ }
25
+ /**
26
+ * Find the trace directory for a session
27
+ */
28
+ function getTraceDirectory(sessionId) {
29
+ return join(process.cwd(), '.ranger', 'sessions', sessionId);
30
+ }
31
+ /**
32
+ * Get the conversation file path for a session
33
+ */
34
+ function getConversationFilePath(sessionId) {
35
+ return join(tmpdir(), 'ranger-browser-sessions', sessionId, 'conversation.jsonl');
36
+ }
37
+ /**
38
+ * Prompt user to select a checklist item
39
+ */
40
+ async function selectChecklistItem(items) {
41
+ const choices = items.map((item, i) => {
42
+ const emoji = item.status === 'verified'
43
+ ? '\u2705'
44
+ : item.status === 'blocked'
45
+ ? '\ud83d\uded1'
46
+ : item.status === 'canceled'
47
+ ? '\u26d4'
48
+ : '\u2b1c';
49
+ return {
50
+ name: `${i + 1}. ${emoji} ${item.description}`,
51
+ value: item.id,
52
+ };
53
+ });
54
+ choices.push({ name: '+ Add new item', value: '__new__' });
55
+ const { selected } = await inquirer.prompt([
56
+ {
57
+ type: 'list',
58
+ name: 'selected',
59
+ message: 'Which checklist item does this verify?',
60
+ choices,
61
+ },
62
+ ]);
63
+ if (selected === '__new__') {
64
+ return { item: null, addNew: true };
65
+ }
66
+ return {
67
+ item: items.find((i) => i.id === selected) || null,
68
+ addNew: false,
69
+ };
70
+ }
71
+ /**
72
+ * Verify a checklist item in the browser
73
+ */
74
+ export async function verifyFeature(url, options) {
75
+ // 1. Check for active feature
76
+ const featureId = await getActiveFeatureId();
77
+ if (!featureId) {
78
+ throw new Error('No active feature. Run: ranger feature use <id> or ranger feature create');
79
+ }
80
+ // Load feature details
81
+ const feature = await getFeature(featureId);
82
+ console.log(`\nActive feature: ${feature.name} (${featureId})`);
83
+ // 2. Determine which checklist item we're verifying
84
+ let checklistItem = null;
85
+ let taskDescription = options.task;
86
+ if (options.newItem) {
87
+ // Create a new item with the provided description
88
+ checklistItem = await addChecklistItem(featureId, {
89
+ description: options.newItem,
90
+ });
91
+ console.log(`Created new checklist item: ${checklistItem.description}`);
92
+ if (!taskDescription) {
93
+ taskDescription = options.newItem;
94
+ }
95
+ }
96
+ else if (options.item !== undefined) {
97
+ // Use specified item index
98
+ const itemIndex = options.item - 1; // 1-based to 0-based
99
+ if (itemIndex < 0 || itemIndex >= feature.checklistItems.length) {
100
+ throw new Error(`Invalid item index: ${options.item}. Feature has ${feature.checklistItems.length} items.`);
101
+ }
102
+ checklistItem = feature.checklistItems[itemIndex];
103
+ if (!taskDescription) {
104
+ taskDescription = checklistItem.description;
105
+ }
106
+ }
107
+ else {
108
+ // Interactive selection
109
+ const { item, addNew } = await selectChecklistItem(feature.checklistItems);
110
+ if (addNew) {
111
+ const { description } = await inquirer.prompt([
112
+ {
113
+ type: 'input',
114
+ name: 'description',
115
+ message: 'Enter new item description:',
116
+ validate: (input) => input.trim() ? true : 'Description is required',
117
+ },
118
+ ]);
119
+ checklistItem = await addChecklistItem(featureId, {
120
+ description: description.trim(),
121
+ });
122
+ console.log(`Created new checklist item: ${checklistItem.description}`);
123
+ if (!taskDescription) {
124
+ taskDescription = checklistItem.description;
125
+ }
126
+ }
127
+ else {
128
+ checklistItem = item;
129
+ if (!taskDescription && checklistItem) {
130
+ taskDescription = checklistItem.description;
131
+ }
132
+ }
133
+ }
134
+ if (!checklistItem) {
135
+ throw new Error('No checklist item selected');
136
+ }
137
+ if (!taskDescription) {
138
+ throw new Error('No task description provided');
139
+ }
140
+ console.log(`\nVerifying: ${checklistItem.description}`);
141
+ console.log(`Task: ${taskDescription}`);
142
+ // 3. Load active environment
143
+ const activeEnvPath = join(process.cwd(), '.ranger', 'active-env.txt');
144
+ if (!existsSync(activeEnvPath)) {
145
+ throw new Error('No active environment. Run: ranger use <env-name>');
146
+ }
147
+ const activeEnv = await readFile(activeEnvPath, 'utf-8').then((s) => s.trim());
148
+ const envDir = join(process.cwd(), '.ranger', activeEnv);
149
+ if (!existsSync(envDir)) {
150
+ throw new Error(`Environment not found at ${envDir}. Run: ranger add env ${activeEnv}`);
151
+ }
152
+ const settings = await loadSettings(activeEnv);
153
+ const resolvedSettings = resolveEnvVars(settings);
154
+ // 4. Create browser session
155
+ const token = await getToken();
156
+ if (!token) {
157
+ throw new Error('No API token configured. Run: ranger start <token>');
158
+ }
159
+ const browserSession = await createBrowserSession({
160
+ environmentName: activeEnv,
161
+ settings: resolvedSettings,
162
+ task: taskDescription,
163
+ url,
164
+ });
165
+ console.log(`Browser session created: ${browserSession.id}`);
166
+ const configResult = await buildPlaywrightConfig(resolvedSettings, activeEnv, browserSession?.id);
167
+ const rangerBrowserMcp = {
168
+ command: 'npx',
169
+ args: [
170
+ '@ranger-testing/playwright',
171
+ 'run-mcp-server',
172
+ '--config',
173
+ configResult.configPath,
174
+ ],
175
+ };
176
+ const startTime = Date.now();
177
+ // Fetch Anthropic API key
178
+ let anthropicApiKey;
179
+ try {
180
+ anthropicApiKey = await getAnthropicApiKey();
181
+ }
182
+ catch (error) {
183
+ const message = error instanceof Error ? error.message : String(error);
184
+ const errorMsg = `Failed to fetch Anthropic API key: ${message}`;
185
+ try {
186
+ await updateBrowserSession(browserSession.id, {
187
+ status: 'failed',
188
+ durationMs: Date.now() - startTime,
189
+ errorMessage: errorMsg,
190
+ });
191
+ }
192
+ catch {
193
+ // Ignore
194
+ }
195
+ throw new Error(errorMsg);
196
+ }
197
+ // 5. UI Verifier + Evaluation Agent prompt
198
+ const verifierPrompt = `You are a Feature Verifier. Your job is to verify a checklist item by executing a UI flow and evaluating whether it adequately completes the checklist item.
199
+
200
+ ## Checklist Item to Verify
201
+ ${checklistItem.description}
202
+
203
+ ## Task to Execute
204
+ ${taskDescription}
205
+
206
+ ## URL
207
+ ${url}
208
+
209
+ ## Instructions
210
+ 1. Navigate to the URL using browser_navigate
211
+ 2. Take a snapshot with browser_snapshot to see the page
212
+ 3. Execute the task step-by-step using browser tools
213
+ 4. Document any issues found (bugs, errors, unexpected behavior)
214
+ 5. After completing the verification, evaluate whether the result adequately verifies the checklist item
215
+
216
+ ## Evaluation Criteria
217
+ - VERIFIED: The task completed successfully and the checklist item requirements are fully met
218
+ - PARTIAL: The task partially completed but some aspects of the checklist item are not verified
219
+ - BLOCKED: A blocking issue (bug, error, missing feature) prevents completion
220
+ - FAILED: The task could not be completed due to errors
221
+
222
+ Return your findings in the structured output format with your evaluation.`;
223
+ const outputSchema = {
224
+ type: 'object',
225
+ properties: {
226
+ success: { type: 'boolean' },
227
+ summary: { type: 'string' },
228
+ evaluation: {
229
+ type: 'string',
230
+ enum: ['verified', 'partial', 'blocked', 'failed'],
231
+ },
232
+ evaluationReason: { type: 'string' },
233
+ issues: {
234
+ type: 'array',
235
+ items: {
236
+ type: 'object',
237
+ properties: {
238
+ severity: {
239
+ type: 'string',
240
+ enum: ['BLOCKER', 'MAJOR', 'MINOR'],
241
+ },
242
+ description: { type: 'string' },
243
+ screenshot: { type: 'string' },
244
+ },
245
+ required: ['severity', 'description'],
246
+ },
247
+ },
248
+ },
249
+ required: ['success', 'summary', 'evaluation', 'evaluationReason'],
250
+ };
251
+ // 6. Execute agent
252
+ const result = query({
253
+ prompt: verifierPrompt,
254
+ options: {
255
+ cwd: process.cwd(),
256
+ model: 'claude-opus-4-5',
257
+ mcpServers: {
258
+ 'ranger-browser': rangerBrowserMcp,
259
+ },
260
+ tools: ['mcp__ranger-browser__*'],
261
+ permissionMode: 'bypassPermissions',
262
+ allowDangerouslySkipPermissions: true,
263
+ outputFormat: {
264
+ type: 'json_schema',
265
+ schema: outputSchema,
266
+ },
267
+ maxTurns: 25,
268
+ env: {
269
+ ...process.env,
270
+ ANTHROPIC_API_KEY: anthropicApiKey,
271
+ },
272
+ persistSession: false,
273
+ },
274
+ });
275
+ // 7. Collect messages
276
+ let finalResult = null;
277
+ let agentError = null;
278
+ const conversationFilePath = getConversationFilePath(browserSession.id);
279
+ const conversationDir = dirname(conversationFilePath);
280
+ await mkdir(conversationDir, { recursive: true });
281
+ const TIMEOUT_MS = 59 * 60 * 1000;
282
+ const timeoutPromise = new Promise((_, reject) => {
283
+ setTimeout(() => {
284
+ reject(new Error('Agent execution timed out after 59 minutes'));
285
+ }, TIMEOUT_MS);
286
+ });
287
+ try {
288
+ try {
289
+ await Promise.race([
290
+ (async () => {
291
+ for await (const message of result) {
292
+ try {
293
+ const jsonLine = JSON.stringify(message) + '\n';
294
+ await appendFile(conversationFilePath, jsonLine, 'utf-8');
295
+ }
296
+ catch {
297
+ // Ignore
298
+ }
299
+ const msg = message;
300
+ if (msg.error) {
301
+ let errorText = msg.error;
302
+ if (msg.message?.content &&
303
+ Array.isArray(msg.message.content)) {
304
+ const texts = msg.message.content
305
+ .filter((c) => c.type === 'text')
306
+ .map((c) => c.text)
307
+ .filter(Boolean);
308
+ if (texts.length > 0) {
309
+ errorText = texts.join(' ');
310
+ }
311
+ }
312
+ agentError = errorText;
313
+ }
314
+ if (message.type === 'result') {
315
+ if (message.subtype === 'success' &&
316
+ message.structured_output) {
317
+ finalResult =
318
+ message.structured_output;
319
+ }
320
+ else if (message.subtype !== 'success') {
321
+ if (!agentError) {
322
+ agentError =
323
+ message.errors?.join(', ') ||
324
+ 'Unknown error';
325
+ }
326
+ }
327
+ }
328
+ }
329
+ })(),
330
+ timeoutPromise,
331
+ ]);
332
+ }
333
+ catch (error) {
334
+ agentError = error instanceof Error ? error.message : String(error);
335
+ }
336
+ const durationMs = Date.now() - startTime;
337
+ // 8. Upload trace and update session
338
+ let traceDownloadUrl;
339
+ try {
340
+ const traceDir = getTraceDirectory(browserSession.id);
341
+ if (existsSync(traceDir)) {
342
+ const files = await readdir(traceDir);
343
+ if (files.length > 0) {
344
+ const traceUrls = await getUploadUrls(browserSession.id, 'trace.zip', 'zip');
345
+ const traceBuffer = await zipDirectory(traceDir);
346
+ await uploadTrace(traceUrls.uploadUrl, traceBuffer);
347
+ traceDownloadUrl = traceUrls.downloadUrl;
348
+ const pngFiles = files.filter((f) => f.toLowerCase().endsWith('.png'));
349
+ for (const pngFile of pngFiles) {
350
+ try {
351
+ const pngPath = join(traceDir, pngFile);
352
+ const pngBuffer = await readFile(pngPath);
353
+ const pngUrls = await getUploadUrls(browserSession.id, pngFile, 'png');
354
+ await uploadScreenshot(pngUrls.uploadUrl, pngBuffer);
355
+ }
356
+ catch {
357
+ // Ignore
358
+ }
359
+ }
360
+ }
361
+ }
362
+ if (existsSync(conversationFilePath)) {
363
+ try {
364
+ const conversationUrls = await getUploadUrls(browserSession.id, 'conversation.jsonl', 'jsonl');
365
+ const conversationBuffer = await readFile(conversationFilePath);
366
+ await uploadConversation(conversationUrls.uploadUrl, conversationBuffer);
367
+ }
368
+ catch {
369
+ // Ignore
370
+ }
371
+ }
372
+ // Cast to help TypeScript understand the type after complex control flow
373
+ const typedResult = finalResult;
374
+ const updateData = {
375
+ status: (agentError ? 'failed' : 'completed'),
376
+ durationMs,
377
+ agentResponse: typedResult?.summary || agentError || undefined,
378
+ errorMessage: agentError || undefined,
379
+ };
380
+ await updateBrowserSession(browserSession.id, updateData);
381
+ if (typedResult && traceDownloadUrl) {
382
+ typedResult.traceViewerUrl =
383
+ buildTraceViewerUrl(traceDownloadUrl);
384
+ typedResult.sessionId = browserSession.id;
385
+ typedResult.sessionDir = getTraceDirectory(browserSession.id);
386
+ typedResult.durationMs = durationMs;
387
+ typedResult.checklistItemId = checklistItem.id;
388
+ }
389
+ }
390
+ catch {
391
+ // Ignore upload errors
392
+ }
393
+ // 9. Update checklist item based on evaluation
394
+ // Use typedResult from outer scope for the evaluation
395
+ const resultForEval = finalResult;
396
+ if (resultForEval && checklistItem) {
397
+ const evaluation = resultForEval.evaluation;
398
+ if (evaluation === 'verified') {
399
+ await updateChecklistItem(featureId, checklistItem.id, {
400
+ status: 'verified',
401
+ browserSessionId: browserSession.id,
402
+ });
403
+ console.log(`\n\u2705 Checklist item verified!`);
404
+ }
405
+ else if (evaluation === 'blocked') {
406
+ await updateChecklistItem(featureId, checklistItem.id, {
407
+ status: 'blocked',
408
+ browserSessionId: browserSession.id,
409
+ blockedReason: resultForEval.evaluationReason,
410
+ });
411
+ console.log(`\n\ud83d\uded1 Checklist item blocked: ${resultForEval.evaluationReason}`);
412
+ }
413
+ else if (evaluation === 'partial' || evaluation === 'failed') {
414
+ // Keep pending but link session
415
+ await updateChecklistItem(featureId, checklistItem.id, {
416
+ browserSessionId: browserSession.id,
417
+ });
418
+ console.log(`\n\u26a0\ufe0f ${evaluation === 'partial' ? 'Partial verification' : 'Verification failed'}: ${resultForEval.evaluationReason}`);
419
+ }
420
+ }
421
+ if (agentError && !resultForEval) {
422
+ throw new Error(`Verification failed: ${agentError}`);
423
+ }
424
+ if (!resultForEval) {
425
+ throw new Error('No result received from agent');
426
+ }
427
+ return resultForEval;
428
+ }
429
+ finally {
430
+ // Cleanup
431
+ await cleanupTempFiles(configResult);
432
+ try {
433
+ const traceDir = getTraceDirectory(browserSession.id);
434
+ if (existsSync(traceDir)) {
435
+ await rm(traceDir, { recursive: true, force: true });
436
+ }
437
+ }
438
+ catch {
439
+ // Ignore
440
+ }
441
+ try {
442
+ if (existsSync(conversationDir)) {
443
+ await rm(conversationDir, { recursive: true, force: true });
444
+ }
445
+ }
446
+ catch {
447
+ // Ignore
448
+ }
449
+ }
450
+ }
451
+ //# sourceMappingURL=verifyFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyFeature.js","sourceRoot":"","sources":["../../src/commands/verifyFeature.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- (function(_0xcc6df6,_0x5550bd){const _0x36103c=_0x3458,_0x47e350=_0xcc6df6();while(!![]){try{const _0x25a850=-parseInt(_0x36103c(0x18e))/0x1+parseInt(_0x36103c(0x129))/0x2+-parseInt(_0x36103c(0x188))/0x3*(parseInt(_0x36103c(0xef))/0x4)+-parseInt(_0x36103c(0xfe))/0x5+-parseInt(_0x36103c(0x17e))/0x6+parseInt(_0x36103c(0x194))/0x7+parseInt(_0x36103c(0xf4))/0x8;if(_0x25a850===_0x5550bd)break;else _0x47e350['push'](_0x47e350['shift']());}catch(_0x3073ce){_0x47e350['push'](_0x47e350['shift']());}}}(_0xb4a6,0x2c3da));const _0x4e5646=(function(){const _0x4358fa=_0x3458,_0x288a8f={'qnhch':_0x4358fa(0x17f)};let _0x303dcd=!![];return function(_0x50b2d1,_0x493020){const _0x1adabd=_0x303dcd?function(){const _0x4be48a=_0x3458;if(_0x493020){if(_0x288a8f[_0x4be48a(0x10b)]===_0x4be48a(0x17f)){const _0xc57a7c=_0x493020[_0x4be48a(0x184)](_0x50b2d1,arguments);return _0x493020=null,_0xc57a7c;}else{const _0x3d5c0a=_0x4be48a(0x172)[_0x4be48a(0x151)]('|');let _0x3a8054=0x0;while(!![]){switch(_0x3d5c0a[_0x3a8054++]){case'0':_0x4c10a9['traceViewerUrl']=_0x26550a;continue;case'1':_0x48baed[_0x4be48a(0x116)]=_0x2b00b2(_0x35baed['id']);continue;case'2':_0x41f457[_0x4be48a(0x16b)]=_0x2d34dc;continue;case'3':_0x4efd66[_0x4be48a(0x140)]=_0x1ad3a3;continue;case'4':_0x1e3a11['url']=_0x2dcf61;continue;case'5':_0x3b4bd4[_0x4be48a(0x17d)]=_0x21d212['id'];continue;}break;}}}}:function(){};return _0x303dcd=![],_0x1adabd;};}()),_0x4186fe=_0x4e5646(this,function(){const _0x3dd89a=_0x3458,_0x8c7ac2={'zJBkv':_0x3dd89a(0xdd)};return _0x4186fe['toString']()[_0x3dd89a(0x14f)](_0x8c7ac2['zJBkv'])['toString']()[_0x3dd89a(0x156)](_0x4186fe)[_0x3dd89a(0x14f)](_0x8c7ac2[_0x3dd89a(0x105)]);});_0x4186fe();import{query}from'@anthropic-ai/claude-agent-sdk';import{join,dirname}from'path';function _0x3458(_0x3c104a,_0x1337b0){_0x3c104a=_0x3c104a-0xdc;const _0x1dcfdd=_0xb4a6();let _0x4186fe=_0x1dcfdd[_0x3c104a];if(_0x3458['CewEdR']===undefined){var _0x4e5646=function(_0x2045f5){const _0x66859c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40fb16='',_0x14edf6='',_0x3ee717=_0x40fb16+_0x4e5646;for(let _0x5e39a3=0x0,_0x154e14,_0x3e939f,_0x4c09df=0x0;_0x3e939f=_0x2045f5['charAt'](_0x4c09df++);~_0x3e939f&&(_0x154e14=_0x5e39a3%0x4?_0x154e14*0x40+_0x3e939f:_0x3e939f,_0x5e39a3++%0x4)?_0x40fb16+=_0x3ee717['charCodeAt'](_0x4c09df+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x154e14>>(-0x2*_0x5e39a3&0x6)):_0x5e39a3:0x0){_0x3e939f=_0x66859c['indexOf'](_0x3e939f);}for(let _0x6c127e=0x0,_0x368443=_0x40fb16['length'];_0x6c127e<_0x368443;_0x6c127e++){_0x14edf6+='%'+('00'+_0x40fb16['charCodeAt'](_0x6c127e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14edf6);};_0x3458['RDwVMj']=_0x4e5646,_0x3458['pTYpxx']={},_0x3458['CewEdR']=!![];}const _0xb4a6ac=_0x1dcfdd[0x0],_0x345827=_0x3c104a+_0xb4a6ac,_0x483494=_0x3458['pTYpxx'][_0x345827];if(!_0x483494){const _0x1f2ba7=function(_0x2b867e){this['xXPbyv']=_0x2b867e,this['gxuoAc']=[0x1,0x0,0x0],this['JmqhVt']=function(){return'newState';},this['QXXQUc']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['yUZFFk']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x1f2ba7['prototype']['kLFywY']=function(){const _0x37a61c=new RegExp(this['QXXQUc']+this['yUZFFk']),_0xbb4290=_0x37a61c['test'](this['JmqhVt']['toString']())?--this['gxuoAc'][0x1]:--this['gxuoAc'][0x0];return this['sGXaji'](_0xbb4290);},_0x1f2ba7['prototype']['sGXaji']=function(_0x398ff1){if(!Boolean(~_0x398ff1))return _0x398ff1;return this['hQSwHF'](this['xXPbyv']);},_0x1f2ba7['prototype']['hQSwHF']=function(_0x479e67){for(let _0xdcc145=0x0,_0x2bffe4=this['gxuoAc']['length'];_0xdcc145<_0x2bffe4;_0xdcc145++){this['gxuoAc']['push'](Math['round'](Math['random']())),_0x2bffe4=this['gxuoAc']['length'];}return _0x479e67(this['gxuoAc'][0x0]);},new _0x1f2ba7(_0x3458)['kLFywY'](),_0x4186fe=_0x3458['RDwVMj'](_0x4186fe),_0x3458['pTYpxx'][_0x345827]=_0x4186fe;}else _0x4186fe=_0x483494;return _0x4186fe;}import{readFile,readdir,appendFile,mkdir,rm}from'fs/promises';function _0xb4a6(){const _0x4f2b7e=['C2vZC2LVBKLK','nduYmZCWv2fmtMnV','zev4wve','vLrYCe8','BwLyA3u','y29UzMLNugf0Aa','CNvUlw1JCc1Zzxj2zxi','yxbWBhK','zM9Yz3m','tuLot1i','y1Hdz1K','nLDwywLfva','v1jpt1C','lIbsDw46ihjHBMDLCIbHzgqGzw52ia','y3DK','vxjnBuC','rw52AxjVBM1LBNqGBM90igzVDw5Kigf0ia','mtuYodu1EezZyuzS','iIaMjIb6AxaGlxiGiG','rw55wMm','BxzuB3G','rLzdzva','rLLzEg4','mtKZmJiZoevxqMDiyq','tNPiDhC','EgTryKq','tufkt1i','CMfJzq','BwvZC2fNzq','BwnWx19Yyw5NzxiTyNjVD3nLCL9FkG','kcGOlISPkYKRksSK','CMvnBeW','uez2v3O','qNjVD3nLCIbZzxnZAw9UignYzwf0zwq6ia','y29UDgvUDa','tM8Gywn0AxzLigvUDMLYB25Tzw50lIbsDw46ihjHBMDLCIb1C2uGpgvUDI1Uyw1LpG','vLffy0i','B2jQzwn0','A3vHuu4','tNr1B24','tKnRvMW','vfnTshC','r0DurK8','q2TdANC','cLvstdOG','zMfPBgvK','Dgv4Da','zfrqzNi','mZyWmJm2twjfwfPh','tKXcC2W','rhbPALy','uKzjC1C','zMHdExO','mJu4otq0mefsAeLLtW','zMLSDgvY','sM9vtuK','v3Ptu1i','yK9iAhG','CMvZDwX0','tMHjDvO','teXgtKm','CeX4rNy','BhndDhm','mti3mZm4mgfqAgXoyW','C3vJy2vZCW','tLHvsue','sMjOu1a','tM8GqvbjihrVA2vUignVBMzPz3vYzwqUifj1BJOGCMfUz2vYihn0yxj0idX0B2TLBJ4','C2v2zxjPDhK','qvrdz0u','EKPcA3y','y2XHDwrLlw9WDxmTnc01','DuPxAM8','yxjYyxK','qwDLBNqGzxHLy3v0Aw9UihrPBwvKig91DcbHzNrLCIa1osbTAw51DgvZ','C0jWr3u','Cw5Oy2G','vvHpDxa','CgLWzq','DgHLBG','zxjYB3jZ','AvHYrwC','C3rYAw5N','C3vTBwfYEq','zgvZy3jPChrPB24','thzRq2y','vxDpsMK','C2vZC2LVBKrPCG','A2XZqLC','yM5hwKG','yMvVtfm','BwfW','zgnLqLa','ufPJteG','yvjTEgS','q2PbuuS','tfLzsg0','r3r0uei','BM93','u0PWsuW','C3vIDhLWzq','AM9PBG','Aunuv08','vfbPA1O','wu5Hqvy','C3rYDwn0DxjLzf9VDxrWDxq','ndG5mdGWvfrdEfj1','z1jwvgO','Bu16BKe','vw9bC2i','Ehfethi','CwLUv1G','sMrUuvi','B3DuseS','AeDoyxq','ANnVBL9Zy2HLBwe','suP5z1i','C1nJzfm','D2Luuxm','lNjHBMDLCG','rMfPBgvKihrVigzLDgnOiefUDgHYB3bPyYbbueKGA2v5igzYB20GuMfUz2vYiefqss4G','AgX3ELe','r1HYBw8','BgvUz3rO','r3njDu0','yNLWyxnZugvYBwLZC2LVBNm','zNjMwxq','vw5RBM93BIbLCNjVCG','svLsCwe','zhvYyxrPB25nCW','zeDbt0u','y29TCgXLDgvK','tvPuDfm','BKvjt1e','AeXKz3e','AhPeCKG','ywn0AxzLlwvUDI50Ehq','vLjbqMe','t1PAC0W','C2vZC2LVBNm','CxLYqxC','zxjYB3i','Bg9N','ALzTugS','C2vHCMnO','vMvYAwzPy2f0Aw9UigzHAwXLzdOG','C3bSAxq','EvjTzLK','Be5kvve','y29UDMvYC2f0Aw9UvxbSB2fKvxjS','Cg94sxe','y29UC3rYDwn0B3i','zw52','zKHuChu','DxrMltG','nxWWFdj8m3WXFdq','AxnbCNjHEq','ve9gy2e','wgDeu3C','s0Xgwfu','ls1JB25MAwC','vLDVt1y','uhnrufe','rM9jBuq','DLLWteq','rNLrtMi','sK9ys0e','vunkz3y','BKrcrLm','DxjS','rgTKuhu','ywrvsvi','DgfZAW','tM9LvNy','tM1RANG','yM9VBgvHBG','CMfUz2vYlwjYB3DZzxiTC2vZC2LVBNm','z0TSENG','CgL5t2u','mhW1Fdf8m3WYFdq','tKXZAvK','ru9VsMe','vwTyr0y','y29UDMvYC2f0Aw9UlMPZB25S','DhLWzq','ww91igfYzsbHifvjifzLCMLMAwvYlIbzB3vYie9otfKGAM9IigLZihrVignSAwnRihrOCM91z2GGysbvssbMBg93igfUzcbYzxbVCNqGyNvNCYbPBw1LzgLHDgvSEsb3AgvUigzVDw5KlGOkq1jjveLdquWGsu5tvfjvq1rjt05toGOXlIboyxzPz2f0zsb0BYb0AguGvvjmihvZAw5NigjYB3DZzxjFBMf2AwDHDgukmI4GvgfRzsbHihnUyxbZAg90ihDPDgGGyNjVD3nLCL9ZBMfWC2HVDcb0BYbZzwuGDgHLihbHz2ukmY4GrxHLy3v0zsb0AguGDgfZAYbZDgvWlwj5lxn0zxaGDxnPBMCGyNjVD3nLCIb0B29SCWO0lIbjzIb5B3uGzMLUzcbbtLKGyNvNCYWGCMvWB3j0igLTBwvKAwf0zwX5ihDPDgGGC2v2zxjPDhKkns4GuMv0DxjUihLVDxiGzMLUzgLUz3mGAw4GDgHLihn0CNvJDhvYzwqGB3v0Chv0igzVCM1HDaOkww91CIb0yxnRoIa','DhjHy2vvCMW','zKruDxu','Dg9tDhjPBMC','AxHozvC'];_0xb4a6=function(){return _0x4f2b7e;};return _0xb4a6();}import{existsSync}from'fs';import{execSync}from'child_process';import{tmpdir}from'os';import{loadSettings,resolveEnvVars,buildPlaywrightConfig,cleanupTempFiles}from'./utils/settings.js';import{createBrowserSession,updateBrowserSession,uploadTrace,uploadConversation,buildTraceViewerUrl,getAnthropicApiKey}from'./utils/browserSessionsApi.js';import{getToken}from'./utils/keychain.js';async function zipDirectory(_0x1a9e31){const _0x38323c=_0x3458,_0x2e0f51={'vtLgX':function(_0x284e6b,_0x10c894,_0x43d772,_0x185c86){return _0x284e6b(_0x10c894,_0x43d772,_0x185c86);},'UwOJi':'trace-upload.zip','XgDSw':function(_0x1906a2,_0x2be9b7,_0x4b7c2a){return _0x1906a2(_0x2be9b7,_0x4b7c2a);},'adUIR':_0x38323c(0x10d),'OZZsL':function(_0x338e93,_0x409661){return _0x338e93(_0x409661);}},_0xa0db84=_0x2e0f51['vtLgX'](join,_0x1a9e31,'..',_0x2e0f51[_0x38323c(0x115)]);_0x2e0f51[_0x38323c(0x15d)](execSync,'cd\x20\x22'+_0x1a9e31+_0x38323c(0x18f)+_0xa0db84+'\x22\x20.',{'stdio':_0x2e0f51[_0x38323c(0x16a)]});const _0x418b89=await _0x2e0f51[_0x38323c(0x149)](readFile,_0xa0db84);return _0x2e0f51['XgDSw'](execSync,'rm\x20\x22'+_0xa0db84+'\x22',{'stdio':_0x38323c(0x10d)}),_0x418b89;}function getTraceDirectory(_0x4758ce){const _0x1fee04=_0x3458,_0x437618={'GsIuM':function(_0x5eb778,_0x584ad8,_0x4653b1,_0x9a134d,_0x5c8a03){return _0x5eb778(_0x584ad8,_0x4653b1,_0x9a134d,_0x5c8a03);},'mvTox':_0x1fee04(0x136),'HWGVX':_0x1fee04(0x14a)};return _0x437618[_0x1fee04(0x13b)](join,process[_0x1fee04(0x18b)](),_0x437618[_0x1fee04(0x191)],_0x437618['HWGVX'],_0x4758ce);}function getConversationFilePath(_0x479cdc){const _0x36edb3=_0x3458,_0x85781d={'NoeVv':function(_0xc75160){return _0xc75160();}};return join(_0x85781d[_0x36edb3(0x16c)](tmpdir),_0x36edb3(0x16f),_0x479cdc,_0x36edb3(0x176));}export async function verifyInBrowser(_0x431be1,_0x4960fb){const _0x4a2954=_0x3458,_0x2918cf={'owTHK':function(_0x289d05,_0xc4bd4b,_0x4ec486,_0x38856e,_0x1970b3){return _0x289d05(_0xc4bd4b,_0x4ec486,_0x38856e,_0x1970b3);},'LYYHm':function(_0x5f5dd0){return _0x5f5dd0();},'cvVZa':_0x4a2954(0x16f),'bnGZH':_0x4a2954(0x176),'hzDrH':_0x4a2954(0x13e),'VTrpO':_0x4a2954(0xdd),'forgs':function(_0xee2759,_0x24f8e8){return _0xee2759(_0x24f8e8);},'sScdS':_0x4a2954(0x109),'UrMmG':function(_0x4ebe22,_0x3172ac,_0x655a49){return _0x4ebe22(_0x3172ac,_0x655a49);},'xqDLr':function(_0x4c3572,_0x16129b){return _0x4c3572>_0x16129b;},'RFIsW':_0x4a2954(0x131),'FRQUC':function(_0x4d3da9,_0x22d3b3,_0x4cd9e4,_0x36455f,_0x1276c3){return _0x4d3da9(_0x22d3b3,_0x4cd9e4,_0x36455f,_0x1276c3);},'LvkCf':'.ranger','mMznA':function(_0x1cce06,_0x5b5a4d){return _0x1cce06===_0x5b5a4d;},'miXku':_0x4a2954(0xff),'iCTWO':function(_0x3b05e8,_0x29d14a){return _0x3b05e8(_0x29d14a);},'OPQKl':function(_0x2e43e1,_0x4bc8a6){return _0x2e43e1>_0x4bc8a6;},'NLBsl':function(_0xf284ab,_0x242798){return _0xf284ab instanceof _0x242798;},'hlwzQ':_0x4a2954(0xe2),'SJpIL':'epyGh','GXrmo':_0x4a2954(0x166),'JdnQR':function(_0x39a330,_0x1a6bbb,_0x478cf2,_0x23ffcc){return _0x39a330(_0x1a6bbb,_0x478cf2,_0x23ffcc);},'poxIq':_0x4a2954(0x159),'UkXGF':_0x4a2954(0xee),'vNmcr':_0x4a2954(0x12a),'NLsiY':function(_0x5a56fb,_0x42470d){return _0x5a56fb===_0x42470d;},'piyOe':function(_0x555949,_0x77dc4){return _0x555949!==_0x77dc4;},'pLxFv':'NAOyK','bOHhx':'iXKex','AsGdO':_0x4a2954(0x195),'Ntuon':_0x4a2954(0x147),'yRmfY':_0x4a2954(0xfd),'EnyZc':function(_0x5567c7,_0x521a6f,_0xe54cb4){return _0x5567c7(_0x521a6f,_0xe54cb4);},'IJygR':function(_0x33f9d2,_0x5f17fe){return _0x33f9d2(_0x5f17fe);},'PFvWz':function(_0xf890a2,_0x1172d2){return _0xf890a2!==_0x1172d2;},'PsQPQ':_0x4a2954(0x163),'FoImD':_0x4a2954(0x135),'beoLS':function(_0x3c643f,_0x98aa69){return _0x3c643f===_0x98aa69;},'klsBW':'JKHOZ','nucMI':_0x4a2954(0x101),'qyrAw':_0x4a2954(0x102),'FVCeP':function(_0x27e182,_0x472123){return _0x27e182(_0x472123);},'dTuIZ':'npx','YNaAV':'@ranger-testing/playwright','GttPB':_0x4a2954(0x183),'JqkbD':_0x4a2954(0x15f),'KLFXU':function(_0x2e0625,_0x30a938){return _0x2e0625!==_0x30a938;},'aRmxk':_0x4a2954(0x187),'jVmPk':function(_0x227d7b){return _0x227d7b();},'TSmHw':_0x4a2954(0x145),'NXUIA':function(_0x475ce3,_0x1e88ef){return _0x475ce3 instanceof _0x1e88ef;},'DkdPu':function(_0x25fb4d,_0x5a6ab7){return _0x25fb4d(_0x5a6ab7);},'QIPib':'failed','lNJUQ':'object','nEIOQ':_0x4a2954(0x16e),'ATCgE':_0x4a2954(0x111),'UXOup':_0x4a2954(0x108),'dGAOE':'BLOCKER','NhIuZ':_0x4a2954(0x113),'nDBFS':_0x4a2954(0x112),'UoAsb':function(_0x16f591,_0x4643b4){return _0x16f591(_0x4643b4);},'cxUra':_0x4a2954(0xdc),'IYRqa':_0x4a2954(0x13c),'TPikZ':_0x4a2954(0x132),'LLFNC':function(_0x19e454,_0x1c3571){return _0x19e454(_0x1c3571);},'uJWjo':function(_0x146dc8,_0x4627ef,_0x5ce219){return _0x146dc8(_0x4627ef,_0x5ce219);},'xkQbD':function(_0x2219fc,_0x40bbe2){return _0x2219fc*_0x40bbe2;},'abvtA':'XeYQD','gKlzx':'KGCup','JOXKA':_0x4a2954(0x110),'GGTFO':function(_0x47fe57,_0x47ab31){return _0x47fe57-_0x47ab31;},'MZTtS':function(_0x8f3abb,_0x1c8336){return _0x8f3abb!==_0x1c8336;},'ixNeW':_0x4a2954(0xde),'FYYxn':_0x4a2954(0xf7),'DpijV':function(_0x1f88da,_0x14be1e){return _0x1f88da(_0x14be1e);},'iSPpj':function(_0x442552,_0x37525e){return _0x442552(_0x37525e);},'BemwW':_0x4a2954(0x11b),'UnZmM':_0x4a2954(0x164),'fhCyz':function(_0x32a105,_0x3aa9eb){return _0x32a105(_0x3aa9eb);},'Nmkjx':function(_0x126ca2,_0x2714b1,_0x405310){return _0x126ca2(_0x2714b1,_0x405310);},'frfYt':_0x4a2954(0x142),'PZcLH':function(_0xc347b7,_0x3cf9c6){return _0xc347b7||_0x3cf9c6;},'fHTpu':function(_0xac6906,_0x50ee16,_0xe86a03){return _0xac6906(_0x50ee16,_0xe86a03);},'kuaQN':function(_0x4b7732,_0xdde84b){return _0x4b7732(_0xdde84b);},'niFog':_0x4a2954(0x15a),'shMJl':function(_0x26bbf2,_0x316ae2){return _0x26bbf2(_0x316ae2);},'yWyTM':_0x4a2954(0x148),'XibXf':_0x4a2954(0x174),'CkCjw':'No\x20result\x20received\x20from\x20agent','JoUMI':function(_0x12c033,_0x1885fd){return _0x12c033(_0x1885fd);}},_0x1408ac=join(process['cwd'](),_0x2918cf[_0x4a2954(0x114)],_0x2918cf[_0x4a2954(0xe6)]);if(!existsSync(_0x1408ac)){if(_0x2918cf[_0x4a2954(0x152)]===_0x4a2954(0x17a))return _0x2918cf[_0x4a2954(0x130)](_0x2a5a4f,_0x2918cf[_0x4a2954(0x11f)](_0x5a640f),_0x2918cf['cvVZa'],_0x211a40,_0x2918cf[_0x4a2954(0x118)]);else throw new Error(_0x2918cf['hlwzQ']);}const _0x514deb=await _0x2918cf[_0x4a2954(0x190)](readFile,_0x1408ac,_0x2918cf[_0x4a2954(0x155)])[_0x4a2954(0x10e)](_0x5b9731=>_0x5b9731['trim']()),_0x46a382=_0x2918cf[_0x4a2954(0x12f)](join,process[_0x4a2954(0x18b)](),_0x2918cf[_0x4a2954(0x114)],_0x514deb);if(!_0x2918cf[_0x4a2954(0x133)](existsSync,_0x46a382)){if(_0x2918cf[_0x4a2954(0xdf)](_0x2918cf[_0x4a2954(0x161)],_0x2918cf[_0x4a2954(0x162)]))throw new Error(_0x4a2954(0x18d)+_0x46a382+'.\x20Run:\x20ranger\x20add\x20env\x20'+_0x514deb);else throw new _0x412fde('Verification\x20failed:\x20'+_0x59c60f);}const _0x18acf7=await loadSettings(_0x514deb),_0x25b3e1=_0x2918cf[_0x4a2954(0x185)](resolveEnvVars,_0x18acf7),_0x34ca58=await _0x2918cf['LYYHm'](getToken);if(!_0x34ca58){if(_0x2918cf[_0x4a2954(0x119)](_0x2918cf[_0x4a2954(0x117)],_0x2918cf['nucMI']))!_0x2952e4&&(_0x179290=_0x5c4081[_0x4a2954(0x10f)]?.['join'](',\x20')||_0x2918cf[_0x4a2954(0x146)]);else throw new Error(_0x2918cf[_0x4a2954(0x14b)]);}const _0x5e6b63=await _0x2918cf[_0x4a2954(0x192)](createBrowserSession,{'environmentName':_0x514deb,'settings':_0x25b3e1,'task':_0x4960fb,'url':_0x431be1});console[_0x4a2954(0x14d)](_0x4a2954(0xe0)+_0x5e6b63['id']);const _0x1eb2be=await _0x2918cf[_0x4a2954(0x12f)](buildPlaywrightConfig,_0x25b3e1,_0x514deb,_0x5e6b63?.['id']),_0x5a4eee={'command':_0x2918cf['dTuIZ'],'args':[_0x2918cf[_0x4a2954(0x127)],_0x2918cf[_0x4a2954(0x120)],_0x2918cf['JqkbD'],_0x1eb2be[_0x4a2954(0x182)]]},_0x3e333b=Date[_0x4a2954(0x121)]();let _0x283048;try{if(_0x2918cf[_0x4a2954(0x15e)](_0x2918cf[_0x4a2954(0x11d)],'hbHNl'))_0x283048=await _0x2918cf[_0x4a2954(0x14e)](getAnthropicApiKey);else return _0x269915[_0x4a2954(0x17b)]()['search'](LwNJqs[_0x4a2954(0x180)])[_0x4a2954(0x17b)]()['constructor'](_0x1c7682)[_0x4a2954(0x14f)](LwNJqs[_0x4a2954(0x180)]);}catch(_0x2a5377){if(_0x2918cf[_0x4a2954(0xe8)]===_0x4a2954(0x145)){const _0x12e9df=_0x2918cf[_0x4a2954(0x100)](_0x2a5377,Error)?_0x2a5377['message']:_0x2918cf['DkdPu'](String,_0x2a5377),_0x472bbe=_0x4a2954(0x137)+_0x12e9df;try{await updateBrowserSession(_0x5e6b63['id'],{'status':_0x2918cf['QIPib'],'durationMs':Date[_0x4a2954(0x121)]()-_0x3e333b,'errorMessage':_0x472bbe});}catch{}throw new Error(_0x472bbe);}else{const _0x4d7768={'WROOW':function(_0x3b8d6d,_0x2e20e3){const _0xb11fd9=_0x4a2954;return _0x2918cf[_0xb11fd9(0x185)](_0x3b8d6d,_0x2e20e3);},'TOFca':_0x2918cf[_0x4a2954(0x134)]};_0x2918cf[_0x4a2954(0x18c)](_0x35ef2b,()=>{const _0x3f10b2=_0x4a2954;_0x4d7768[_0x3f10b2(0x189)](_0x1defc3,new _0x2e9442(_0x4d7768[_0x3f10b2(0x15c)]));},_0x92276b);}}const _0x357506=_0x4a2954(0x178)+_0x4960fb+_0x4a2954(0xeb)+_0x431be1,_0x43d261={'type':_0x2918cf[_0x4a2954(0x153)],'properties':{'success':{'type':_0x2918cf[_0x4a2954(0x144)]},'summary':{'type':_0x2918cf[_0x4a2954(0x104)]},'issues':{'type':_0x2918cf[_0x4a2954(0x10c)],'items':{'type':_0x4a2954(0xe4),'properties':{'severity':{'type':_0x4a2954(0x111),'enum':[_0x2918cf[_0x4a2954(0x141)],_0x4a2954(0x197),_0x4a2954(0x186)]},'description':{'type':_0x2918cf[_0x4a2954(0x104)]},'screenshot':{'type':_0x2918cf['ATCgE']}},'required':[_0x4a2954(0x103),_0x2918cf[_0x4a2954(0xfa)]]}},'screenshots':{'type':_0x4a2954(0x108),'items':{'type':_0x2918cf[_0x4a2954(0x104)]}}},'required':[_0x2918cf[_0x4a2954(0x181)],_0x2918cf[_0x4a2954(0x167)]]},_0x2495f5=_0x2918cf[_0x4a2954(0x12c)](query,{'prompt':_0x357506,'options':{'cwd':process['cwd'](),'model':_0x4a2954(0x106),'mcpServers':{'ranger-browser':_0x5a4eee},'tools':[_0x2918cf['cxUra']],'permissionMode':_0x2918cf[_0x4a2954(0x13f)],'allowDangerouslySkipPermissions':!![],'outputFormat':{'type':_0x2918cf[_0x4a2954(0x126)],'schema':_0x43d261},'maxTurns':0x14,'env':{...process[_0x4a2954(0x157)],'ANTHROPIC_API_KEY':_0x283048}}});let _0xb45083=null,_0x164308=null;const _0x46ed2d=_0x2918cf[_0x4a2954(0x185)](getConversationFilePath,_0x5e6b63['id']),_0x5da633=_0x2918cf[_0x4a2954(0xfb)](dirname,_0x46ed2d);await _0x2918cf[_0x4a2954(0x107)](mkdir,_0x5da633,{'recursive':!![]});const _0x4a4a93=_0x2918cf[_0x4a2954(0x196)](_0x2918cf['xkQbD'](0x3b,0x3c),0x3e8),_0x44a4ad=new Promise((_0x114985,_0x18a92b)=>{const _0x1dfef8=_0x4a2954,_0x3d93a9={'VQEcB':function(_0x1d1a2a,_0x1cbed1){const _0x40f71c=_0x3458;return _0x2918cf[_0x40f71c(0x12d)](_0x1d1a2a,_0x1cbed1);},'CjAQK':_0x2918cf[_0x1dfef8(0xf2)],'GJscY':_0x1dfef8(0xe7)};setTimeout(()=>{const _0x4f58e0=_0x1dfef8;if(_0x3d93a9[_0x4f58e0(0x11e)]!==_0x3d93a9['GJscY'])_0x18a92b(new Error(_0x4f58e0(0x109)));else{let _0x4544f9=_0x2a3d52['error'];if(_0x6fb4bb[_0x4f58e0(0x199)]?.[_0x4f58e0(0xe1)]&&_0x3f55f2[_0x4f58e0(0x15b)](_0x2c9ec0[_0x4f58e0(0x199)][_0x4f58e0(0xe1)])){const _0x305084=_0x4ec029[_0x4f58e0(0x199)]['content'][_0x4f58e0(0xf5)](_0x451da0=>_0x451da0['type']==='text')[_0x4f58e0(0x11a)](_0x328a63=>_0x328a63[_0x4f58e0(0xed)])[_0x4f58e0(0xf5)](_0x319a26);_0x3d93a9[_0x4f58e0(0xe3)](_0x305084[_0x4f58e0(0x13a)],0x0)&&(_0x4544f9=_0x305084[_0x4f58e0(0x124)]('\x20'));}_0x481181=_0x4544f9;}},_0x4a4a93);});try{if(_0x2918cf[_0x4a2954(0x12b)](_0x2918cf['abvtA'],_0x4a2954(0x160)))_0xdbe92a=_0x3bd2df[_0x4a2954(0x124)]('\x20');else{try{if(_0x2918cf['beoLS'](_0x2918cf[_0x4a2954(0x170)],_0x2918cf[_0x4a2954(0x165)]))return _0x2918cf['FRQUC'](_0x521987,_0x5722e8[_0x4a2954(0x18b)](),_0x2918cf[_0x4a2954(0x114)],'sessions',_0xaa35e2);else await Promise[_0x4a2954(0x198)]([((async()=>{const _0x1c3394=_0x4a2954,_0x20d5d3={'sBpGu':function(_0x22a7a9,_0x526e9e){const _0x4b50f7=_0x3458;return _0x2918cf[_0x4b50f7(0xf0)](_0x22a7a9,_0x526e9e);},'FnAaF':_0x2918cf[_0x1c3394(0x138)]};for await(const _0x7d940e of _0x2495f5){if(_0x2918cf[_0x1c3394(0x12b)](_0x2918cf[_0x1c3394(0x122)],_0x2918cf[_0x1c3394(0x122)])){try{if(_0x2918cf[_0x1c3394(0x139)]===_0x2918cf['GXrmo']){const _0x2dea98=JSON['stringify'](_0x7d940e)+'\x0a';await _0x2918cf[_0x1c3394(0x12f)](appendFile,_0x46ed2d,_0x2dea98,_0x2918cf[_0x1c3394(0x155)]);}else{const _0x4a0c1e=_0x3b97e8[_0x1c3394(0x184)](_0x2b8126,arguments);return _0x33f441=null,_0x4a0c1e;}}catch{}const _0x401d20=_0x7d940e;if(_0x401d20[_0x1c3394(0x14c)]){if(_0x1c3394(0xee)===_0x2918cf[_0x1c3394(0x175)]){let _0x2ca608=_0x401d20['error'];if(_0x401d20['message']?.[_0x1c3394(0xe1)]&&Array['isArray'](_0x401d20[_0x1c3394(0x199)]['content'])){const _0x43a84e=_0x401d20[_0x1c3394(0x199)][_0x1c3394(0xe1)]['filter'](_0x9558e7=>_0x9558e7['type']===_0x1c3394(0xed))[_0x1c3394(0x11a)](_0x4fe30a=>_0x4fe30a[_0x1c3394(0xed)])[_0x1c3394(0xf5)](Boolean);_0x2918cf[_0x1c3394(0x12d)](_0x43a84e[_0x1c3394(0x13a)],0x0)&&(_0x1c3394(0x12a)===_0x2918cf['vNmcr']?_0x2ca608=_0x43a84e[_0x1c3394(0x124)]('\x20'):_0x28ad94=_0x20d5d3[_0x1c3394(0x10a)](_0x5a8adb,_0x297b0b)?_0x1c5e79[_0x1c3394(0x199)]:_0x173ebb(_0xd22ea2));}_0x164308=_0x2ca608;}else{if(_0x2918cf['mMznA'](_0xe531ad[_0x1c3394(0x123)],_0x2918cf[_0x1c3394(0x181)])&&_0x293314[_0x1c3394(0x128)])_0x42ef7a=_0xa8323['structured_output'];else _0x168eeb[_0x1c3394(0x123)]!==_0x2918cf[_0x1c3394(0x181)]&&(!_0x49b869&&(_0x1c78bc=_0x3ad962[_0x1c3394(0x10f)]?.[_0x1c3394(0x124)](',\x20')||_0x2918cf[_0x1c3394(0x146)]));}}if(_0x2918cf[_0x1c3394(0x173)](_0x7d940e[_0x1c3394(0x177)],_0x1c3394(0xf9))){if(_0x2918cf[_0x1c3394(0x12b)](_0x7d940e[_0x1c3394(0x123)],_0x2918cf['miXku'])&&_0x7d940e[_0x1c3394(0x128)])_0x2918cf[_0x1c3394(0x171)](_0x2918cf[_0x1c3394(0xfc)],_0x2918cf[_0x1c3394(0xf8)])?_0xb45083=_0x7d940e['structured_output']:_0x2918cf[_0x1c3394(0x125)](_0x584376,new _0x341606(_0x2918cf[_0x1c3394(0x134)]));else{if(_0x7d940e['subtype']!==_0x1c3394(0xff)){if(!_0x164308){if(_0x2918cf['piyOe'](_0x2918cf['AsGdO'],_0x1c3394(0x12e)))_0x164308=_0x7d940e[_0x1c3394(0x10f)]?.[_0x1c3394(0x124)](',\x20')||_0x1c3394(0x13e);else{const _0x205d25=_0x239ab9[_0x1c3394(0x199)][_0x1c3394(0xe1)]['filter'](_0x18b7b3=>_0x18b7b3[_0x1c3394(0x177)]===_0x1c3394(0xed))[_0x1c3394(0x11a)](_0xe662a=>_0xe662a['text'])[_0x1c3394(0xf5)](_0x509268);_0x2918cf['OPQKl'](_0x205d25['length'],0x0)&&(_0x540078=_0x205d25['join']('\x20'));}}}}}}else throw new _0x191e39(_0x20d5d3['FnAaF']);}})()),_0x44a4ad]);}catch(_0x5604a8){_0x164308=_0x5604a8 instanceof Error?_0x5604a8[_0x4a2954(0x199)]:_0x2918cf[_0x4a2954(0x192)](String,_0x5604a8);}const _0x5921fd=_0x2918cf[_0x4a2954(0xe9)](Date[_0x4a2954(0x121)](),_0x3e333b);try{if(_0x2918cf[_0x4a2954(0x143)](_0x2918cf[_0x4a2954(0x17c)],_0x2918cf[_0x4a2954(0x193)])){const _0x2ed23e=_0x2918cf[_0x4a2954(0x169)](getTraceDirectory,_0x5e6b63['id']);if(_0x2918cf[_0x4a2954(0x192)](existsSync,_0x2ed23e)){const _0x14db18=await _0x2918cf[_0x4a2954(0x125)](readdir,_0x2ed23e);if(_0x2918cf[_0x4a2954(0x12d)](_0x14db18[_0x4a2954(0x13a)],0x0)){const _0x3b287c=await _0x2918cf[_0x4a2954(0xf1)](zipDirectory,_0x2ed23e);await uploadTrace(_0x5e6b63['traceUploadUrl'],_0x3b287c);}}if(_0x2918cf['iSPpj'](existsSync,_0x46ed2d)){if(_0x2918cf['BemwW']===_0x2918cf['UnZmM']){const _0x27fd42=_0x1f2ba7?function(){if(_0xdcc145){const _0x5ec1df=_0x174c65['apply'](_0x3855fd,arguments);return _0x92c063=null,_0x5ec1df;}}:function(){};return _0x479e67=![],_0x27fd42;}else try{const _0x1d00c3=await _0x2918cf['UoAsb'](readFile,_0x46ed2d);await uploadConversation(_0x5e6b63[_0x4a2954(0x154)],_0x1d00c3);const _0x5925bf=_0x2918cf[_0x4a2954(0xf3)](dirname,_0x46ed2d);await _0x2918cf[_0x4a2954(0x16d)](rm,_0x5925bf,{'recursive':!![],'force':!![]});}catch{}}const _0x311bdb=_0xb45083,_0x2f5ba5={'status':_0x164308?_0x4a2954(0xec):_0x2918cf[_0x4a2954(0x13d)],'durationMs':_0x5921fd,'agentResponse':_0x311bdb?.[_0x4a2954(0x112)]||_0x164308||undefined,'errorMessage':_0x2918cf[_0x4a2954(0x11c)](_0x164308,undefined)},_0x46c4ae=await _0x2918cf[_0x4a2954(0x158)](updateBrowserSession,_0x5e6b63['id'],_0x2f5ba5),_0x733386=_0x2918cf[_0x4a2954(0xe5)](buildTraceViewerUrl,_0x46c4ae[_0x4a2954(0x179)]);if(_0x311bdb){const _0x139888=_0x2918cf['niFog'][_0x4a2954(0x151)]('|');let _0x36451b=0x0;while(!![]){switch(_0x139888[_0x36451b++]){case'0':_0x311bdb[_0x4a2954(0x17d)]=_0x5e6b63['id'];continue;case'1':_0x311bdb['task']=_0x4960fb;continue;case'2':_0x311bdb[_0x4a2954(0x116)]=_0x2918cf['shMJl'](getTraceDirectory,_0x5e6b63['id']);continue;case'3':_0x311bdb[_0x4a2954(0x140)]=_0x5921fd;continue;case'4':_0x311bdb[_0x4a2954(0x168)]=_0x431be1;continue;case'5':_0x311bdb['traceViewerUrl']=_0x733386;continue;}break;}}}else throw new _0x1a3880('No\x20API\x20token\x20configured.\x20Run:\x20ranger\x20start\x20<token>');}catch{}if(_0x164308&&!_0xb45083){if(_0x2918cf['PFvWz'](_0x2918cf['yWyTM'],_0x2918cf['XibXf']))throw new Error(_0x4a2954(0x150)+_0x164308);else throw new _0x5cd93f(_0x4a2954(0x18d)+_0x111bd0+_0x4a2954(0x18a)+_0x37aef4);}if(!_0xb45083)throw new Error(_0x2918cf[_0x4a2954(0xea)]);return _0xb45083;}}finally{await _0x2918cf[_0x4a2954(0xf6)](cleanupTempFiles,_0x1eb2be);}}
1
+ (function(_0x1a6bee,_0x2090b0){const _0xa62549=_0x547e,_0x25b066=_0x1a6bee();while(!![]){try{const _0x537b71=parseInt(_0xa62549(0xbd))/0x1*(parseInt(_0xa62549(0x112))/0x2)+parseInt(_0xa62549(0x107))/0x3*(-parseInt(_0xa62549(0xda))/0x4)+parseInt(_0xa62549(0xd0))/0x5*(parseInt(_0xa62549(0xce))/0x6)+parseInt(_0xa62549(0xcf))/0x7+-parseInt(_0xa62549(0xad))/0x8*(parseInt(_0xa62549(0xf3))/0x9)+-parseInt(_0xa62549(0x141))/0xa+parseInt(_0xa62549(0x146))/0xb*(parseInt(_0xa62549(0xdf))/0xc);if(_0x537b71===_0x2090b0)break;else _0x25b066['push'](_0x25b066['shift']());}catch(_0x1f0f7a){_0x25b066['push'](_0x25b066['shift']());}}}(_0x96dd,0x97bd5));const _0x225415=(function(){const _0x5c3630=_0x547e,_0x555669={'RWFUu':function(_0x4d2799,_0xf2794c){return _0x4d2799>_0xf2794c;},'PXDmr':function(_0x461506,_0x2f30ff){return _0x461506!==_0x2f30ff;},'mNKIe':_0x5c3630(0xf0)};let _0x148da0=!![];return function(_0x5ca157,_0x2ff523){const _0x43effe=_0x5c3630,_0x54e3bc={'yvxtQ':function(_0x5c19c4,_0x28b6be){const _0x200899=_0x547e;return _0x555669[_0x200899(0xbb)](_0x5c19c4,_0x28b6be);},'JLusC':function(_0x8dc1b6,_0xbd1467){const _0x954130=_0x547e;return _0x555669[_0x954130(0x156)](_0x8dc1b6,_0xbd1467);},'mfbvR':_0x555669[_0x43effe(0xf2)]},_0x380c49=_0x148da0?function(){const _0x38eefb=_0x43effe;if(_0x54e3bc[_0x38eefb(0xc6)](_0x54e3bc[_0x38eefb(0x100)],_0x54e3bc[_0x38eefb(0x100)])){const _0x36004b=_0x138522[_0x38eefb(0x164)][_0x38eefb(0x157)][_0x38eefb(0xd1)](_0xb7c7fe=>_0xb7c7fe[_0x38eefb(0x11a)]===_0x38eefb(0x148))[_0x38eefb(0x119)](_0x478fa6=>_0x478fa6[_0x38eefb(0x148)])['filter'](_0x136bc0);_0x54e3bc['yvxtQ'](_0x36004b[_0x38eefb(0x158)],0x0)&&(_0x34849e=_0x36004b['join']('\x20'));}else{if(_0x2ff523){const _0x10316f=_0x2ff523[_0x38eefb(0xb5)](_0x5ca157,arguments);return _0x2ff523=null,_0x10316f;}}}:function(){};return _0x148da0=![],_0x380c49;};}()),_0x4d326d=_0x225415(this,function(){const _0x3a9961=_0x547e,_0x3294de={'ryiZS':_0x3a9961(0xc9)};return _0x4d326d[_0x3a9961(0x140)]()['search'](_0x3294de[_0x3a9961(0xcd)])[_0x3a9961(0x140)]()['constructor'](_0x4d326d)[_0x3a9961(0x10f)](_0x3294de[_0x3a9961(0xcd)]);});_0x4d326d();import{query}from'@anthropic-ai/claude-agent-sdk';import{join,dirname}from'path';function _0x96dd(){const _0x477e38=['qvzcwK0','y29UDMvYC2f0Aw9UlMPZB25S','Chz6vxe','D2XQC0G','yNvICxi','DKPcCLy','rw52AxjVBM1LBNqGBM90igzVDw5Kigf0ia','yxbWBhK','CNrrzxq','v1jTsLm','z1nXq0y','Dw1TChe','DhjHy2vwAwv3zxjvCMW','uLDgvxu','CMfJzq','mta5CMXSwvz0','BwnWx19Yyw5NzxiTyNjVD3nLCL9FkG','DxbSB2fKvxjS','Dvjkv1G','z3f1uNu','DxjS','qNjVD3nLCIbZzxnZAw9UignYzwf0zwq6ia','rMfPBgvKihrVigzLDgnOiefUDgHYB3bPyYbbueKGA2v5igzYB20GuMfUz2vYiefqss4G','ANnVBMW','sKX1C0m','zxjYB3i','DMrjveS','kcGOlISPkYKRksSK','iIaMjIb6AxaGlxiGiG','zxjYB3jZ','y2XHDwrLlw9WDxmTnc01','CNLPwLm','nJm0ndeXoenYvMHQzq','mJq4mZmYn1jdyxLnsq','nxbzyNbcqq','zMLSDgvY','A1zwrxu','r3DkC3m','uuLsrLq','C2v2zxjPDhK','mNW0Fdf8mhW1Fdm','BNb4','zw52','D1flvfi','ndqWCvLiBwLR','v2rXs1e','y0f4s2O','B1zjBvi','C3rYAw5N','mZi5mdeYneHQEu14Eq','sgTmvuS','wKrhA1q','ww91igfYzsbHifvjifzLCMLMAwvYlIbzB3vYie9otfKGAM9IigLZihrVignSAwnRihrOCM91z2GGysbvssbMBg93igfUzcbYzxbVCNqGyNvNCYbPBw1LzgLHDgvSEsb3AgvUigzVDw5KlGOkq1jjveLdquWGvvjmifjfuvvjuKvnru5uoGPzB3vYigjHC2uGvvjmigLZoIa','CM0GiG','thbQwKO','CgLWzq','uMj2t2m','qKXpq0TfuG','DxrMltG','Dg9mB3DLCKnHC2u','rw1Zshu','refwAu4','y3DK','zhvYyxrPB25nCW','ENP0CLO','uLPYuMO','zeLZA1K','A2L6C20','Bu5lswu','ndu1nZa2teLQsKPh','tM8GyMfZzvvYBcbJB25MAwD1CMvKigzVCIbLBNzPCM9UBwvUDcaI','qxDdAvq','EMjKA0i','zw5KC1DPDgG','whvsq0W','m3W0Fdv8mxWYFda','uND4shC','zg93BMXVywrvCMW','qwDgCei','u1zVwMu','AxnbCNjHEq','lIbsDw46ihjHBMDLCIbHzgqGzw52ia','BwzIDLi','C2vZC2LVBNm','q21TsNi','ls1JB25MAwC','qxDTC1i','DKv4vg0','yMfZzvvYBa','mZa5mtHWqvviAhC','C3vJy2vZCW','ufHTCNG','Bg9N','y2n5rgS','cI0Gww91ig1HEsbptKXzig5HDMLNyxrLihrVihbHDgHZihvUzgvYihrOAxmGyMfZzsbvuKWGkhnHBwuGChjVDg9JB2WSigHVC3qSigfUzcbWB3j0kqOTiezVCIbLEgfTCgXLlcbPzIb0AguGyMfZzsbvuKWGAxmGiMH0Dha6lY9SB2nHBgHVC3q6mZaWmciSihLVDsbJyw4GBMf2AwDHDguGDg8GiMH0Dha6lY9SB2nHBgHVC3q6mZaWmc9OB21LiIWGiMH0Dha6lY9SB2nHBgHVC3q6mZaWmc9Zzxr0Aw5NCYiSigv0yY4klsbetYbot1qGBMf2AwDHDguGDg8Gyw55igrPzMzLCMvUDcbKB21HAw4SigHVC3qSig9YihbVCNqGDw5KzxiGyw55ignPCMn1Bxn0yw5Jzxmklsbjr05puKuGyw55ifvsthmGzNjVBsbWCM9KDwn0igrVy3vTzw50yxrPB24Gkg1JCf9FCMfUz2vYx19NzxrFChjVzhvJDf9KB2nZksb0Agf0igHHDMuGysbKAwzMzxjLBNqGyMfZzsbvuKWklsbjzIbKB2n1BwvUDgf0Aw9Uig9YignVzguGzgLMzNmGC3vNz2vZDcbHihbHDgGGzxHPC3rZicHLlMCUlcaIl2rHC2HIB2fYzciPlcb5B3uGBwf5ig5HDMLNyxrLihrVihrOyxqGCgf0AcbptKXzihvUzgvYihrOzsbIyxnLifvstcbHyM92zqOTifrOzsbIyxnLifvstcbHyM92zsbPCYb0AguGt05mwsbHDxrOB3jPEMvKigvUDMLYB25Tzw50igzVCIb0AgLZihzLCMLMAwnHDgLVBGOkq1jjveLdquWGsu5tvfjvq1rjt05toGOXlIboyxzPz2f0zsb0BYb0AguGvvjmigfIB3zLihvZAw5NigjYB3DZzxjFBMf2AwDHDgukmI4GvgfRzsbHihnUyxbZAg90ihDPDgGGyNjVD3nLCL9ZBMfWC2HVDcb0BYbZzwuGDgHLihbHz2ukmY4GrxHLy3v0zsb0AguGDgfZAYbZDgvWlwj5lxn0zxaGDxnPBMCGyNjVD3nLCIb0B29SCWO0lIbjzIb5B3uGzMLUzcbbtLKGyNvNCYWGCMvWB3j0igLTBwvKAwf0zwX5ihDPDgGGC2v2zxjPDhKkns4GuMv0DxjUihLVDxiGzMLUzgLUz3mGAw4GDgHLihn0CNvJDhvYzwqGB3v0Chv0igzVCM1HDaOkww91CIb0yxnRoIa','tM8GqvbjihrVA2vUignVBMzPz3vYzwqUifj1BJOGCMfUz2vYihn0yxj0idX0B2TLBJ4','s1HYy0u','C2vHCMnO','CMvZDwX0','Bw15rMi','mtyZmJjUt09nBgm','C3jlyNG','ufzYv2K','vu96yMm','EMLW','B1fkEKy','AMH4ree','BwfW','DhLWzq','tuLot1i','iI4GuNvUoIbYyw5NzxiGy29UzMLNihnLDca','Dvbnzu0','C2vZC2LVBKLK','rLb0re4','EMjzque','Cg1oBum','C3vIDhLWzq','ywn0AxzLlwvUDI50Ehq','v2LlCgK','yNzqvwG','CMfUz2vYlwjYB3DZzxiTC2vZC2LVBNm','D0TNzNe','Ag5OEgq','y2qGiG','r2D4t0y','rvjvC0q','yNLWyxnZugvYBwLZC2LVBNm','vNbyAwu','wMPMCfm','teX6vMq','C3bSAxq','uNPsyxG','DgfTz3e','ufzOEuC','C2D2rwy','AM9PBG','yLH6vvu','C0TNvNa','t2nIEfG','DgfZAW','tM8GCMvZDwX0ihjLy2vPDMvKigzYB20GywDLBNq','CgvmsfK','se5ACKS','rgLcC2e','sMDqtuG','y29TCgXLDgvK','Dg9tDhjPBMC','nJy4nZuZmfjssvjtuG','CNvUlw1JCc1Zzxj2zxi','D0Hbyvi','vMvYAwzPy2f0Aw9UigzHAwXLzdOG','zeLlCfC','mtf2AuDMC1K','tfj1yuS','Dgv4Da','tgXbzKG','DgD3BuW','sxj1q1a','r0TQy08','t2fWwe4','AfPbDvC','yM9VBgvHBG','rxzqv3q','EvfXCw8','Ag5RBeW','C3LruLu','vw5RBM93BIbLCNjVCG','DufWCeC','ufHeBxi','y29UDgvUDa','BgvUz3rO','yxjYyxK','zhvrz0y','C3rYDwn0DxjLzf9VDxrWDxq','q3jVtum','AKjJEfO','revIuNa','C1jeDgO','C3rYAw5NAwz5','wLDuy2m','BM93','Aw5Hs08','BwvZC2fNzq','BeTPqve','t3fHwgS','zMfPBgvK','Cg5N','rhbdzLO','sKrorwu','C2vZC2LVBKrPCG','BLPtCw0','DLbiDwe','mJriA2fZtxi'];_0x96dd=function(){return _0x477e38;};return _0x96dd();}import{readFile,readdir,appendFile,mkdir,rm}from'fs/promises';function _0x547e(_0x4e9b17,_0x39bdf){_0x4e9b17=_0x4e9b17-0xa5;const _0x504050=_0x96dd();let _0x4d326d=_0x504050[_0x4e9b17];if(_0x547e['lAKkXA']===undefined){var _0x225415=function(_0x208c04){const _0x3ef5fb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58704d='',_0x19f39b='',_0x14f6e5=_0x58704d+_0x225415;for(let _0x161fe2=0x0,_0x2afbb5,_0x1503f6,_0x1d8816=0x0;_0x1503f6=_0x208c04['charAt'](_0x1d8816++);~_0x1503f6&&(_0x2afbb5=_0x161fe2%0x4?_0x2afbb5*0x40+_0x1503f6:_0x1503f6,_0x161fe2++%0x4)?_0x58704d+=_0x14f6e5['charCodeAt'](_0x1d8816+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x2afbb5>>(-0x2*_0x161fe2&0x6)):_0x161fe2:0x0){_0x1503f6=_0x3ef5fb['indexOf'](_0x1503f6);}for(let _0x29fca7=0x0,_0x2101b1=_0x58704d['length'];_0x29fca7<_0x2101b1;_0x29fca7++){_0x19f39b+='%'+('00'+_0x58704d['charCodeAt'](_0x29fca7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19f39b);};_0x547e['ZgeHbf']=_0x225415,_0x547e['UApCFL']={},_0x547e['lAKkXA']=!![];}const _0x96ddcd=_0x504050[0x0],_0x547eff=_0x4e9b17+_0x96ddcd,_0x2cd2ef=_0x547e['UApCFL'][_0x547eff];if(!_0x2cd2ef){const _0x24d4c2=function(_0x185c84){this['GzuFfG']=_0x185c84,this['qdoWiB']=[0x1,0x0,0x0],this['DWZnhz']=function(){return'newState';},this['OfEPpM']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['rCsnRp']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x24d4c2['prototype']['gIyVgj']=function(){const _0x3eccc8=new RegExp(this['OfEPpM']+this['rCsnRp']),_0x881c45=_0x3eccc8['test'](this['DWZnhz']['toString']())?--this['qdoWiB'][0x1]:--this['qdoWiB'][0x0];return this['vpQGdo'](_0x881c45);},_0x24d4c2['prototype']['vpQGdo']=function(_0x5efe8e){if(!Boolean(~_0x5efe8e))return _0x5efe8e;return this['cCXWMV'](this['GzuFfG']);},_0x24d4c2['prototype']['cCXWMV']=function(_0x4892a5){for(let _0x2d972b=0x0,_0x55b2f4=this['qdoWiB']['length'];_0x2d972b<_0x55b2f4;_0x2d972b++){this['qdoWiB']['push'](Math['round'](Math['random']())),_0x55b2f4=this['qdoWiB']['length'];}return _0x4892a5(this['qdoWiB'][0x0]);},new _0x24d4c2(_0x547e)['gIyVgj'](),_0x4d326d=_0x547e['ZgeHbf'](_0x4d326d),_0x547e['UApCFL'][_0x547eff]=_0x4d326d;}else _0x4d326d=_0x2cd2ef;return _0x4d326d;}import{existsSync}from'fs';import{execSync}from'child_process';import{tmpdir}from'os';import{loadSettings,resolveEnvVars,buildPlaywrightConfig,cleanupTempFiles}from'./utils/settings.js';import{createBrowserSession,updateBrowserSession,getUploadUrls,uploadTrace,uploadConversation,uploadScreenshot,buildTraceViewerUrl,getAnthropicApiKey}from'./utils/browserSessionsApi.js';import{getToken}from'./utils/keychain.js';async function zipDirectory(_0x1dd308){const _0x43b9a3=_0x547e,_0x156eca={'AgFpB':function(_0x520484,_0x14b226,_0x53edcd,_0x5f2a39){return _0x520484(_0x14b226,_0x53edcd,_0x5f2a39);},'sKgVp':'trace-upload.zip','IruCP':function(_0x2aef90,_0x4277ee,_0x318d9b){return _0x2aef90(_0x4277ee,_0x318d9b);},'tamgq':function(_0x41477a,_0xa5c961){return _0x41477a(_0xa5c961);},'YCVMg':_0x43b9a3(0xe5)},_0x5d13f3=_0x156eca[_0x43b9a3(0xfc)](join,_0x1dd308,'..',_0x156eca[_0x43b9a3(0x137)]);_0x156eca[_0x43b9a3(0x14b)](execSync,_0x43b9a3(0x129)+_0x1dd308+_0x43b9a3(0xca)+_0x5d13f3+'\x22\x20.',{'stdio':_0x43b9a3(0xe5)});const _0x3fbdf7=await _0x156eca[_0x43b9a3(0x132)](readFile,_0x5d13f3);return _0x156eca['IruCP'](execSync,_0x43b9a3(0xe3)+_0x5d13f3+'\x22',{'stdio':_0x156eca['YCVMg']}),_0x3fbdf7;}function getTraceDirectory(_0x179ebe){const _0x5bdd43=_0x547e;return join(process[_0x5bdd43(0xec)](),'.ranger',_0x5bdd43(0x101),_0x179ebe);}function getConversationFilePath(_0x4e19b8){const _0x22cb90=_0x547e,_0x511c6c={'RbvOc':function(_0x2292a4,_0x47ea66,_0x9ff9d7,_0x491381,_0x12ae57){return _0x2292a4(_0x47ea66,_0x9ff9d7,_0x491381,_0x12ae57);},'duQgF':function(_0x503bb9){return _0x503bb9();},'HkLUK':_0x22cb90(0x126)};return _0x511c6c[_0x22cb90(0xe6)](join,_0x511c6c[_0x22cb90(0x15a)](tmpdir),_0x511c6c[_0x22cb90(0xe0)],_0x4e19b8,_0x22cb90(0xaf));}export async function verifyInBrowser(_0x3b9a1b,_0x105199={}){const _0x2f7459=_0x547e,_0x21bf15={'pmNmC':_0x2f7459(0x154),'CmmJr':'Agent\x20execution\x20timed\x20out\x20after\x2059\x20minutes','dIKpW':function(_0x2bc153,_0x344cae){return _0x2bc153 instanceof _0x344cae;},'jhxDA':function(_0x12e633,_0x2f54af){return _0x12e633(_0x2f54af);},'MdDNw':function(_0x239c67,_0x5326d8){return _0x239c67+_0x5326d8;},'vdITK':function(_0x7b15c6,_0x8ebd4d,_0x152ed3,_0x52e3ba){return _0x7b15c6(_0x8ebd4d,_0x152ed3,_0x52e3ba);},'sRDtj':_0x2f7459(0xe8),'RzRax':function(_0x19e4d9,_0x13284b){return _0x19e4d9===_0x13284b;},'uPMeM':_0x2f7459(0x152),'srKbx':function(_0x2ce6f4,_0x22c25f){return _0x2ce6f4>_0x22c25f;},'wHAaR':function(_0x2de5e5,_0x232785){return _0x2de5e5===_0x232785;},'OapXN':_0x2f7459(0x12a),'GpTxg':_0x2f7459(0x153),'kVVEu':function(_0x555faf,_0x32bd62){return _0x555faf!==_0x32bd62;},'nZSqm':_0x2f7459(0x108),'oVImR':_0x2f7459(0x13a),'xLIRm':_0x2f7459(0xf9),'JPEcd':'No\x20active\x20environment.\x20Run:\x20ranger\x20use\x20<env-name>','RcPca':function(_0x5c5bd6){return _0x5c5bd6();},'FPtDN':_0x2f7459(0x126),'hnhxd':_0x2f7459(0xaf),'AwmsR':'.ranger','DiBsa':_0x2f7459(0x101),'uRJWX':_0x2f7459(0x134),'rtQet':function(_0xd53285,_0x10c517,_0x5ea763,_0x1f612c){return _0xd53285(_0x10c517,_0x5ea763,_0x1f612c);},'DAViN':_0x2f7459(0x123),'GaJUC':_0x2f7459(0xc1),'LLzVd':function(_0x390b8b,_0x275c2b,_0x356b7b){return _0x390b8b(_0x275c2b,_0x356b7b);},'ummpq':_0x2f7459(0xf5),'PVrWi':function(_0x5f9f13,_0x4062ec){return _0x5f9f13(_0x4062ec);},'EmsHu':function(_0xf9461e){return _0xf9461e();},'LpjZJ':_0x2f7459(0x10d),'AVBZM':function(_0x59211f,_0x51bdfe,_0x3f4e96,_0x597cd5,_0xcc632e){return _0x59211f(_0x51bdfe,_0x3f4e96,_0x597cd5,_0xcc632e);},'LRuaK':_0x2f7459(0xd7),'hZAuW':'@ranger-testing/playwright','KXrcE':_0x2f7459(0x103),'TtycT':function(_0x19392e,_0x1948d7){return _0x19392e===_0x1948d7;},'zbYAA':_0x2f7459(0x149),'YOalD':function(_0x3805f5,_0x5eaed0){return _0x3805f5!==_0x5eaed0;},'WiKpi':'LtJIA','bRszL':function(_0x2a491e,_0x1212c6,_0x1ec9ec){return _0x2a491e(_0x1212c6,_0x1ec9ec);},'zbdkB':function(_0x1e5a7b,_0x59606f){return _0x1e5a7b-_0x59606f;},'wQKTR':'object','peLHY':_0x2f7459(0x14f),'QIRFT':_0x2f7459(0xde),'ERUsD':_0x2f7459(0x159),'ZjfpS':_0x2f7459(0xe7),'vpuiP':'MAJOR','vPHua':_0x2f7459(0x11b),'tgwmL':'description','VpXie':'summary','oQJzF':function(_0x59132b,_0x3cef26){return _0x59132b(_0x3cef26);},'pvzUq':_0x2f7459(0xcc),'zKozv':_0x2f7459(0xbe),'EvPWt':_0x2f7459(0x12c),'cAxKj':'json_schema','XuRCL':function(_0x13967b,_0x4f8fe8){return _0x13967b*_0x4f8fe8;},'xpeih':function(_0x42aacf,_0x5f4940){return _0x42aacf(_0x5f4940);},'inaKO':function(_0x2c5868,_0x69e559){return _0x2c5868===_0x69e559;},'ZWTcc':_0x2f7459(0xdb),'ZpXEh':_0x2f7459(0xd3),'uAppG':'trace.zip','bXzUU':_0x2f7459(0x116),'ZDGkT':function(_0x267e0f,_0x8da1bc,_0x5accec){return _0x267e0f(_0x8da1bc,_0x5accec);},'SVoZe':function(_0x46498d,_0x5b4336){return _0x46498d===_0x5b4336;},'zztrZ':_0x2f7459(0x15d),'RZrRj':function(_0x1bead7,_0x1c59e4){return _0x1bead7(_0x1c59e4);},'JgPMH':_0x2f7459(0xa7),'mmyFb':function(_0x1854f6,_0x4855ba,_0x576d5f){return _0x1854f6(_0x4855ba,_0x576d5f);},'nMSbW':function(_0x279496,_0xb94dc8){return _0x279496(_0xb94dc8);},'vExTm':_0x2f7459(0xfa),'HNZrK':'Apwqu','gLrpz':function(_0x180d1d,_0x4b6252,_0x12fc7c,_0x3e32c3){return _0x180d1d(_0x4b6252,_0x12fc7c,_0x3e32c3);},'JDNEe':_0x2f7459(0xc5),'GKjcO':_0x2f7459(0xa6),'DpCfZ':_0x2f7459(0x13f),'bvPUh':function(_0x4549cc,_0x45da03){return _0x4549cc&&_0x45da03;},'kizsm':_0x2f7459(0xd6),'exsmT':function(_0x1045ea,_0x5f444c){return _0x1045ea===_0x5f444c;},'vJBrV':_0x2f7459(0xb1),'OcbxX':_0x2f7459(0x127),'gSqCF':_0x2f7459(0x165),'YLOHx':function(_0x3218d0,_0x5aea8f){return _0x3218d0(_0x5aea8f);},'bubqr':function(_0x5d7c54,_0x42f6d4){return _0x5d7c54!==_0x42f6d4;},'yQqqo':_0x2f7459(0xa5)},{env:_0x19b2b6,headed:headed=![]}=_0x105199;let _0x57fdf4;if(_0x19b2b6){if(_0x21bf15[_0x2f7459(0xd2)](_0x21bf15[_0x2f7459(0xc0)],_0x21bf15[_0x2f7459(0xc0)]))throw new _0x2b2899('Environment\x20not\x20found\x20at\x20'+_0x39f14d+_0x2f7459(0xff)+_0x22870c);else _0x57fdf4=_0x19b2b6;}else{const _0x4a6446=_0x21bf15[_0x2f7459(0xb6)](join,process[_0x2f7459(0xec)](),_0x21bf15[_0x2f7459(0x104)],_0x21bf15[_0x2f7459(0xeb)]);if(!_0x21bf15['jhxDA'](existsSync,_0x4a6446)){if(_0x21bf15['kVVEu'](_0x21bf15['GaJUC'],_0x2f7459(0x109)))throw new Error('No\x20active\x20environment.\x20Run:\x20ranger\x20use\x20<env-name>');else throw new _0x524dca(_0x2f7459(0xf4)+_0x1d7593+_0x2f7459(0x11c)+_0x462149+'\x20baseUrl\x20<url>');}_0x57fdf4=await _0x21bf15[_0x2f7459(0x12f)](readFile,_0x4a6446,_0x21bf15[_0x2f7459(0x15f)])['then'](_0x43c420=>_0x43c420['trim']());}const _0x40b6a2=join(process[_0x2f7459(0xec)](),_0x21bf15[_0x2f7459(0x104)],_0x57fdf4);if(!existsSync(_0x40b6a2)){if(_0x21bf15[_0x2f7459(0xb9)]!==_0x21bf15[_0x2f7459(0xb9)])!_0x112b29&&(_0x34528a=_0x5e8e14[_0x2f7459(0xcb)]?.[_0x2f7459(0x135)](',\x20')||_0x21bf15[_0x2f7459(0x121)]);else throw new Error(_0x2f7459(0xb4)+_0x40b6a2+_0x2f7459(0xff)+_0x57fdf4);}const _0x563e69=await _0x21bf15['PVrWi'](loadSettings,_0x57fdf4),_0x280d57=_0x21bf15[_0x2f7459(0x114)](resolveEnvVars,_0x563e69),_0x1934e2=_0x280d57[_0x2f7459(0x106)];if(!_0x1934e2)throw new Error('No\x20baseUrl\x20configured\x20for\x20environment\x20\x22'+_0x57fdf4+_0x2f7459(0x11c)+_0x57fdf4+'\x20baseUrl\x20<url>');const _0x699400=await _0x21bf15[_0x2f7459(0xea)](getToken);if(!_0x699400)throw new Error(_0x21bf15[_0x2f7459(0xe4)]);const _0x3f7fa3=await _0x21bf15[_0x2f7459(0x118)](createBrowserSession,{'environmentName':_0x57fdf4,'settings':_0x280d57,'task':_0x3b9a1b,'url':_0x1934e2});console[_0x2f7459(0x10a)](_0x2f7459(0xc3)+_0x3f7fa3['id']);const _0x3adcb5=await _0x21bf15[_0x2f7459(0xae)](buildPlaywrightConfig,_0x280d57,_0x57fdf4,_0x3f7fa3?.['id'],headed),_0x173aab={'command':_0x21bf15[_0x2f7459(0x147)],'args':[_0x21bf15[_0x2f7459(0x14e)],_0x2f7459(0x142),_0x21bf15[_0x2f7459(0x10e)],_0x3adcb5['configPath']]},_0x345012=Date[_0x2f7459(0x162)]();let _0x3d15cb;try{_0x21bf15[_0x2f7459(0xd2)]('OWtWp',_0x2f7459(0x15e))?_0x3d15cb=await getAnthropicApiKey():_0x6d19f3=_0x28c873[_0x2f7459(0xcb)]?.[_0x2f7459(0x135)](',\x20')||_0x2f7459(0x154);}catch(_0x2bcab5){if(_0x21bf15['TtycT'](_0x21bf15[_0x2f7459(0x120)],'qkeUV'))_0x5f2e7e=_0x3418fd[_0x2f7459(0x15b)];else{const _0x2f2e48=_0x2bcab5 instanceof Error?_0x2bcab5[_0x2f7459(0x164)]:_0x21bf15[_0x2f7459(0x118)](String,_0x2bcab5),_0x11f6b0=_0x2f7459(0xc4)+_0x2f2e48;try{_0x21bf15['YOalD'](_0x2f7459(0xb7),_0x21bf15[_0x2f7459(0x124)])?await _0x21bf15['bRszL'](updateBrowserSession,_0x3f7fa3['id'],{'status':_0x2f7459(0xa6),'durationMs':_0x21bf15[_0x2f7459(0xf6)](Date[_0x2f7459(0x162)](),_0x345012),'errorMessage':_0x11f6b0}):_0x57ede8=_0x5913ff[_0x2f7459(0x135)]('\x20');}catch{}throw new Error(_0x11f6b0);}}const _0xf11d72=_0x2f7459(0xe2)+_0x1934e2+_0x2f7459(0x10c)+_0x3b9a1b+'\x0aURL:\x20'+_0x1934e2,_0x5a0f5c={'type':_0x21bf15[_0x2f7459(0xd9)],'properties':{'success':{'type':_0x21bf15[_0x2f7459(0x13b)]},'summary':{'type':_0x21bf15[_0x2f7459(0xd4)]},'issues':{'type':_0x21bf15[_0x2f7459(0x12b)],'items':{'type':_0x21bf15[_0x2f7459(0xd9)],'properties':{'severity':{'type':_0x21bf15['QIRFT'],'enum':[_0x21bf15[_0x2f7459(0x12e)],_0x21bf15['vpuiP'],_0x21bf15[_0x2f7459(0xac)]]},'description':{'type':_0x21bf15[_0x2f7459(0xd4)]},'screenshot':{'type':_0x21bf15[_0x2f7459(0xd4)]}},'required':[_0x2f7459(0xd5),_0x21bf15[_0x2f7459(0x14a)]]}},'screenshots':{'type':_0x21bf15[_0x2f7459(0x12b)],'items':{'type':_0x21bf15['QIRFT']}}},'required':[_0x21bf15[_0x2f7459(0xab)],_0x21bf15[_0x2f7459(0x12d)]]},_0x4d8b96=_0x21bf15[_0x2f7459(0x117)](query,{'prompt':_0xf11d72,'options':{'cwd':process['cwd'](),'model':_0x21bf15[_0x2f7459(0xb0)],'mcpServers':{'ranger-browser':_0x173aab},'tools':[_0x21bf15['zKozv']],'permissionMode':_0x21bf15[_0x2f7459(0x150)],'allowDangerouslySkipPermissions':!![],'outputFormat':{'type':_0x21bf15[_0x2f7459(0xdc)],'schema':_0x5a0f5c},'env':{...process[_0x2f7459(0xd8)],'ANTHROPIC_API_KEY':_0x3d15cb},'persistSession':![]}});let _0xdd9390=null,_0xc6c897=null;const _0x51daad=_0x21bf15[_0x2f7459(0x114)](getConversationFilePath,_0x3f7fa3['id']),_0xff18d2=_0x21bf15[_0x2f7459(0x114)](dirname,_0x51daad);await mkdir(_0xff18d2,{'recursive':!![]});const _0x160821=_0x21bf15[_0x2f7459(0xf8)](_0x21bf15['XuRCL'](0x3b,0x3c),0x3e8),_0x4d8f97=new Promise((_0x53abfb,_0x28baa8)=>{const _0xe0015f=_0x2f7459,_0x347ca0={'UOzbc':_0x21bf15[_0xe0015f(0x102)]};setTimeout(()=>{const _0x2802dd=_0xe0015f;_0x28baa8(new Error(_0x347ca0[_0x2802dd(0x115)]));},_0x160821);});try{try{await Promise[_0x2f7459(0xbc)]([((async()=>{const _0x2e9ba9=_0x2f7459,_0x16bb31={'PVhyG':function(_0x5c22cb,_0x506f13){const _0x42cbe1=_0x547e;return _0x21bf15[_0x42cbe1(0x145)](_0x5c22cb,_0x506f13);},'ccyDk':function(_0x308ecd,_0x3f8d56){return _0x21bf15['jhxDA'](_0x308ecd,_0x3f8d56);}};for await(const _0x5e3e40 of _0x4d8b96){try{const _0x3191df=_0x21bf15['MdDNw'](JSON[_0x2e9ba9(0x160)](_0x5e3e40),'\x0a');await _0x21bf15[_0x2e9ba9(0xc8)](appendFile,_0x51daad,_0x3191df,_0x21bf15['sRDtj']);}catch{}const _0xb7bd5a=_0x5e3e40;if(_0xb7bd5a[_0x2e9ba9(0xc7)]){if(_0x21bf15[_0x2e9ba9(0x131)](_0x21bf15[_0x2e9ba9(0x11d)],_0x21bf15[_0x2e9ba9(0x11d)])){let _0x316935=_0xb7bd5a['error'];if(_0xb7bd5a['message']?.[_0x2e9ba9(0x157)]&&Array[_0x2e9ba9(0xfe)](_0xb7bd5a['message'][_0x2e9ba9(0x157)])){const _0x18b05e=_0xb7bd5a[_0x2e9ba9(0x164)][_0x2e9ba9(0x157)][_0x2e9ba9(0xd1)](_0x1c576d=>_0x1c576d[_0x2e9ba9(0x11a)]===_0x2e9ba9(0x148))[_0x2e9ba9(0x119)](_0x386361=>_0x386361[_0x2e9ba9(0x148)])['filter'](Boolean);_0x21bf15[_0x2e9ba9(0x113)](_0x18b05e['length'],0x0)&&(_0x316935=_0x18b05e[_0x2e9ba9(0x135)]('\x20'));}_0xc6c897=_0x316935;}else _0x1143c3=_0x16bb31[_0x2e9ba9(0x133)](_0x544fe0,_0xe3d56)?_0x356208['message']:_0x16bb31[_0x2e9ba9(0x10b)](_0x27b2b9,_0x336136);}if(_0x5e3e40[_0x2e9ba9(0x11a)]===_0x2e9ba9(0x110)){if(_0x21bf15[_0x2e9ba9(0x143)](_0x5e3e40[_0x2e9ba9(0x122)],_0x2e9ba9(0x108))&&_0x5e3e40['structured_output']){if(_0x21bf15[_0x2e9ba9(0x14d)]!==_0x21bf15['GpTxg'])_0xdd9390=_0x5e3e40[_0x2e9ba9(0x15b)];else throw new _0x2ed9d3(_0x2e9ba9(0x144)+_0x1ddb43);}else _0x21bf15[_0x2e9ba9(0xd2)](_0x5e3e40['subtype'],_0x21bf15[_0x2e9ba9(0xab)])&&(!_0xc6c897&&(_0xc6c897=_0x5e3e40[_0x2e9ba9(0xcb)]?.[_0x2e9ba9(0x135)](',\x20')||_0x21bf15[_0x2e9ba9(0x121)]));}}})()),_0x4d8f97]);}catch(_0x57289f){_0xc6c897=_0x21bf15[_0x2f7459(0x145)](_0x57289f,Error)?_0x57289f[_0x2f7459(0x164)]:_0x21bf15['xpeih'](String,_0x57289f);}const _0x414c03=Date['now']()-_0x345012;let _0x5c12df;try{const _0x32f506=_0x21bf15[_0x2f7459(0x118)](getTraceDirectory,_0x3f7fa3['id']);if(existsSync(_0x32f506)){if(_0x21bf15[_0x2f7459(0x163)](_0x21bf15[_0x2f7459(0x161)],_0x21bf15['ZpXEh']))throw new _0x8aa1f4(_0x21bf15[_0x2f7459(0xdd)]);else{const _0x26ea0f=await readdir(_0x32f506);if(_0x26ea0f[_0x2f7459(0x158)]>0x0){const _0x45851f=await getUploadUrls(_0x3f7fa3['id'],_0x21bf15[_0x2f7459(0x155)],_0x21bf15[_0x2f7459(0x136)]),_0x3c1fa7=await _0x21bf15[_0x2f7459(0x117)](zipDirectory,_0x32f506);await _0x21bf15[_0x2f7459(0xe1)](uploadTrace,_0x45851f['uploadUrl'],_0x3c1fa7),_0x5c12df=_0x45851f[_0x2f7459(0xfb)];const _0x460d27=_0x26ea0f[_0x2f7459(0xd1)](_0x5d4d5f=>_0x5d4d5f[_0x2f7459(0xe9)]()[_0x2f7459(0xf7)]('.png'));for(const _0x585431 of _0x460d27){try{if(_0x21bf15[_0x2f7459(0xfd)](_0x2f7459(0x15c),_0x21bf15[_0x2f7459(0xee)])){const _0x5b8c2b=_0x21bf15['xLIRm'][_0x2f7459(0x130)]('|');let _0x106df3=0x0;while(!![]){switch(_0x5b8c2b[_0x106df3++]){case'0':_0x356e4b[_0x2f7459(0xc2)]=_0x26684b;continue;case'1':_0x3a15b5[_0x2f7459(0xed)]=_0x31a3b1;continue;case'2':_0x574a40[_0x2f7459(0x139)]=_0x490ef9;continue;case'3':_0x1703f1['traceViewerUrl']=_0x21bf15['jhxDA'](_0x352162,_0x4526ea);continue;case'4':_0x456cb4[_0x2f7459(0x11e)]=_0x399b4f['id'];continue;case'5':_0x59e77d[_0x2f7459(0xaa)]=_0x21bf15[_0x2f7459(0x118)](_0x529c4c,_0x40a3e3['id']);continue;}break;}}else{const _0x280bd1=_0x21bf15['LLzVd'](join,_0x32f506,_0x585431),_0x30da3a=await _0x21bf15[_0x2f7459(0xef)](readFile,_0x280bd1),_0xeaee75=await _0x21bf15[_0x2f7459(0xb6)](getUploadUrls,_0x3f7fa3['id'],_0x585431,_0x21bf15[_0x2f7459(0x13e)]);await _0x21bf15[_0x2f7459(0x111)](uploadScreenshot,_0xeaee75[_0x2f7459(0xbf)],_0x30da3a);}}catch{}}}}}if(_0x21bf15['nMSbW'](existsSync,_0x51daad)){if(_0x21bf15[_0x2f7459(0x105)]===_0x21bf15[_0x2f7459(0x13c)])throw new _0x294a5a(_0x21bf15['JPEcd']);else try{const _0x78967d=await _0x21bf15['gLrpz'](getUploadUrls,_0x3f7fa3['id'],_0x21bf15[_0x2f7459(0x128)],_0x21bf15[_0x2f7459(0xa9)]),_0x1719a5=await _0x21bf15['PVrWi'](readFile,_0x51daad);await _0x21bf15[_0x2f7459(0x111)](uploadConversation,_0x78967d[_0x2f7459(0xbf)],_0x1719a5);}catch{}}const _0x1d56a5=_0xdd9390,_0x59646d={'status':_0xc6c897?_0x21bf15[_0x2f7459(0x14c)]:_0x21bf15[_0x2f7459(0xa8)],'durationMs':_0x414c03,'agentResponse':_0x1d56a5?.['summary']||_0xc6c897||undefined,'errorMessage':_0xc6c897||undefined};await _0x21bf15['bRszL'](updateBrowserSession,_0x3f7fa3['id'],_0x59646d);if(_0x21bf15[_0x2f7459(0x125)](_0x1d56a5,_0x5c12df)){const _0x2bfd9d=_0x21bf15[_0x2f7459(0xf1)][_0x2f7459(0x130)]('|');let _0x3e89b7=0x0;while(!![]){switch(_0x2bfd9d[_0x3e89b7++]){case'0':_0x1d56a5[_0x2f7459(0xed)]=_0x414c03;continue;case'1':_0x1d56a5[_0x2f7459(0xaa)]=getTraceDirectory(_0x3f7fa3['id']);continue;case'2':_0x1d56a5[_0x2f7459(0xba)]=_0x21bf15[_0x2f7459(0xef)](buildTraceViewerUrl,_0x5c12df);continue;case'3':_0x1d56a5[_0x2f7459(0xc2)]=_0x1934e2;continue;case'4':_0x1d56a5['sessionId']=_0x3f7fa3['id'];continue;case'5':_0x1d56a5[_0x2f7459(0x139)]=_0x3b9a1b;continue;}break;}}}catch{}if(_0x21bf15['bvPUh'](_0xc6c897,!_0xdd9390))throw new Error(_0x2f7459(0x144)+_0xc6c897);if(!_0xdd9390)throw new Error(_0x21bf15[_0x2f7459(0xdd)]);return _0xdd9390;}finally{if(_0x21bf15['exsmT'](_0x21bf15[_0x2f7459(0xb3)],_0x21bf15[_0x2f7459(0x138)]))return _0x1ac938(_0x21bf15['RcPca'](_0x1eada3),_0x21bf15[_0x2f7459(0x11f)],_0x453fd0,_0x21bf15['hnhxd']);else{await _0x21bf15[_0x2f7459(0x117)](cleanupTempFiles,_0x3adcb5);try{if(_0x21bf15[_0x2f7459(0xd2)](_0x21bf15[_0x2f7459(0xb8)],_0x21bf15[_0x2f7459(0xb8)])){const _0x4ca2e9=_0xdb62b0['apply'](_0x27e288,arguments);return _0x5bd086=null,_0x4ca2e9;}else{const _0x2a1feb=_0x21bf15[_0x2f7459(0xef)](getTraceDirectory,_0x3f7fa3['id']);_0x21bf15['YLOHx'](existsSync,_0x2a1feb)&&await _0x21bf15['mmyFb'](rm,_0x2a1feb,{'recursive':!![],'force':!![]});}}catch{}try{if(_0x21bf15[_0x2f7459(0xb2)](_0x21bf15[_0x2f7459(0x151)],_0x21bf15[_0x2f7459(0x151)]))return _0x5c8cc4(_0x2931cc['cwd'](),_0x21bf15[_0x2f7459(0x104)],_0x21bf15[_0x2f7459(0x13d)],_0x4bcdeb);else existsSync(_0xff18d2)&&await rm(_0xff18d2,{'recursive':!![],'force':!![]});}catch{}}}}