@roxybrowser/openapi 1.0.3 → 1.0.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # RoxyBrowser MCP Server
2
2
 
3
+ [English](README.md) | [中文](README_CN.md)
4
+
3
5
  A Model Context Protocol (MCP) server for [RoxyBrowser](https://www.roxybrowser.com/) that provides AI assistants with the ability to manage browser instances and obtain Chrome DevTools Protocol (CDP) WebSocket endpoints for automation.
4
6
 
5
7
  ## Features
@@ -7,11 +9,10 @@ A Model Context Protocol (MCP) server for [RoxyBrowser](https://www.roxybrowser.
7
9
  - 🚀 **Browser Management**: Open and close RoxyBrowser instances programmatically
8
10
  - 🔗 **CDP Integration**: Get WebSocket endpoints for Chrome DevTools Protocol automation
9
11
  - 🤖 **AI-Friendly**: Seamlessly integrates with AI assistants through MCP
10
- - 🎯 **Playwright Ready**: Works perfectly with [@playwright/mcp](https://github.com/microsoft/playwright-mcp)
12
+ - 🎯 **Playwright Ready**: Works perfectly with [PlayRoxy MCP](https://github.com/roxybrowserlabs/playroxy-mcp) (RoxyBrowser's customized Playwright MCP)
11
13
  - 📊 **Workspace Support**: Manage browsers across different workspaces and projects
12
- - 🛠️ **Browser Creation**: Create browsers with layered complexity (Simple, Standard, Advanced, Template-based)
14
+ - 🛠️ **Browser Creation**: Create browsers with layered complexity (Simple, Standard, Advanced)
13
15
  - 🌐 **Proxy Management**: Built-in proxy validation, testing, and configuration tools
14
- - 📋 **Template System**: Predefined configurations for Gmail, Facebook, E-commerce, and more
15
16
  - 🔧 **Advanced Configuration**: Full control over fingerprints, proxies, and browser settings
16
17
 
17
18
  ## Quick Start
@@ -20,285 +21,117 @@ A Model Context Protocol (MCP) server for [RoxyBrowser](https://www.roxybrowser.
20
21
 
21
22
  1. **RoxyBrowser** installed and running
22
23
  2. **RoxyBrowser API** enabled in settings:
23
- - Open RoxyBrowser → API → API配置
24
- - Set "启用状态" to "启用" (Enable)
24
+ - Open RoxyBrowser → API
25
+ - Set "API Status" to "Enable"
25
26
  - Copy your API Key
26
27
  - Note the API port (default: 50000)
27
28
 
28
- ### Installation
29
-
30
- ```bash
31
- # Clone or download the roxy-browser-mcp project
32
- cd roxy-browser-mcp
33
-
34
- # Install dependencies
35
- npm install
36
-
37
- # Build the TypeScript project
38
- npm run build
39
- ```
40
-
41
- ### Configuration
42
-
43
- Set up your environment variables:
44
-
45
- ```bash
46
- # Required: Your RoxyBrowser API Key
47
- export ROXY_API_KEY="your_api_key_here"
48
-
49
- # Optional: API host (default: http://127.0.0.1:50000)
50
- export ROXY_API_HOST="http://127.0.0.1:50000"
51
-
52
- # Optional: Request timeout in milliseconds (default: 30000)
53
- export ROXY_TIMEOUT="30000"
54
- ```
55
-
56
29
  ### MCP Client Configuration
57
30
 
58
- Add the server to your MCP client configuration:
31
+ Add both RoxyBrowser OpenAPI and PlayRoxy MCP to your MCP client configuration:
59
32
 
60
33
  **Claude Desktop / VS Code / Cursor:**
61
34
  ```json
62
35
  {
63
36
  "mcpServers": {
64
- "roxy-browser": {
65
- "command": "node",
66
- "args": ["/path/to/roxy-browser-mcp/lib/index.js"],
37
+ "roxybrowser-openapi": {
38
+ "command": "npx",
39
+ "args": ["@roxybrowser/openapi@latest"],
67
40
  "env": {
68
- "ROXY_API_KEY": "your_api_key_here",
41
+ "ROXY_API_KEY": "YOUR API KEY",
69
42
  "ROXY_API_HOST": "http://127.0.0.1:50000"
70
43
  }
44
+ },
45
+ "roxybrowser-playwright-mcp": {
46
+ "command": "npx",
47
+ "args": ["@roxybrowser/playwright-mcp@latest"]
71
48
  }
72
49
  }
73
50
  }
74
51
  ```
75
52
 
76
- ## Usage
77
-
78
- ### Available Tools
79
-
80
- #### Browser Management Tools
81
-
82
- ##### 1. `roxy_list_workspaces`
83
- Get all available workspaces and their projects.
84
-
85
- **Parameters:**
86
- - `pageIndex` (optional): Page number for pagination (default: 1)
87
- - `pageSize` (optional): Items per page (default: 15)
53
+ **Note:** Replace `YOUR API KEY` and `YOUR API HOST` with your actual RoxyBrowser credentials.
88
54
 
89
- **Example:**
90
- ```
91
- AI: "List all RoxyBrowser workspaces"
92
- ```
55
+ ## Available Tools
93
56
 
94
- ##### 2. `roxy_list_browsers`
95
- Get browsers in a specific workspace/project.
57
+ ### Workspace & Project Management
58
+ - `roxy_list_workspaces` - List all available workspaces and their projects
59
+ - `roxy_list_accounts` - Get platform accounts and credentials in a workspace
60
+ - `roxy_list_labels` - Get browser labels/tags for organization
96
61
 
97
- **Parameters:**
98
- - `workspaceId` (required): Workspace ID
99
- - `projectIds` (optional): Comma-separated project IDs
100
- - `windowName` (optional): Filter by browser window name
101
- - `pageIndex` (optional): Page number (default: 1)
102
- - `pageSize` (optional): Items per page (default: 15)
62
+ ### Browser Management
63
+ - `roxy_list_browsers` - List browsers in a workspace/project with filtering
64
+ - `roxy_get_browser_detail` - Get detailed browser information and configuration
65
+ - `roxy_open_browsers` - Open browsers and get CDP WebSocket endpoints for automation
66
+ - `roxy_close_browsers` - Close running browsers (does NOT free quota)
67
+ - `roxy_delete_browsers` - Delete browser profiles permanently (frees quota)
68
+ - `roxy_get_connection_info` - Get CDP endpoints and PIDs for opened browsers
103
69
 
104
- **Example:**
105
- ```
106
- AI: "List browsers in workspace 1 project 5"
107
- ```
70
+ ### Browser Creation
71
+ - `roxy_create_browser_simple` - Create browser with basic configuration
72
+ - `roxy_create_browser_standard` - Create browser with common settings (OS, proxy, window size, etc.)
73
+ - `roxy_create_browser_advanced` - Create browser with full control (fingerprint, platform accounts, etc.)
108
74
 
109
- ##### 3. `roxy_open_browsers` ⭐
110
- Open multiple browsers and get their CDP WebSocket endpoints.
75
+ ### Browser Maintenance
76
+ - `roxy_update_browser` - Update existing browser configuration
77
+ - `roxy_random_fingerprint` - Randomize browser fingerprint
78
+ - `roxy_clear_local_cache` - Clear local browser cache
79
+ - `roxy_clear_server_cache` - Clear server-side browser cache
111
80
 
112
- **Parameters:**
113
- - `workspaceId` (required): Workspace ID
114
- - `dirIds` (required): Array of browser directory IDs
115
- - `args` (optional): Browser startup arguments
116
-
117
- **Example:**
118
- ```
119
- AI: "Open 5 browsers from workspace 1 with IDs: abc123, def456, ghi789, jkl012, mno345"
120
- ```
121
-
122
- **Returns:**
123
- - CDP WebSocket URLs for each browser
124
- - HTTP endpoints
125
- - Process IDs
126
- - Ready-to-use playwright-mcp commands
127
-
128
- ##### 4. `roxy_close_browsers`
129
- Close multiple browsers by their directory IDs.
130
-
131
- **Parameters:**
132
- - `dirIds` (required): Array of browser directory IDs to close
133
-
134
- **Example:**
135
- ```
136
- AI: "Close browsers with IDs: abc123, def456, ghi789"
137
- ```
138
-
139
- #### Browser Creation Tools 🆕
140
-
141
- ##### 5. `roxy_create_browser_simple`
142
- Create a browser with simple configuration - perfect for quick setup.
143
-
144
- **Parameters:**
145
- - `workspaceId` (required): Workspace ID
146
- - `windowName` (optional): Browser window name
147
- - `projectId` (optional): Project ID
148
- - `proxyHost` (optional): Proxy server host
149
- - `proxyPort` (optional): Proxy server port
150
- - `proxyUserName` (optional): Proxy username
151
- - `proxyPassword` (optional): Proxy password
152
- - `proxyType` (optional): HTTP, HTTPS, or SOCKS5
153
-
154
- **Example:**
155
- ```
156
- AI: "Create a simple browser in workspace 1 with proxy 192.168.1.100:8080"
157
- ```
158
-
159
- ##### 6. `roxy_create_browser_standard`
160
- Create a browser with standard configuration - covers most use cases.
161
-
162
- **Parameters:**
163
- - `workspaceId` (required): Workspace ID
164
- - `windowName` (optional): Browser window name
165
- - `projectId` (optional): Project ID
166
- - `os` (optional): Windows, macOS, Linux, IOS, Android
167
- - `osVersion` (optional): OS version
168
- - `coreVersion` (optional): Browser core version
169
- - `proxyInfo` (optional): Complete proxy configuration object
170
- - `openWidth` (optional): Window width
171
- - `openHeight` (optional): Window height
172
- - `language` (optional): Browser language
173
- - `timeZone` (optional): Browser timezone
174
- - `defaultOpenUrl` (optional): URLs to open by default
175
-
176
- **Example:**
177
- ```
178
- AI: "Create a standard Windows 11 browser with 1920x1080 resolution and SOCKS5 proxy"
179
- ```
180
-
181
- ##### 7. `roxy_create_browser_advanced`
182
- Create a browser with complete configuration control - for expert users.
183
-
184
- **Parameters:**
185
- - All standard parameters plus:
186
- - `userAgent` (optional): Custom user agent
187
- - `searchEngine` (optional): Default search engine
188
- - `labelIds` (optional): Label IDs to assign
189
- - `proxyInfo` (optional): Full proxy configuration
190
- - `fingerInfo` (optional): Complete fingerprint configuration
191
- - `windowPlatformList` (optional): Platform account information
192
-
193
- **Example:**
194
- ```
195
- AI: "Create an advanced browser with custom fingerprint settings and multiple platform accounts"
196
- ```
197
-
198
- ##### 8. `roxy_create_browser_from_template` ⭐
199
- Create browsers using predefined templates - ideal for batch creation.
200
-
201
- **Parameters:**
202
- - `workspaceId` (required): Workspace ID
203
- - `templateName` (required): gmail, facebook, ecommerce, social_media, general, or custom
204
- - `count` (optional): Number of browsers to create (default: 1, max: 50)
205
- - `namePrefix` (optional): Prefix for browser names
206
- - `projectId` (optional): Project ID
207
- - `proxyList` (optional): List of proxy configurations
208
- - `customConfig` (optional): Override template defaults
209
-
210
- **Example:**
211
- ```
212
- AI: "Create 10 Gmail browsers with different proxies using the gmail template"
213
- ```
214
-
215
- ##### 9. `roxy_list_browser_templates`
216
- List available browser templates with descriptions.
217
-
218
- **Example:**
219
- ```
220
- AI: "What browser templates are available?"
221
- ```
222
-
223
- #### Proxy Management Tools 🆕
224
-
225
- ##### 10. `roxy_validate_proxy_config`
226
- Validate proxy configuration before using it.
227
-
228
- **Parameters:**
229
- - `proxyInfo` (required): Proxy configuration to validate
230
-
231
- **Example:**
232
- ```
233
- AI: "Validate this proxy configuration before creating browsers"
234
- ```
81
+ ### Utilities
82
+ - `roxy_validate_proxy_config` - Validate proxy configuration
83
+ - `roxy_system_diagnostics` - System health check and diagnostics
235
84
 
236
85
  ## Complete Workflow Examples
237
86
 
238
- ### Example 1: Quick Gmail Automation Setup
87
+ ### Example 1: Quick Browser Automation Setup
239
88
 
240
89
  ```
241
- 1. AI: "Create 5 Gmail browsers using the gmail template in workspace 1"
242
- → Uses roxy_create_browser_from_template
243
- → Returns browser IDs ready for use
90
+ 1. AI: "Create a simple browser in workspace 1 with name 'Test Browser'"
91
+ → Uses roxy_create_browser_simple
92
+ → Returns browser ID ready for use
244
93
 
245
- 2. AI: "Open all the Gmail browsers I just created"
246
- → Uses roxy_open_browsers with the returned IDs
247
- → Returns CDP WebSocket URLs like: ws://127.0.0.1:52314/devtools/browser/xxx
94
+ 2. AI: "Open the browser I just created"
95
+ → Uses roxy_open_browsers with the returned ID
96
+ → Returns CDP WebSocket URL like: ws://127.0.0.1:52314/devtools/browser/xxx
248
97
 
249
- 3. AI: "Connect to the first browser and automate Gmail"
250
- → Uses playwright-mcp with --cdp-endpoint flag
251
- npx @playwright/mcp@latest --cdp-endpoint "ws://127.0.0.1:52314/devtools/browser/xxx"
98
+ 3. AI: "Navigate to gmail.com, login, and send emails"
99
+ → Uses PlayRoxy MCP tools automatically (browser_navigate, browser_type, browser_click, etc.)
100
+ PlayRoxy MCP connects to the opened browser via CDP endpoint
252
101
 
253
- 4. AI: "Navigate to gmail.com, login, and send emails"
254
- → Uses playwright-mcp tools: browser_navigate, browser_type, browser_click, etc.
255
-
256
- 5. AI: "Close all browsers when done"
102
+ 4. AI: "Close the browser when done"
257
103
  → Uses roxy_close_browsers
258
104
  ```
259
105
 
260
- ### Example 2: E-commerce with Proxy Setup
106
+ ### Example 2: Advanced Browser with Proxy Setup
261
107
 
262
108
  ```
263
109
  1. AI: "Validate my proxy configuration before creating browsers"
264
110
  → Uses roxy_validate_proxy_config
265
111
  → Confirms proxy settings are correct
266
112
 
267
- 2. AI: "Create a standard e-commerce browser with SOCKS5 proxy in workspace 2"
113
+ 2. AI: "Create a standard browser with SOCKS5 proxy and 1920x1080 resolution in workspace 2"
268
114
  → Uses roxy_create_browser_standard with proxy configuration
269
115
  → Returns configured browser ID
270
116
 
271
- 3. AI: "Open the e-commerce browser and start automation"
272
- → Uses roxy_open_browsers → playwright-mcp integration
273
- Begin automated shopping tasks
274
- ```
275
-
276
- ### Example 3: Batch Social Media Management
277
-
117
+ 3. AI: "Open the browser and start automation"
118
+ → Uses roxy_open_browsers → gets CDP endpoint
119
+ PlayRoxy MCP automatically connects and begins automation tasks
278
120
  ```
279
- 1. AI: "List available browser templates"
280
- → Uses roxy_list_browser_templates
281
- → Shows social_media, facebook, etc.
282
121
 
283
- 2. AI: "Create 20 social media browsers with different proxies"
284
- → Uses roxy_create_browser_from_template with proxy list
285
- → Batch creates browsers with distributed proxies
122
+ ## Integration with Playwright MCP
286
123
 
287
- 3. AI: "Open first 5 browsers for Instagram automation"
288
- → Uses roxy_open_browsers with selected IDs
289
- → Ready for social media automation
290
- ```
124
+ RoxyBrowser MCP is designed to work seamlessly with [PlayRoxy MCP](https://github.com/roxybrowserlabs/playroxy-mcp), our customized Playwright MCP server built specifically for RoxyBrowser compatibility.
291
125
 
292
- ## Integration with Playwright MCP
126
+ **PlayRoxy MCP** is based on [Microsoft's Playwright MCP](https://github.com/microsoft/playwright-mcp) with enhancements for RoxyBrowser's fingerprint browser features.
293
127
 
294
- RoxyBrowser MCP is designed to work seamlessly with [@playwright/mcp](https://github.com/microsoft/playwright-mcp):
128
+ ### Workflow
295
129
 
296
- ```bash
297
- # 1. Use RoxyBrowser MCP to open browsers and get WebSocket URLs
298
- # 2. Start playwright-mcp with the WebSocket endpoint:
130
+ 1. Use RoxyBrowser OpenAPI MCP to create and open browsers
131
+ 2. Get CDP WebSocket endpoints from opened browsers
132
+ 3. Use PlayRoxy MCP to automate browser tasks with full Playwright capabilities
299
133
 
300
- npx @playwright/mcp@latest --cdp-endpoint "ws://127.0.0.1:52314/devtools/browser/xxx"
301
- ```
134
+ Both servers work together seamlessly when configured in your MCP client (see configuration above).
302
135
 
303
136
  ## Development
304
137
 
@@ -308,11 +141,35 @@ npm run dev
308
141
 
309
142
  # Build for production
310
143
  npm run build
311
-
312
- # Clean build artifacts
313
- npm run clean
314
144
  ```
315
145
 
146
+ ## API Reference
147
+
148
+ ### Environment Variables
149
+
150
+ | Variable | Required | Default | Description |
151
+ |----------|----------|---------|-------------|
152
+ | `ROXY_API_KEY` | ✅ Yes | - | API key from RoxyBrowser settings |
153
+ | `ROXY_API_HOST` | ✅ Yes | `http://127.0.0.1:50000` | RoxyBrowser API endpoint |
154
+ | `ROXY_TIMEOUT` | No | `30000` | Request timeout in milliseconds |
155
+
156
+ ### Error Codes
157
+
158
+ | Code | Name | Description |
159
+ |------|------|-------------|
160
+ | **0** | SUCCESS | Operation completed successfully |
161
+ | **101** | INSUFFICIENT_QUOTA | Insufficient profiles quota |
162
+ | **400** | INVALID_PARAMS | Invalid parameters provided |
163
+ | **401** | UNAUTHORIZED | Authentication failed - invalid API key |
164
+ | **403** | FORBIDDEN | Access denied - insufficient permissions |
165
+ | **404** | NOT_FOUND | Resource not found |
166
+ | **408** | TIMEOUT | Request timeout |
167
+ | **409** | CONFLICT | Resource conflict or insufficient quota |
168
+ | **500** | SERVER_ERROR | Internal server error |
169
+ | **502** | BAD_GATEWAY | Bad gateway - proxy or network issue |
170
+ | **503** | SERVICE_UNAVAILABLE | Service temporarily unavailable |
171
+ | **504** | GATEWAY_TIMEOUT | Gateway timeout |
172
+
316
173
  ## Troubleshooting
317
174
 
318
175
  ### Connection Issues
@@ -321,10 +178,10 @@ npm run clean
321
178
 
322
179
  Check:
323
180
  1. RoxyBrowser is running
324
- 2. API is enabled: RoxyBrowser → API → API配置 启用状态 = 启用
325
- 3. Correct API key: Copy from RoxyBrowser → API → API配置 → API Key
326
- 4. Correct port: Check RoxyBrowser → API → API配置 端口 (default: 50000)
327
- 5. No firewall blocking localhost:50000
181
+ 2. API is enabled: RoxyBrowser → API → API Status = Enable
182
+ 3. Correct API key: Copy from RoxyBrowser → API → API Key
183
+ 4. Correct port: Check RoxyBrowser → API → Port Settings (default: 50000)
184
+ 5. No firewall blocking http://127.0.0.1:50000
328
185
 
329
186
  ### Authentication Issues
330
187
 
@@ -337,29 +194,20 @@ export ROXY_API_KEY="your_actual_api_key_from_roxybrowser"
337
194
 
338
195
  ### Browser Opening Issues
339
196
 
197
+ **Error: "Insufficient profiles quota" (Code 101 or 409)**
198
+
199
+ Solutions:
200
+ - Purchase more profiles in RoxyBrowser Billing Center
201
+ - **Delete** unused browser profiles using `roxy_delete_browsers` (closing alone does NOT free quota)
202
+ - Upgrade your subscription plan
203
+ - Check current quota usage in workspace settings
204
+
340
205
  **Some browsers fail to open:**
341
206
 
342
207
  - Check that the browser profiles exist and are not corrupted
343
208
  - Ensure sufficient system resources (RAM, CPU)
344
209
  - Verify the dirIds are valid (use `roxy_list_browsers` first)
345
-
346
- ## API Reference
347
-
348
- ### Environment Variables
349
-
350
- | Variable | Required | Default | Description |
351
- |----------|----------|---------|-------------|
352
- | `ROXY_API_KEY` | ✅ Yes | - | API key from RoxyBrowser settings |
353
- | `ROXY_API_HOST` | No | `http://127.0.0.1:50000` | RoxyBrowser API endpoint |
354
- | `ROXY_TIMEOUT` | No | `30000` | Request timeout in milliseconds |
355
-
356
- ### Error Codes
357
-
358
- | Code | Meaning | Action |
359
- |------|---------|---------|
360
- | 0 | Success | - |
361
- | 408 | Timeout | Check network connection |
362
- | 500 | Server Error | Check RoxyBrowser logs |
210
+ - Run `roxy_system_diagnostics` for comprehensive health check
363
211
 
364
212
  ## License
365
213
 
@@ -371,4 +219,4 @@ MIT License - see LICENSE file for details.
371
219
  2. Create a feature branch
372
220
  3. Make your changes
373
221
  4. Add tests if applicable
374
- 5. Submit a pull request
222
+ 5. Submit a pull request
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Handles browser creation with different complexity levels and configuration building
5
5
  */
6
- import { BrowserCreateConfig, BrowserCreateSimpleParams, BrowserCreateStandardParams, BrowserCreateAdvancedParams, BrowserCreateTemplateParams, ProxyInfo } from '../types.js';
6
+ import { BrowserCreateConfig, BrowserCreateSimpleParams, BrowserCreateStandardParams, BrowserCreateAdvancedParams, ProxyInfo } from '../types.js';
7
7
  export declare class BrowserCreator {
8
8
  /**
9
9
  * Convert simple parameters to full browser configuration
@@ -40,10 +40,6 @@ export declare class BrowserCreator {
40
40
  * Apply smart defaults to configuration
41
41
  */
42
42
  static applyDefaults(config: BrowserCreateConfig): BrowserCreateConfig;
43
- /**
44
- * Create multiple browser configuration objects from template parameters
45
- */
46
- static buildConfigsFromTemplate(params: BrowserCreateTemplateParams, templateConfig: Partial<BrowserCreateConfig>): BrowserCreateConfig[];
47
43
  /**
48
44
  * Batch validate multiple configurations
49
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"browser-creator.d.ts","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAG3B,SAAS,EAMV,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,GAAG,mBAAmB;IA2BhF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB;IAsCpF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB;IAIpF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAanE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,SAAS,EAAE,SAAS,EAAE,GACrB,mBAAmB,EAAE;IAWxB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA+BxF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqBjC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB;IAkFtE;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAC7B,MAAM,EAAE,2BAA2B,EACnC,cAAc,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAC3C,mBAAmB,EAAE;IA0BxB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG;QACtD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpD;CAeF"}
1
+ {"version":3,"file":"browser-creator.d.ts","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAG3B,SAAS,EAOV,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,GAAG,mBAAmB;IA2BhF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB;IAsCpF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB;IAIpF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAanE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,SAAS,EAAE,SAAS,EAAE,GACrB,mBAAmB,EAAE;IAWxB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA+BxF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqBjC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB;IAkFtE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG;QACtD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpD;CAeF"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Handles browser creation with different complexity levels and configuration building
5
5
  */
6
+ import { LATEST_CORE_VERSION, } from '../types.js';
6
7
  export class BrowserCreator {
7
8
  /**
8
9
  * Convert simple parameters to full browser configuration
@@ -171,7 +172,7 @@ export class BrowserCreator {
171
172
  const defaultConfig = {
172
173
  os: 'Windows',
173
174
  osVersion: '11',
174
- coreVersion: '125',
175
+ coreVersion: LATEST_CORE_VERSION,
175
176
  searchEngine: 'Google',
176
177
  // Default fingerprint settings
177
178
  fingerInfo: {
@@ -242,30 +243,6 @@ export class BrowserCreator {
242
243
  }
243
244
  return result;
244
245
  }
245
- /**
246
- * Create multiple browser configuration objects from template parameters
247
- */
248
- static buildConfigsFromTemplate(params, templateConfig) {
249
- const count = params.count || 1;
250
- const configs = [];
251
- for (let i = 0; i < count; i++) {
252
- const baseConfig = {
253
- workspaceId: params.workspaceId,
254
- projectId: params.projectId,
255
- windowName: this.generateBrowserName(params.namePrefix, i),
256
- ...templateConfig,
257
- ...params.customConfig,
258
- };
259
- // Apply defaults and validate
260
- const config = this.applyDefaults(baseConfig);
261
- configs.push(config);
262
- }
263
- // Assign proxies if provided
264
- if (params.proxyList && params.proxyList.length > 0) {
265
- return this.assignProxiesToConfigs(configs, params.proxyList);
266
- }
267
- return configs;
268
- }
269
246
  /**
270
247
  * Batch validate multiple configurations
271
248
  */
@@ -1 +1 @@
1
- {"version":3,"file":"browser-creator.js","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-creator.js","sourceRoot":"","sources":["../../src/browser/browser-creator.ts"],"names":[],"mappings":"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"}