nstbrowser-ai-agent 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -48
- package/bin/nstbrowser-ai-agent-darwin-arm64 +0 -0
- package/bin/nstbrowser-ai-agent-darwin-x64 +0 -0
- package/bin/nstbrowser-ai-agent-linux-arm64 +0 -0
- package/bin/nstbrowser-ai-agent-linux-x64 +0 -0
- package/bin/nstbrowser-ai-agent-win32-x64.exe +0 -0
- package/dist/browser-profile-resolver.d.ts.map +1 -1
- package/dist/browser-profile-resolver.js +114 -16
- package/dist/browser-profile-resolver.js.map +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +102 -31
- package/dist/browser.js.map +1 -1
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +9 -0
- package/dist/constants.js.map +1 -1
- package/dist/nstbrowser-actions.d.ts.map +1 -1
- package/dist/nstbrowser-actions.js +200 -2
- package/dist/nstbrowser-actions.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/nstbrowser-ai-agent/SKILL.md +301 -41
- package/skills/nstbrowser-ai-agent/skill.json +1 -1
package/README.md
CHANGED
|
@@ -335,54 +335,56 @@ nstbrowser-ai-agent find role button click --name "Submit"
|
|
|
335
335
|
|
|
336
336
|
### Core Commands
|
|
337
337
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
nstbrowser-ai-agent
|
|
342
|
-
nstbrowser-ai-agent
|
|
343
|
-
nstbrowser-ai-agent
|
|
344
|
-
nstbrowser-ai-agent
|
|
345
|
-
nstbrowser-ai-agent
|
|
346
|
-
nstbrowser-ai-agent
|
|
347
|
-
nstbrowser-ai-agent
|
|
348
|
-
nstbrowser-ai-agent
|
|
349
|
-
nstbrowser-ai-agent
|
|
350
|
-
nstbrowser-ai-agent
|
|
351
|
-
nstbrowser-ai-agent
|
|
352
|
-
nstbrowser-ai-agent
|
|
353
|
-
nstbrowser-ai-agent
|
|
354
|
-
nstbrowser-ai-agent
|
|
355
|
-
nstbrowser-ai-agent
|
|
356
|
-
nstbrowser-ai-agent
|
|
357
|
-
nstbrowser-ai-agent
|
|
358
|
-
nstbrowser-ai-agent
|
|
359
|
-
nstbrowser-ai-agent
|
|
360
|
-
nstbrowser-ai-agent
|
|
361
|
-
nstbrowser-ai-agent
|
|
362
|
-
nstbrowser-ai-agent
|
|
363
|
-
nstbrowser-ai-agent
|
|
338
|
+
All browser action commands support `--profile <name-or-id>` to specify which profile to use:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
nstbrowser-ai-agent open <url> [--profile <name-or-id>] # Navigate to URL (aliases: goto, navigate)
|
|
342
|
+
nstbrowser-ai-agent click <sel> [--profile <name-or-id>] # Click element (--new-tab to open in new tab)
|
|
343
|
+
nstbrowser-ai-agent dblclick <sel> [--profile <name-or-id>] # Double-click element
|
|
344
|
+
nstbrowser-ai-agent focus <sel> [--profile <name-or-id>] # Focus element
|
|
345
|
+
nstbrowser-ai-agent type <sel> <text> [--profile <name-or-id>] # Type into element
|
|
346
|
+
nstbrowser-ai-agent fill <sel> <text> [--profile <name-or-id>] # Clear and fill
|
|
347
|
+
nstbrowser-ai-agent press <key> [--profile <name-or-id>] # Press key (Enter, Tab, Control+a) (alias: key)
|
|
348
|
+
nstbrowser-ai-agent keyboard type <text> [--profile <name-or-id>] # Type with real keystrokes (no selector, current focus)
|
|
349
|
+
nstbrowser-ai-agent keyboard inserttext <text> [--profile <name-or-id>] # Insert text without key events (no selector)
|
|
350
|
+
nstbrowser-ai-agent keydown <key> [--profile <name-or-id>] # Hold key down
|
|
351
|
+
nstbrowser-ai-agent keyup <key> [--profile <name-or-id>] # Release key
|
|
352
|
+
nstbrowser-ai-agent hover <sel> [--profile <name-or-id>] # Hover element
|
|
353
|
+
nstbrowser-ai-agent select <sel> <val> [--profile <name-or-id>] # Select dropdown option
|
|
354
|
+
nstbrowser-ai-agent check <sel> [--profile <name-or-id>] # Check checkbox
|
|
355
|
+
nstbrowser-ai-agent uncheck <sel> [--profile <name-or-id>] # Uncheck checkbox
|
|
356
|
+
nstbrowser-ai-agent scroll <dir> [px] [--profile <name-or-id>] # Scroll (up/down/left/right, --selector <sel>)
|
|
357
|
+
nstbrowser-ai-agent scrollintoview <sel> [--profile <name-or-id>] # Scroll element into view (alias: scrollinto)
|
|
358
|
+
nstbrowser-ai-agent drag <src> <tgt> [--profile <name-or-id>] # Drag and drop
|
|
359
|
+
nstbrowser-ai-agent upload <sel> <files> [--profile <name-or-id>] # Upload files
|
|
360
|
+
nstbrowser-ai-agent screenshot [path] [--profile <name-or-id>] # Take screenshot (--full for full page, saves to a temporary directory if no path)
|
|
361
|
+
nstbrowser-ai-agent screenshot --annotate [--profile <name-or-id>] # Annotated screenshot with numbered element labels
|
|
362
|
+
nstbrowser-ai-agent pdf <path> [--profile <name-or-id>] # Save as PDF
|
|
363
|
+
nstbrowser-ai-agent snapshot [--profile <name-or-id>] # Accessibility tree with refs (best for AI)
|
|
364
|
+
nstbrowser-ai-agent eval <js> [--profile <name-or-id>] # Run JavaScript (-b for base64, --stdin for piped input)
|
|
365
|
+
nstbrowser-ai-agent close [--profile <name-or-id>] # Close browser (aliases: quit, exit)
|
|
364
366
|
```
|
|
365
367
|
|
|
366
368
|
### Get Info
|
|
367
369
|
|
|
368
370
|
```bash
|
|
369
|
-
nstbrowser-ai-agent get text <sel>
|
|
370
|
-
nstbrowser-ai-agent get html <sel>
|
|
371
|
-
nstbrowser-ai-agent get value <sel>
|
|
372
|
-
nstbrowser-ai-agent get attr <sel> <attr>
|
|
373
|
-
nstbrowser-ai-agent get title
|
|
374
|
-
nstbrowser-ai-agent get url
|
|
375
|
-
nstbrowser-ai-agent get count <sel>
|
|
376
|
-
nstbrowser-ai-agent get box <sel>
|
|
377
|
-
nstbrowser-ai-agent get styles <sel>
|
|
371
|
+
nstbrowser-ai-agent get text <sel> [--profile <name-or-id>] # Get text content
|
|
372
|
+
nstbrowser-ai-agent get html <sel> [--profile <name-or-id>] # Get innerHTML
|
|
373
|
+
nstbrowser-ai-agent get value <sel> [--profile <name-or-id>] # Get input value
|
|
374
|
+
nstbrowser-ai-agent get attr <sel> <attr> [--profile <name-or-id>] # Get attribute
|
|
375
|
+
nstbrowser-ai-agent get title [--profile <name-or-id>] # Get page title
|
|
376
|
+
nstbrowser-ai-agent get url [--profile <name-or-id>] # Get current URL
|
|
377
|
+
nstbrowser-ai-agent get count <sel> [--profile <name-or-id>] # Count matching elements
|
|
378
|
+
nstbrowser-ai-agent get box <sel> [--profile <name-or-id>] # Get bounding box
|
|
379
|
+
nstbrowser-ai-agent get styles <sel> [--profile <name-or-id>] # Get computed styles
|
|
378
380
|
```
|
|
379
381
|
|
|
380
382
|
### Check State
|
|
381
383
|
|
|
382
384
|
```bash
|
|
383
|
-
nstbrowser-ai-agent is visible <sel>
|
|
384
|
-
nstbrowser-ai-agent is enabled <sel>
|
|
385
|
-
nstbrowser-ai-agent is checked <sel>
|
|
385
|
+
nstbrowser-ai-agent is visible <sel> [--profile <name-or-id>] # Check if visible
|
|
386
|
+
nstbrowser-ai-agent is enabled <sel> [--profile <name-or-id>] # Check if enabled
|
|
387
|
+
nstbrowser-ai-agent is checked <sel> [--profile <name-or-id>] # Check if checked
|
|
386
388
|
```
|
|
387
389
|
|
|
388
390
|
### Find Elements (Semantic Locators)
|
|
@@ -416,12 +418,12 @@ nstbrowser-ai-agent find nth 2 "a" text
|
|
|
416
418
|
### Wait
|
|
417
419
|
|
|
418
420
|
```bash
|
|
419
|
-
nstbrowser-ai-agent wait <selector>
|
|
420
|
-
nstbrowser-ai-agent wait <ms>
|
|
421
|
-
nstbrowser-ai-agent wait --text "Welcome"
|
|
422
|
-
nstbrowser-ai-agent wait --url "**/dash"
|
|
423
|
-
nstbrowser-ai-agent wait --load networkidle # Wait for load state
|
|
424
|
-
nstbrowser-ai-agent wait --fn "window.ready === true" # Wait for JS condition
|
|
421
|
+
nstbrowser-ai-agent wait <selector> [--profile <name-or-id>] # Wait for element to be visible
|
|
422
|
+
nstbrowser-ai-agent wait <ms> [--profile <name-or-id>] # Wait for time (milliseconds)
|
|
423
|
+
nstbrowser-ai-agent wait --text "Welcome" [--profile <name-or-id>] # Wait for text to appear
|
|
424
|
+
nstbrowser-ai-agent wait --url "**/dash" [--profile <name-or-id>] # Wait for URL pattern
|
|
425
|
+
nstbrowser-ai-agent wait --load networkidle [--profile <name-or-id>] # Wait for load state
|
|
426
|
+
nstbrowser-ai-agent wait --fn "window.ready === true" [--profile <name-or-id>] # Wait for JS condition
|
|
425
427
|
```
|
|
426
428
|
|
|
427
429
|
**Load states:** `load`, `domcontentloaded`, `networkidle`
|
|
@@ -429,10 +431,10 @@ nstbrowser-ai-agent wait --fn "window.ready === true" # Wait for JS condition
|
|
|
429
431
|
### Mouse Control
|
|
430
432
|
|
|
431
433
|
```bash
|
|
432
|
-
nstbrowser-ai-agent mouse move <x> <y>
|
|
433
|
-
nstbrowser-ai-agent mouse down [button]
|
|
434
|
-
nstbrowser-ai-agent mouse up [button]
|
|
435
|
-
nstbrowser-ai-agent mouse wheel <dy> [dx]
|
|
434
|
+
nstbrowser-ai-agent mouse move <x> <y> [--profile <name-or-id>] # Move mouse
|
|
435
|
+
nstbrowser-ai-agent mouse down [button] [--profile <name-or-id>] # Press button (left/right/middle)
|
|
436
|
+
nstbrowser-ai-agent mouse up [button] [--profile <name-or-id>] # Release button
|
|
437
|
+
nstbrowser-ai-agent mouse wheel <dy> [dx] [--profile <name-or-id>] # Scroll wheel
|
|
436
438
|
```
|
|
437
439
|
|
|
438
440
|
### Browser Settings
|
|
@@ -1443,6 +1445,31 @@ nstbrowser-ai-agent nst browser stop-all
|
|
|
1443
1445
|
|
|
1444
1446
|
When enabled, nstbrowser-ai-agent connects to your local Nstbrowser instance via CDP. All standard nstbrowser-ai-agent commands work identically, with the added benefit of Nstbrowser's anti-detection features.
|
|
1445
1447
|
|
|
1448
|
+
## Troubleshooting
|
|
1449
|
+
|
|
1450
|
+
If you encounter issues:
|
|
1451
|
+
|
|
1452
|
+
**Quick Diagnostic Commands:**
|
|
1453
|
+
```bash
|
|
1454
|
+
# Comprehensive environment check
|
|
1455
|
+
nstbrowser-ai-agent diagnose
|
|
1456
|
+
|
|
1457
|
+
# Test browser functionality
|
|
1458
|
+
nstbrowser-ai-agent verify [--profile <name-or-id>]
|
|
1459
|
+
|
|
1460
|
+
# Attempt automatic fixes
|
|
1461
|
+
nstbrowser-ai-agent repair
|
|
1462
|
+
```
|
|
1463
|
+
|
|
1464
|
+
**Common Issues:**
|
|
1465
|
+
- [Browser connection errors](TROUBLESHOOTING.md#browsercontextnewpage-target-page-context-or-browser-has-been-closed)
|
|
1466
|
+
- [API key issues](TROUBLESHOOTING.md#api-key-issues)
|
|
1467
|
+
- [Browser won't start](TROUBLESHOOTING.md#browser-wont-start)
|
|
1468
|
+
- [Profile not found](TROUBLESHOOTING.md#profile-not-found)
|
|
1469
|
+
- [Connection refused](TROUBLESHOOTING.md#connection-refused--cannot-connect-to-nstbrowser)
|
|
1470
|
+
|
|
1471
|
+
**Full Guide**: See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for detailed solutions to common problems.
|
|
1472
|
+
|
|
1446
1473
|
## License
|
|
1447
1474
|
|
|
1448
1475
|
Apache-2.0
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-profile-resolver.d.ts","sourceRoot":"","sources":["../src/browser-profile-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-profile-resolver.d.ts","sourceRoot":"","sources":["../src/browser-profile-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAY/D;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED,MAAM,WAAW,+BAA+B;IAC9C,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,sBAAsB,CAAC,CAyTjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,+BAA+B,CAOjC"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* 7. If no profile specified → use existing once browser or create new once browser
|
|
15
15
|
*/
|
|
16
16
|
import { NstbrowserError } from './nstbrowser-errors.js';
|
|
17
|
-
import { BROWSER_START_VERIFICATION_DELAY, ERROR_CODES, buildWsProfileUrl, buildWsOnceUrl, } from './constants.js';
|
|
17
|
+
import { BROWSER_START_VERIFICATION_DELAY, MAX_BROWSER_START_RETRIES, BROWSER_START_RETRY_DELAY, ERROR_CODES, buildWsProfileUrl, buildWsOnceUrl, } from './constants.js';
|
|
18
18
|
/**
|
|
19
19
|
* Check if a string is a valid UUID (case-insensitive)
|
|
20
20
|
*/
|
|
@@ -116,18 +116,24 @@ export async function resolveBrowserProfile(client, options) {
|
|
|
116
116
|
throw new NstbrowserError(`Profile with ID "${profileId}" not found. ` +
|
|
117
117
|
`Run 'nstbrowser-ai-agent profile list' to see available profiles.`, 'PROFILE_NOT_FOUND', 404);
|
|
118
118
|
}
|
|
119
|
-
// Start the browser
|
|
119
|
+
// Start the browser with retry mechanism
|
|
120
120
|
if (debug) {
|
|
121
121
|
console.error(`[DEBUG] Starting browser for profile ID: ${profileId}`);
|
|
122
122
|
}
|
|
123
|
-
await client
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
123
|
+
const started = await startBrowserWithRetry(client, profileId);
|
|
124
|
+
if (!started) {
|
|
125
|
+
throw new NstbrowserError(`Failed to start browser after ${MAX_BROWSER_START_RETRIES} attempts.\n` +
|
|
126
|
+
`Profile ID: ${profileId}\n\n` +
|
|
127
|
+
`This may indicate:\n` +
|
|
128
|
+
`1. Nstbrowser client crashed or is not responding\n` +
|
|
129
|
+
`2. Profile configuration is invalid\n` +
|
|
130
|
+
`3. System resources are insufficient\n` +
|
|
131
|
+
`4. Port conflict or browser process failed to start\n\n` +
|
|
132
|
+
`Troubleshooting:\n` +
|
|
133
|
+
`- Run: nstbrowser-ai-agent diagnose\n` +
|
|
134
|
+
`- Check: nstbrowser-ai-agent nst status\n` +
|
|
135
|
+
`- Try: nstbrowser-ai-agent repair\n` +
|
|
136
|
+
`- Restart Nstbrowser client application`, ERROR_CODES.BROWSER_START_FAILED);
|
|
131
137
|
}
|
|
132
138
|
const wsUrl = buildWsProfileUrl(options.nstHost, options.nstPort, profileId, options.nstApiKey);
|
|
133
139
|
return {
|
|
@@ -155,15 +161,35 @@ export async function resolveBrowserProfile(client, options) {
|
|
|
155
161
|
};
|
|
156
162
|
const newProfile = await client.createProfile(profileConfig);
|
|
157
163
|
profileId = newProfile.profileId;
|
|
164
|
+
const actualProfileName = newProfile.name;
|
|
158
165
|
if (debug) {
|
|
159
|
-
console.error(`[DEBUG] Created new profile
|
|
166
|
+
console.error(`[DEBUG] Created new profile with ID: ${profileId}`);
|
|
167
|
+
if (actualProfileName !== profileName) {
|
|
168
|
+
console.error(`[DEBUG] Note: Requested name "${profileName}" but API assigned "${actualProfileName}"`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Inform user if profile name was modified by the API
|
|
172
|
+
if (actualProfileName !== profileName) {
|
|
173
|
+
console.error(`\n⚠️ Profile name modified by API: "${profileName}" → "${actualProfileName}"\n` +
|
|
174
|
+
` This happens when a profile with the requested name already exists.\n` +
|
|
175
|
+
` Use "--profile ${actualProfileName}" or "--profile ${profileId}" for future operations.\n`);
|
|
176
|
+
}
|
|
177
|
+
// Start the newly created profile with retry
|
|
178
|
+
const started = await startBrowserWithRetry(client, profileId);
|
|
179
|
+
if (!started) {
|
|
180
|
+
throw new NstbrowserError(`Failed to start newly created profile "${profileName}" (${profileId}).\n\n` +
|
|
181
|
+
`The profile was created but the browser failed to start. This may indicate:\n` +
|
|
182
|
+
`1. Nstbrowser client is not responding\n` +
|
|
183
|
+
`2. System resources are insufficient\n\n` +
|
|
184
|
+
`Troubleshooting:\n` +
|
|
185
|
+
`- Run: nstbrowser-ai-agent diagnose\n` +
|
|
186
|
+
`- Try: nstbrowser-ai-agent repair\n` +
|
|
187
|
+
`- Delete the profile and try again: nstbrowser-ai-agent profile delete ${profileId}`, ERROR_CODES.BROWSER_START_FAILED);
|
|
160
188
|
}
|
|
161
|
-
// Start the newly created profile
|
|
162
|
-
await client.startBrowser(profileId);
|
|
163
189
|
const wsUrl = buildWsProfileUrl(options.nstHost, options.nstPort, profileId, options.nstApiKey);
|
|
164
190
|
return {
|
|
165
191
|
profileId,
|
|
166
|
-
profileName,
|
|
192
|
+
profileName: actualProfileName, // Use actual name from API, not requested name
|
|
167
193
|
isRunning: true,
|
|
168
194
|
isOnce: false,
|
|
169
195
|
wsUrl,
|
|
@@ -177,11 +203,18 @@ export async function resolveBrowserProfile(client, options) {
|
|
|
177
203
|
console.error(`[DEBUG] Found ${profiles.length} profiles with name "${profileName}". ` +
|
|
178
204
|
`Using the first one: ${profileId}`);
|
|
179
205
|
}
|
|
180
|
-
// Start the browser
|
|
206
|
+
// Start the browser with retry
|
|
181
207
|
if (debug) {
|
|
182
208
|
console.error(`[DEBUG] Starting browser for profile "${profileName}" (ID: ${profileId})`);
|
|
183
209
|
}
|
|
184
|
-
await client
|
|
210
|
+
const started = await startBrowserWithRetry(client, profileId);
|
|
211
|
+
if (!started) {
|
|
212
|
+
throw new NstbrowserError(`Failed to start browser for profile "${profileName}" (${profileId}).\n\n` +
|
|
213
|
+
`Troubleshooting:\n` +
|
|
214
|
+
`- Run: nstbrowser-ai-agent diagnose\n` +
|
|
215
|
+
`- Check: nstbrowser-ai-agent nst status\n` +
|
|
216
|
+
`- Try: nstbrowser-ai-agent repair`, ERROR_CODES.BROWSER_START_FAILED);
|
|
217
|
+
}
|
|
185
218
|
const wsUrl = buildWsProfileUrl(options.nstHost, options.nstPort, profileId, options.nstApiKey);
|
|
186
219
|
return {
|
|
187
220
|
profileId,
|
|
@@ -244,4 +277,69 @@ export function extractProfileOptions(command, nstHost, nstPort, nstApiKey) {
|
|
|
244
277
|
nstApiKey,
|
|
245
278
|
};
|
|
246
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Start browser with retry mechanism
|
|
282
|
+
* @returns true if browser started successfully, false otherwise
|
|
283
|
+
*/
|
|
284
|
+
async function startBrowserWithRetry(client, profileId, maxRetries = MAX_BROWSER_START_RETRIES) {
|
|
285
|
+
const debug = process.env.NSTBROWSER_AI_AGENT_DEBUG === '1';
|
|
286
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
287
|
+
try {
|
|
288
|
+
if (debug && attempt > 1) {
|
|
289
|
+
console.error(`[DEBUG] Browser start attempt ${attempt}/${maxRetries} for profile: ${profileId}`);
|
|
290
|
+
}
|
|
291
|
+
await client.startBrowser(profileId);
|
|
292
|
+
// Wait for browser to initialize
|
|
293
|
+
await new Promise((resolve) => setTimeout(resolve, BROWSER_START_VERIFICATION_DELAY));
|
|
294
|
+
// Verify browser is running
|
|
295
|
+
const browsers = await client.getBrowsers();
|
|
296
|
+
const running = browsers.find((b) => b.profileId === profileId && b.running);
|
|
297
|
+
if (running) {
|
|
298
|
+
if (debug && attempt > 1) {
|
|
299
|
+
console.error(`[DEBUG] Browser started successfully on attempt ${attempt}`);
|
|
300
|
+
}
|
|
301
|
+
return true; // Success
|
|
302
|
+
}
|
|
303
|
+
// Browser not found in running list
|
|
304
|
+
if (attempt < maxRetries) {
|
|
305
|
+
if (debug) {
|
|
306
|
+
console.error(`[DEBUG] Browser not running after start (attempt ${attempt}/${maxRetries}), retrying in ${BROWSER_START_RETRY_DELAY}ms...`);
|
|
307
|
+
}
|
|
308
|
+
await new Promise((resolve) => setTimeout(resolve, BROWSER_START_RETRY_DELAY));
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
if (attempt === maxRetries) {
|
|
313
|
+
// Last attempt failed, throw error
|
|
314
|
+
throw error;
|
|
315
|
+
}
|
|
316
|
+
if (debug) {
|
|
317
|
+
console.error(`[DEBUG] Browser start failed (attempt ${attempt}/${maxRetries}): ${error instanceof Error ? error.message : String(error)}`);
|
|
318
|
+
console.error(`[DEBUG] Retrying in ${BROWSER_START_RETRY_DELAY}ms...`);
|
|
319
|
+
}
|
|
320
|
+
await new Promise((resolve) => setTimeout(resolve, BROWSER_START_RETRY_DELAY));
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return false; // All attempts failed
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Verify browser health
|
|
327
|
+
* @returns true if browser is healthy, false otherwise
|
|
328
|
+
*/
|
|
329
|
+
async function verifyBrowserHealth(client, profileId) {
|
|
330
|
+
try {
|
|
331
|
+
// Check if browser is running
|
|
332
|
+
const browsers = await client.getBrowsers();
|
|
333
|
+
const browser = browsers.find((b) => b.profileId === profileId);
|
|
334
|
+
if (!browser || !browser.running) {
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
// Try to get CDP URL (tests if browser is responsive)
|
|
338
|
+
const cdpInfo = await client.getCdpUrl(profileId);
|
|
339
|
+
return !!cdpInfo.webSocketDebuggerUrl;
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
247
345
|
//# sourceMappingURL=browser-profile-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-profile-resolver.js","sourceRoot":"","sources":["../src/browser-profile-resolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser-profile-resolver.js","sourceRoot":"","sources":["../src/browser-profile-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,KAAK,KAAK,EAIV,KAAK,OAAO,EACZ,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAiC,MAAM,eAAe,CAAC;AAiBlG;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,MAAM,CAA2D;IACzE,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,kBAAkB,CAA2D;IACrF,OAAO,CAAC,WAAW,CAAmD;IACtE,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IAEtC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,IAAI;IAKvE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,aAAa,CAAmD;IACxE,OAAO,CAAC,sBAAsB,CAAwC;IAGtE,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,cAAc,CAAgB;IAEtC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAO/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IACvD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,kBAAkB,CAA6D;IACvF,OAAO,CAAC,sBAAsB,CAA6B;IAE3D;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQ7B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IA8BjD;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIhC;;;OAGG;YACW,kBAAkB;IAMhC;;;;OAIG;YACW,qBAAqB;IAgBnC;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAmBrC;;OAEG;IACH,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAU1C;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CjC;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACH,QAAQ,IAAI,KAAK;IAOjB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/F;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAmB3E;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAQ1B;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAa5B;;OAEG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;IAO9C;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACG,QAAQ,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE;YACT,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAClC,CAAC;QACF,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,IAAI,CAAC;IAsBhB;;OAEG;IACG,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9C;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3F;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1E;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D;;;;;;;;;;OAUG;IACG,oBAAoB,CACxB,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjD;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,GAAG,SAAS;IAIjF;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAW5B;;OAEG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAItC;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAI5B;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAU1B;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrE;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCtF;;OAEG;IACG,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F;;OAEG;IACG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACH,UAAU,IAAI,cAAc,GAAG,IAAI;IAInC;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAIlB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,UAAU,IAAI,OAAO,GAAG,IAAI;IAI5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;YACW,sBAAsB;IAwBpC;;;;;;;;;;;;;;OAcG;YACW,mBAAmB;IA8IjC;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA4XnD;;;OAGG;YACW,aAAa;IAuF3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;;OAGG;YACW,cAAc;IAa5B;;;;;;;;OAQG;YACW,iBAAiB;IA6D/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAmCzD;;OAEG;IACG,SAAS,CAAC,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,OAAO,CAAC;QAC5E,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAwCF;;;OAGG;YACW,oBAAoB;IAalC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAoBrF;;OAEG;IACG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA8B9E;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAYhG;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAa1C;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;;OAIG;IACG,eAAe,CACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,EAC1C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAuChB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBrC;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyExE;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAgEtF;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,YAAY,GAAG,YAAY,CAAC;QACrE,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjB;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE;QAChC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;QACnC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjB;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;QAC9D,WAAW,EAAE,KAAK,CAAC;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;OAOG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsHrE;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAuEhF;;;;;;;OAOG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAiBvD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA4E7B"}
|
package/dist/browser.js
CHANGED
|
@@ -256,12 +256,27 @@ export class BrowserManager {
|
|
|
256
256
|
else {
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
this.pages.
|
|
262
|
-
|
|
259
|
+
try {
|
|
260
|
+
const page = await context.newPage();
|
|
261
|
+
if (!this.pages.includes(page)) {
|
|
262
|
+
this.pages.push(page);
|
|
263
|
+
this.setupPageTracking(page);
|
|
264
|
+
}
|
|
265
|
+
this.activePageIndex = this.pages.length - 1;
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
// Handle case where browser context was closed externally (e.g., via nst browser stop)
|
|
269
|
+
if (error?.message?.includes('Target page, context or browser has been closed')) {
|
|
270
|
+
// Clear stale references and re-throw with helpful message
|
|
271
|
+
this.browser = null;
|
|
272
|
+
this.contexts = [];
|
|
273
|
+
this.pages = [];
|
|
274
|
+
this.nstSessionId = null;
|
|
275
|
+
throw new Error('Browser context was closed. The browser may have been stopped externally. ' +
|
|
276
|
+
'Please start a new browser session.');
|
|
277
|
+
}
|
|
278
|
+
throw error;
|
|
263
279
|
}
|
|
264
|
-
this.activePageIndex = this.pages.length - 1;
|
|
265
280
|
}
|
|
266
281
|
/**
|
|
267
282
|
* Get the current active page, throws if not launched
|
|
@@ -1166,14 +1181,28 @@ export class BrowserManager {
|
|
|
1166
1181
|
this.contexts.push(context);
|
|
1167
1182
|
this.setupContextTracking(context);
|
|
1168
1183
|
await this.ensureDomainFilter(context);
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
this.pages.
|
|
1174
|
-
|
|
1184
|
+
try {
|
|
1185
|
+
const page = context.pages()[0] ?? (await context.newPage());
|
|
1186
|
+
await this.sanitizeExistingPages([page]);
|
|
1187
|
+
// Only add if not already tracked (setupContextTracking may have already added it via 'page' event)
|
|
1188
|
+
if (!this.pages.includes(page)) {
|
|
1189
|
+
this.pages.push(page);
|
|
1190
|
+
this.setupPageTracking(page);
|
|
1191
|
+
}
|
|
1192
|
+
this.activePageIndex = this.pages.length > 0 ? this.pages.length - 1 : 0;
|
|
1193
|
+
}
|
|
1194
|
+
catch (error) {
|
|
1195
|
+
// Handle case where browser context was closed externally
|
|
1196
|
+
if (error?.message?.includes('Target page, context or browser has been closed')) {
|
|
1197
|
+
this.browser = null;
|
|
1198
|
+
this.contexts = [];
|
|
1199
|
+
this.pages = [];
|
|
1200
|
+
this.nstSessionId = null;
|
|
1201
|
+
throw new Error('Browser context was closed. The browser may have been stopped externally. ' +
|
|
1202
|
+
'Please start a new browser session.');
|
|
1203
|
+
}
|
|
1204
|
+
throw error;
|
|
1175
1205
|
}
|
|
1176
|
-
this.activePageIndex = this.pages.length > 0 ? this.pages.length - 1 : 0;
|
|
1177
1206
|
}
|
|
1178
1207
|
/**
|
|
1179
1208
|
* Connect to a running browser via CDP (Chrome DevTools Protocol)
|
|
@@ -1454,14 +1483,28 @@ export class BrowserManager {
|
|
|
1454
1483
|
// Invalidate CDP session since we're switching to a new page
|
|
1455
1484
|
await this.invalidateCDPSession();
|
|
1456
1485
|
const context = this.contexts[0]; // Use first context for tabs
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
this.pages.
|
|
1461
|
-
|
|
1486
|
+
try {
|
|
1487
|
+
const page = await context.newPage();
|
|
1488
|
+
// Only add if not already tracked (setupContextTracking may have already added it via 'page' event)
|
|
1489
|
+
if (!this.pages.includes(page)) {
|
|
1490
|
+
this.pages.push(page);
|
|
1491
|
+
this.setupPageTracking(page);
|
|
1492
|
+
}
|
|
1493
|
+
this.activePageIndex = this.pages.length - 1;
|
|
1494
|
+
return { index: this.activePageIndex, total: this.pages.length };
|
|
1495
|
+
}
|
|
1496
|
+
catch (error) {
|
|
1497
|
+
// Handle case where browser context was closed externally
|
|
1498
|
+
if (error?.message?.includes('Target page, context or browser has been closed')) {
|
|
1499
|
+
this.browser = null;
|
|
1500
|
+
this.contexts = [];
|
|
1501
|
+
this.pages = [];
|
|
1502
|
+
this.nstSessionId = null;
|
|
1503
|
+
throw new Error('Browser context was closed. The browser may have been stopped externally. ' +
|
|
1504
|
+
'Please start a new browser session.');
|
|
1505
|
+
}
|
|
1506
|
+
throw error;
|
|
1462
1507
|
}
|
|
1463
|
-
this.activePageIndex = this.pages.length - 1;
|
|
1464
|
-
return { index: this.activePageIndex, total: this.pages.length };
|
|
1465
1508
|
}
|
|
1466
1509
|
/**
|
|
1467
1510
|
* Create a new window (new context)
|
|
@@ -1478,14 +1521,28 @@ export class BrowserManager {
|
|
|
1478
1521
|
this.contexts.push(context);
|
|
1479
1522
|
this.setupContextTracking(context);
|
|
1480
1523
|
await this.ensureDomainFilter(context);
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
this.pages.
|
|
1485
|
-
|
|
1524
|
+
try {
|
|
1525
|
+
const page = await context.newPage();
|
|
1526
|
+
// Only add if not already tracked (setupContextTracking may have already added it via 'page' event)
|
|
1527
|
+
if (!this.pages.includes(page)) {
|
|
1528
|
+
this.pages.push(page);
|
|
1529
|
+
this.setupPageTracking(page);
|
|
1530
|
+
}
|
|
1531
|
+
this.activePageIndex = this.pages.length - 1;
|
|
1532
|
+
return { index: this.activePageIndex, total: this.pages.length };
|
|
1533
|
+
}
|
|
1534
|
+
catch (error) {
|
|
1535
|
+
// Handle case where browser context was closed externally
|
|
1536
|
+
if (error?.message?.includes('Target page, context or browser has been closed')) {
|
|
1537
|
+
this.browser = null;
|
|
1538
|
+
this.contexts = [];
|
|
1539
|
+
this.pages = [];
|
|
1540
|
+
this.nstSessionId = null;
|
|
1541
|
+
throw new Error('Browser context was closed. The browser may have been stopped externally. ' +
|
|
1542
|
+
'Please start a new browser session.');
|
|
1543
|
+
}
|
|
1544
|
+
throw error;
|
|
1486
1545
|
}
|
|
1487
|
-
this.activePageIndex = this.pages.length - 1;
|
|
1488
|
-
return { index: this.activePageIndex, total: this.pages.length };
|
|
1489
1546
|
}
|
|
1490
1547
|
/**
|
|
1491
1548
|
* Invalidate the current CDP session (must be called before switching pages)
|
|
@@ -1881,11 +1938,25 @@ export class BrowserManager {
|
|
|
1881
1938
|
});
|
|
1882
1939
|
this.recordingContext.setDefaultTimeout(10000);
|
|
1883
1940
|
// Create a page in the recording context
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1941
|
+
try {
|
|
1942
|
+
this.recordingPage = await this.recordingContext.newPage();
|
|
1943
|
+
// Add the recording context and page to our managed lists
|
|
1944
|
+
this.contexts.push(this.recordingContext);
|
|
1945
|
+
this.pages.push(this.recordingPage);
|
|
1946
|
+
this.activePageIndex = this.pages.length - 1;
|
|
1947
|
+
}
|
|
1948
|
+
catch (error) {
|
|
1949
|
+
// Handle case where browser context was closed externally
|
|
1950
|
+
if (error?.message?.includes('Target page, context or browser has been closed')) {
|
|
1951
|
+
this.browser = null;
|
|
1952
|
+
this.contexts = [];
|
|
1953
|
+
this.pages = [];
|
|
1954
|
+
this.nstSessionId = null;
|
|
1955
|
+
throw new Error('Browser context was closed. The browser may have been stopped externally. ' +
|
|
1956
|
+
'Please start a new browser session.');
|
|
1957
|
+
}
|
|
1958
|
+
throw error;
|
|
1959
|
+
}
|
|
1889
1960
|
// Set up page tracking
|
|
1890
1961
|
this.setupPageTracking(this.recordingPage);
|
|
1891
1962
|
// Invalidate CDP session since we switched pages
|