agent-browser-stealth 0.16.3-fork.3 → 0.16.3-fork.4

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
@@ -63,6 +63,10 @@ agent-browser --parallel worker-b open https://example.org
63
63
 
64
64
  `--parallel` is designed for stateless throughput tasks (navigation, extraction, checks). For authenticated flows, keep using one stable `--session-name`.
65
65
 
66
+ Default session isolation policy:
67
+ - Running a default-session command reaps all non-default daemon sessions (`parallel-*` and legacy named channels).
68
+ - This avoids stale daemon reuse and keeps stealth behavior consistent on the primary channel.
69
+
66
70
  | Option | Purpose | Typical Usage |
67
71
  | --- | --- | --- |
68
72
  | `--parallel <name>` | Isolate runtime channel for concurrent AI tasks | Stateless/no-login parallel jobs |
@@ -261,6 +265,7 @@ flowchart TD
261
265
  - Prefer `--headed` for high-friction targets.
262
266
  - Reuse session state with one stable `--session-name` for continuity (when omitted, it defaults to `default`).
263
267
  - Use `--parallel <name>` only for stateless parallel workloads where higher throughput matters.
268
+ - Default-session commands will reap all non-default daemon sessions, so keep parallel workers short-lived.
264
269
  - Use `--resident` only for deliberate long-running workflows, and close when done.
265
270
  - Keep locale/timezone consistent with target market.
266
271
  - For challenge-heavy pages, prefer `--wait-until domcontentloaded` on `open`/`navigate` to avoid `load` stalls.
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/daemon.d.ts CHANGED
@@ -5,6 +5,11 @@ import * as net from 'net';
5
5
  * waits for the 'drain' event before resolving.
6
6
  */
7
7
  export declare function safeWrite(socket: net.Socket, payload: string): Promise<void>;
8
+ /**
9
+ * Create an async executor that runs tasks strictly one-by-one.
10
+ * Used to serialize daemon commands across all client connections.
11
+ */
12
+ export declare function createSerializedExecutor(): <T>(task: () => Promise<T>) => Promise<T>;
8
13
  /**
9
14
  * Set the current session
10
15
  */
@@ -31,6 +36,10 @@ export declare function getPortFile(session?: string): string;
31
36
  * Get the PID file path for the current session
32
37
  */
33
38
  export declare function getPidFile(session?: string): string;
39
+ /**
40
+ * Get the daemon metadata file path for a session.
41
+ */
42
+ export declare function getMetaFile(session?: string): string;
34
43
  /**
35
44
  * Check if daemon is running for the current session
36
45
  */
@@ -62,5 +71,6 @@ export declare function getStreamPortFile(session?: string): string;
62
71
  export declare function startDaemon(options?: {
63
72
  streamPort?: number;
64
73
  provider?: string;
74
+ resident?: boolean;
65
75
  }): Promise<void>;
66
76
  //# sourceMappingURL=daemon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAuB3B;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC5E;AA2GD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAgBD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAmBzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAgBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoehB"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAuB3B;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC5E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAWpF;AA6GD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAgBD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAmBzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmiBhB"}
package/dist/daemon.js CHANGED
@@ -51,6 +51,18 @@ export function safeWrite(socket, payload) {
51
51
  }
52
52
  });
53
53
  }
54
+ /**
55
+ * Create an async executor that runs tasks strictly one-by-one.
56
+ * Used to serialize daemon commands across all client connections.
57
+ */
58
+ export function createSerializedExecutor() {
59
+ let tail = Promise.resolve();
60
+ return async function runSerialized(task) {
61
+ const run = tail.then(task, task);
62
+ tail = run.then(() => undefined, () => undefined);
63
+ return run;
64
+ };
65
+ }
54
66
  // Platform detection
55
67
  const isWindows = process.platform === 'win32';
56
68
  // Session support - each session gets its own socket/pid
@@ -59,6 +71,8 @@ let currentSession = process.env.AGENT_BROWSER_SESSION || 'default';
59
71
  let streamServer = null;
60
72
  // Default stream port (can be overridden with AGENT_BROWSER_STREAM_PORT)
61
73
  const DEFAULT_STREAM_PORT = 9223;
74
+ // Default idle auto-shutdown timeout: 10 minutes
75
+ const DEFAULT_IDLE_SHUTDOWN_MS = 10 * 60 * 1000;
62
76
  /**
63
77
  * Save state to file with optional encryption.
64
78
  */
@@ -212,6 +226,13 @@ export function getPidFile(session) {
212
226
  const sess = session ?? currentSession;
213
227
  return path.join(getSocketDir(), `${sess}.pid`);
214
228
  }
229
+ /**
230
+ * Get the daemon metadata file path for a session.
231
+ */
232
+ export function getMetaFile(session) {
233
+ const sess = session ?? currentSession;
234
+ return path.join(getSocketDir(), `${sess}.meta.json`);
235
+ }
215
236
  /**
216
237
  * Check if daemon is running for the current session
217
238
  */
@@ -253,11 +274,14 @@ export function getConnectionInfo(session) {
253
274
  export function cleanupSocket(session) {
254
275
  const pidFile = getPidFile(session);
255
276
  const streamPortFile = getStreamPortFile(session);
277
+ const metaFile = getMetaFile(session);
256
278
  try {
257
279
  if (fs.existsSync(pidFile))
258
280
  fs.unlinkSync(pidFile);
259
281
  if (fs.existsSync(streamPortFile))
260
282
  fs.unlinkSync(streamPortFile);
283
+ if (fs.existsSync(metaFile))
284
+ fs.unlinkSync(metaFile);
261
285
  if (isWindows) {
262
286
  const portFile = getPortFile(session);
263
287
  if (fs.existsSync(portFile))
@@ -301,6 +325,10 @@ export async function startDaemon(options) {
301
325
  // Create appropriate manager
302
326
  const manager = isIOS ? new IOSManager() : new BrowserManager();
303
327
  let shuttingDown = false;
328
+ const runSerialized = createSerializedExecutor();
329
+ const residentMode = options?.resident ?? process.argv.includes('--resident');
330
+ let idleTimer = null;
331
+ let pendingCommands = 0;
304
332
  // Start stream server if port is specified (or use default if env var is set)
305
333
  // Note: Stream server only works with BrowserManager (desktop), not iOS
306
334
  const streamPort = options?.streamPort ??
@@ -314,6 +342,20 @@ export async function startDaemon(options) {
314
342
  const streamPortFile = getStreamPortFile();
315
343
  fs.writeFileSync(streamPortFile, streamPort.toString());
316
344
  }
345
+ const cancelIdleTimer = () => {
346
+ if (idleTimer) {
347
+ clearTimeout(idleTimer);
348
+ idleTimer = null;
349
+ }
350
+ };
351
+ const scheduleIdleShutdown = () => {
352
+ if (residentMode || shuttingDown || pendingCommands > 0)
353
+ return;
354
+ cancelIdleTimer();
355
+ idleTimer = setTimeout(() => {
356
+ void shutdown('idle timeout');
357
+ }, DEFAULT_IDLE_SHUTDOWN_MS);
358
+ };
317
359
  const server = net.createServer((socket) => {
318
360
  let buffer = '';
319
361
  let httpChecked = false;
@@ -328,269 +370,281 @@ export async function startDaemon(options) {
328
370
  processing = true;
329
371
  while (commandQueue.length > 0) {
330
372
  const line = commandQueue.shift();
373
+ pendingCommands += 1;
374
+ cancelIdleTimer();
331
375
  try {
332
- const parseResult = parseCommand(line);
333
- if (!parseResult.success) {
334
- const resp = errorResponse(parseResult.id ?? 'unknown', parseResult.error);
335
- await safeWrite(socket, serializeResponse(resp) + '\n');
336
- continue;
337
- }
338
- // Handle device_list specially - it works without a session and always uses IOSManager
339
- if (parseResult.command.action === 'device_list') {
340
- const iosManager = new IOSManager();
376
+ await runSerialized(async () => {
341
377
  try {
342
- const devices = await iosManager.listAllDevices();
343
- const response = {
344
- id: parseResult.command.id,
345
- success: true,
346
- data: { devices },
347
- };
348
- await safeWrite(socket, serializeResponse(response) + '\n');
349
- }
350
- catch (err) {
351
- const message = err instanceof Error ? err.message : String(err);
352
- await safeWrite(socket, serializeResponse(errorResponse(parseResult.command.id, message)) + '\n');
353
- }
354
- continue;
355
- }
356
- // Auto-launch if not already launched and this isn't a launch/close/state_load command.
357
- // Default behavior for this fork: attach to an existing browser only.
358
- const isDoctor = parseResult.command.action === 'doctor';
359
- if (!manager.isLaunched() &&
360
- parseResult.command.action !== 'launch' &&
361
- parseResult.command.action !== 'close' &&
362
- parseResult.command.action !== 'state_load' &&
363
- parseResult.command.action !== 'doctor') {
364
- if (isIOS && manager instanceof IOSManager) {
365
- // Auto-launch iOS Safari
366
- // Check for device in command first (for reused daemons), then fall back to env vars
367
- const cmd = parseResult.command;
368
- const iosDevice = cmd.iosDevice || process.env.AGENT_BROWSER_IOS_DEVICE;
369
- await manager.launch({
370
- device: iosDevice,
371
- udid: process.env.AGENT_BROWSER_IOS_UDID,
372
- });
373
- }
374
- else if (manager instanceof BrowserManager) {
375
- // Auto-launch desktop browser
376
- const extensions = process.env.AGENT_BROWSER_EXTENSIONS
377
- ? process.env.AGENT_BROWSER_EXTENSIONS.split(/[,\n]/)
378
- .map((p) => p.trim())
379
- .filter(Boolean)
380
- : undefined;
381
- // Parse args from env (comma or newline separated)
382
- const argsEnv = process.env.AGENT_BROWSER_ARGS;
383
- const args = argsEnv
384
- ? argsEnv
385
- .split(/[,\n]/)
386
- .map((a) => a.trim())
387
- .filter((a) => a.length > 0)
388
- : undefined;
389
- // Parse proxy from env
390
- const proxyServer = process.env.AGENT_BROWSER_PROXY;
391
- const proxyBypass = process.env.AGENT_BROWSER_PROXY_BYPASS;
392
- const proxy = proxyServer
393
- ? {
394
- server: proxyServer,
395
- ...(proxyBypass && { bypass: proxyBypass }),
378
+ const parseResult = parseCommand(line);
379
+ if (!parseResult.success) {
380
+ const resp = errorResponse(parseResult.id ?? 'unknown', parseResult.error);
381
+ await safeWrite(socket, serializeResponse(resp) + '\n');
382
+ return;
383
+ }
384
+ // Handle device_list specially - it works without a session and always uses IOSManager
385
+ if (parseResult.command.action === 'device_list') {
386
+ const iosManager = new IOSManager();
387
+ try {
388
+ const devices = await iosManager.listAllDevices();
389
+ const response = {
390
+ id: parseResult.command.id,
391
+ success: true,
392
+ data: { devices },
393
+ };
394
+ await safeWrite(socket, serializeResponse(response) + '\n');
396
395
  }
397
- : undefined;
398
- const ignoreHTTPSErrors = process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1';
399
- const allowFileAccess = process.env.AGENT_BROWSER_ALLOW_FILE_ACCESS === '1';
400
- // Stealth is always enabled in agent-browser-stealth
401
- const colorSchemeEnv = process.env.AGENT_BROWSER_COLOR_SCHEME;
402
- const colorScheme = colorSchemeEnv === 'dark' ||
403
- colorSchemeEnv === 'light' ||
404
- colorSchemeEnv === 'no-preference'
405
- ? colorSchemeEnv
406
- : undefined;
407
- const tabGroup = process.env.AGENT_BROWSER_TAB_GROUP?.trim();
408
- const tabGroupPluginId = process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim();
409
- const launchOptions = {
410
- id: 'auto',
411
- action: 'launch',
412
- headless: process.env.AGENT_BROWSER_HEADED !== '1' &&
413
- process.env.AGENT_BROWSER_HEADED !== 'true',
414
- executablePath: process.env.AGENT_BROWSER_EXECUTABLE_PATH,
415
- extensions: extensions,
416
- storageState: process.env.AGENT_BROWSER_STATE,
417
- args,
418
- userAgent: process.env.AGENT_BROWSER_USER_AGENT,
419
- proxy,
420
- ignoreHTTPSErrors: ignoreHTTPSErrors,
421
- allowFileAccess: allowFileAccess,
422
- colorScheme,
423
- tabGroup: tabGroup && tabGroup.length > 0 ? tabGroup : undefined,
424
- tabGroupPluginId: tabGroupPluginId && tabGroupPluginId.length > 0 ? tabGroupPluginId : undefined,
425
- autoStateFilePath: getSessionAutoStatePath(),
426
- };
427
- let attachedToExistingBrowser = false;
428
- try {
429
- // Keep default CDP attempt minimal. Launch-only options like extensions
430
- // are incompatible with CDP and can cause false-negative attach failures.
431
- const cdpLaunchOptions = {
432
- id: launchOptions.id,
433
- action: launchOptions.action,
434
- cdpPort: 9333,
435
- ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
436
- colorScheme: launchOptions.colorScheme,
437
- userAgent: launchOptions.userAgent,
438
- tabGroup: launchOptions.tabGroup,
439
- tabGroupPluginId: launchOptions.tabGroupPluginId,
440
- };
441
- await manager.launch({
442
- ...cdpLaunchOptions,
443
- });
444
- attachedToExistingBrowser = true;
445
- if (process.env.AGENT_BROWSER_DEBUG === '1') {
446
- console.error('[DEBUG] Auto-launch connected via default CDP port 9333');
396
+ catch (err) {
397
+ const message = err instanceof Error ? err.message : String(err);
398
+ await safeWrite(socket, serializeResponse(errorResponse(parseResult.command.id, message)) + '\n');
447
399
  }
400
+ return;
448
401
  }
449
- catch (error) {
450
- if (process.env.AGENT_BROWSER_DEBUG === '1') {
451
- const message = error instanceof Error ? error.message : String(error);
452
- console.error(`[DEBUG] Default CDP port 9333 unavailable, trying auto-connect discovery: ${message}`);
402
+ // Auto-launch if not already launched and this isn't a launch/close/state_load command.
403
+ // Default behavior for this fork: attach to an existing browser only.
404
+ const isDoctor = parseResult.command.action === 'doctor';
405
+ if (!manager.isLaunched() &&
406
+ parseResult.command.action !== 'launch' &&
407
+ parseResult.command.action !== 'close' &&
408
+ parseResult.command.action !== 'state_load' &&
409
+ parseResult.command.action !== 'doctor') {
410
+ if (isIOS && manager instanceof IOSManager) {
411
+ // Auto-launch iOS Safari
412
+ // Check for device in command first (for reused daemons), then fall back to env vars
413
+ const cmd = parseResult.command;
414
+ const iosDevice = cmd.iosDevice || process.env.AGENT_BROWSER_IOS_DEVICE;
415
+ await manager.launch({
416
+ device: iosDevice,
417
+ udid: process.env.AGENT_BROWSER_IOS_UDID,
418
+ });
419
+ }
420
+ else if (manager instanceof BrowserManager) {
421
+ // Auto-launch desktop browser
422
+ const extensions = process.env.AGENT_BROWSER_EXTENSIONS
423
+ ? process.env.AGENT_BROWSER_EXTENSIONS.split(/[,\n]/)
424
+ .map((p) => p.trim())
425
+ .filter(Boolean)
426
+ : undefined;
427
+ // Parse args from env (comma or newline separated)
428
+ const argsEnv = process.env.AGENT_BROWSER_ARGS;
429
+ const args = argsEnv
430
+ ? argsEnv
431
+ .split(/[,\n]/)
432
+ .map((a) => a.trim())
433
+ .filter((a) => a.length > 0)
434
+ : undefined;
435
+ // Parse proxy from env
436
+ const proxyServer = process.env.AGENT_BROWSER_PROXY;
437
+ const proxyBypass = process.env.AGENT_BROWSER_PROXY_BYPASS;
438
+ const proxy = proxyServer
439
+ ? {
440
+ server: proxyServer,
441
+ ...(proxyBypass && { bypass: proxyBypass }),
442
+ }
443
+ : undefined;
444
+ const ignoreHTTPSErrors = process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1';
445
+ const allowFileAccess = process.env.AGENT_BROWSER_ALLOW_FILE_ACCESS === '1';
446
+ // Stealth is always enabled in agent-browser-stealth
447
+ const colorSchemeEnv = process.env.AGENT_BROWSER_COLOR_SCHEME;
448
+ const colorScheme = colorSchemeEnv === 'dark' ||
449
+ colorSchemeEnv === 'light' ||
450
+ colorSchemeEnv === 'no-preference'
451
+ ? colorSchemeEnv
452
+ : undefined;
453
+ const tabGroup = process.env.AGENT_BROWSER_TAB_GROUP?.trim();
454
+ const tabGroupPluginId = process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim();
455
+ const launchOptions = {
456
+ id: 'auto',
457
+ action: 'launch',
458
+ headless: process.env.AGENT_BROWSER_HEADED !== '1' &&
459
+ process.env.AGENT_BROWSER_HEADED !== 'true',
460
+ executablePath: process.env.AGENT_BROWSER_EXECUTABLE_PATH,
461
+ extensions: extensions,
462
+ storageState: process.env.AGENT_BROWSER_STATE,
463
+ args,
464
+ userAgent: process.env.AGENT_BROWSER_USER_AGENT,
465
+ proxy,
466
+ ignoreHTTPSErrors: ignoreHTTPSErrors,
467
+ allowFileAccess: allowFileAccess,
468
+ colorScheme,
469
+ tabGroup: tabGroup && tabGroup.length > 0 ? tabGroup : undefined,
470
+ tabGroupPluginId: tabGroupPluginId && tabGroupPluginId.length > 0
471
+ ? tabGroupPluginId
472
+ : undefined,
473
+ autoStateFilePath: getSessionAutoStatePath(),
474
+ };
475
+ let attachedToExistingBrowser = false;
476
+ try {
477
+ // Keep default CDP attempt minimal. Launch-only options like extensions
478
+ // are incompatible with CDP and can cause false-negative attach failures.
479
+ const cdpLaunchOptions = {
480
+ id: launchOptions.id,
481
+ action: launchOptions.action,
482
+ cdpPort: 9333,
483
+ ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
484
+ colorScheme: launchOptions.colorScheme,
485
+ userAgent: launchOptions.userAgent,
486
+ tabGroup: launchOptions.tabGroup,
487
+ tabGroupPluginId: launchOptions.tabGroupPluginId,
488
+ };
489
+ await manager.launch({
490
+ ...cdpLaunchOptions,
491
+ });
492
+ attachedToExistingBrowser = true;
493
+ if (process.env.AGENT_BROWSER_DEBUG === '1') {
494
+ console.error('[DEBUG] Auto-launch connected via default CDP port 9333');
495
+ }
496
+ }
497
+ catch (error) {
498
+ if (process.env.AGENT_BROWSER_DEBUG === '1') {
499
+ const message = error instanceof Error ? error.message : String(error);
500
+ console.error(`[DEBUG] Default CDP port 9333 unavailable, trying auto-connect discovery: ${message}`);
501
+ }
502
+ }
503
+ if (!attachedToExistingBrowser) {
504
+ try {
505
+ await manager.launch({
506
+ id: launchOptions.id,
507
+ action: launchOptions.action,
508
+ autoConnect: true,
509
+ ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
510
+ colorScheme: launchOptions.colorScheme,
511
+ userAgent: launchOptions.userAgent,
512
+ tabGroup: launchOptions.tabGroup,
513
+ tabGroupPluginId: launchOptions.tabGroupPluginId,
514
+ });
515
+ attachedToExistingBrowser = true;
516
+ if (process.env.AGENT_BROWSER_DEBUG === '1') {
517
+ console.error('[DEBUG] Auto-launch connected via auto-connect discovery');
518
+ }
519
+ }
520
+ catch (error) {
521
+ if (process.env.AGENT_BROWSER_DEBUG === '1') {
522
+ const message = error instanceof Error ? error.message : String(error);
523
+ console.error(`[DEBUG] Auto-connect discovery failed: ${message}`);
524
+ }
525
+ }
526
+ }
527
+ if (!attachedToExistingBrowser) {
528
+ throw new Error('Project policy requires using your existing browser. Could not connect to CDP at localhost:9333 and auto-discovery also failed.');
529
+ }
453
530
  }
454
531
  }
455
- if (!attachedToExistingBrowser) {
532
+ // For doctor, attempt the same default attach flow but do not fail hard if attach is unavailable.
533
+ // This keeps diagnostics actionable even when CDP is down.
534
+ if (!manager.isLaunched() && isDoctor && manager instanceof BrowserManager) {
456
535
  try {
457
536
  await manager.launch({
458
- id: launchOptions.id,
459
- action: launchOptions.action,
460
- autoConnect: true,
461
- ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
462
- colorScheme: launchOptions.colorScheme,
463
- userAgent: launchOptions.userAgent,
464
- tabGroup: launchOptions.tabGroup,
465
- tabGroupPluginId: launchOptions.tabGroupPluginId,
537
+ id: 'doctor-cdp',
538
+ action: 'launch',
539
+ cdpPort: 9333,
540
+ ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
541
+ userAgent: process.env.AGENT_BROWSER_USER_AGENT,
542
+ colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
543
+ process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
544
+ process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
545
+ ? process.env.AGENT_BROWSER_COLOR_SCHEME
546
+ : undefined,
547
+ tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
548
+ tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
466
549
  });
467
- attachedToExistingBrowser = true;
468
- if (process.env.AGENT_BROWSER_DEBUG === '1') {
469
- console.error('[DEBUG] Auto-launch connected via auto-connect discovery');
470
- }
471
550
  }
472
- catch (error) {
473
- if (process.env.AGENT_BROWSER_DEBUG === '1') {
474
- const message = error instanceof Error ? error.message : String(error);
475
- console.error(`[DEBUG] Auto-connect discovery failed: ${message}`);
551
+ catch {
552
+ try {
553
+ await manager.launch({
554
+ id: 'doctor-auto-connect',
555
+ action: 'launch',
556
+ autoConnect: true,
557
+ ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
558
+ userAgent: process.env.AGENT_BROWSER_USER_AGENT,
559
+ colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
560
+ process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
561
+ process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
562
+ ? process.env.AGENT_BROWSER_COLOR_SCHEME
563
+ : undefined,
564
+ tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
565
+ tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
566
+ });
567
+ }
568
+ catch {
569
+ // Keep running: doctor should report failures instead of exiting early.
476
570
  }
477
571
  }
478
572
  }
479
- if (!attachedToExistingBrowser) {
480
- throw new Error('Project policy requires using your existing browser. Could not connect to CDP at localhost:9333 and auto-discovery also failed.');
573
+ // Recover from stale state: browser is launched but all pages were closed
574
+ if (manager instanceof BrowserManager &&
575
+ manager.isLaunched() &&
576
+ !manager.hasPages() &&
577
+ parseResult.command.action !== 'launch' &&
578
+ parseResult.command.action !== 'close') {
579
+ await manager.ensurePage();
481
580
  }
482
- }
483
- }
484
- // For doctor, attempt the same default attach flow but do not fail hard if attach is unavailable.
485
- // This keeps diagnostics actionable even when CDP is down.
486
- if (!manager.isLaunched() && isDoctor && manager instanceof BrowserManager) {
487
- try {
488
- await manager.launch({
489
- id: 'doctor-cdp',
490
- action: 'launch',
491
- cdpPort: 9333,
492
- ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
493
- userAgent: process.env.AGENT_BROWSER_USER_AGENT,
494
- colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
495
- process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
496
- process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
497
- ? process.env.AGENT_BROWSER_COLOR_SCHEME
498
- : undefined,
499
- tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
500
- tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
501
- });
502
- }
503
- catch {
504
- try {
505
- await manager.launch({
506
- id: 'doctor-auto-connect',
507
- action: 'launch',
508
- autoConnect: true,
509
- ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
510
- userAgent: process.env.AGENT_BROWSER_USER_AGENT,
511
- colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
512
- process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
513
- process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
514
- ? process.env.AGENT_BROWSER_COLOR_SCHEME
515
- : undefined,
516
- tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
517
- tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
518
- });
519
- }
520
- catch {
521
- // Keep running: doctor should report failures instead of exiting early.
581
+ // Handle explicit launch with auto-load state
582
+ if (parseResult.command.action === 'launch' &&
583
+ manager instanceof BrowserManager &&
584
+ !parseResult.command.autoStateFilePath) {
585
+ const autoStatePath = getSessionAutoStatePath();
586
+ if (autoStatePath) {
587
+ parseResult.command.autoStateFilePath = autoStatePath;
588
+ }
522
589
  }
523
- }
524
- }
525
- // Recover from stale state: browser is launched but all pages were closed
526
- if (manager instanceof BrowserManager &&
527
- manager.isLaunched() &&
528
- !manager.hasPages() &&
529
- parseResult.command.action !== 'launch' &&
530
- parseResult.command.action !== 'close') {
531
- await manager.ensurePage();
532
- }
533
- // Handle explicit launch with auto-load state
534
- if (parseResult.command.action === 'launch' &&
535
- manager instanceof BrowserManager &&
536
- !parseResult.command.autoStateFilePath) {
537
- const autoStatePath = getSessionAutoStatePath();
538
- if (autoStatePath) {
539
- parseResult.command.autoStateFilePath = autoStatePath;
540
- }
541
- }
542
- // Handle close command specially - shuts down daemon
543
- if (parseResult.command.action === 'close') {
544
- // Auto-save state before closing
545
- if (manager instanceof BrowserManager && manager.isLaunched()) {
546
- const savePath = getSessionSaveStatePath();
547
- if (savePath) {
548
- try {
549
- const { encrypted } = await saveStateToFile(manager, savePath);
550
- fs.chmodSync(savePath, 0o600);
551
- if (process.env.AGENT_BROWSER_DEBUG === '1') {
552
- console.error(`Auto-saved session state: ${savePath}${encrypted ? ' (encrypted)' : ''}`);
590
+ // Handle close command specially - shuts down daemon
591
+ if (parseResult.command.action === 'close') {
592
+ // Auto-save state before closing
593
+ if (manager instanceof BrowserManager && manager.isLaunched()) {
594
+ const savePath = getSessionSaveStatePath();
595
+ if (savePath) {
596
+ try {
597
+ const { encrypted } = await saveStateToFile(manager, savePath);
598
+ fs.chmodSync(savePath, 0o600);
599
+ if (process.env.AGENT_BROWSER_DEBUG === '1') {
600
+ console.error(`Auto-saved session state: ${savePath}${encrypted ? ' (encrypted)' : ''}`);
601
+ }
602
+ }
603
+ catch (err) {
604
+ if (process.env.AGENT_BROWSER_DEBUG === '1') {
605
+ console.error(`Failed to auto-save session state:`, err);
606
+ }
607
+ }
553
608
  }
554
609
  }
555
- catch (err) {
556
- if (process.env.AGENT_BROWSER_DEBUG === '1') {
557
- console.error(`Failed to auto-save session state:`, err);
558
- }
610
+ const response = isIOS && manager instanceof IOSManager
611
+ ? await executeIOSCommand(parseResult.command, manager)
612
+ : await executeCommand(parseResult.command, manager);
613
+ await safeWrite(socket, serializeResponse(response) + '\n');
614
+ if (!shuttingDown) {
615
+ shuttingDown = true;
616
+ setTimeout(() => {
617
+ server.close();
618
+ cleanupSocket();
619
+ process.exit(0);
620
+ }, 100);
559
621
  }
622
+ commandQueue.length = 0;
623
+ processing = false;
624
+ return;
560
625
  }
626
+ // Execute command with appropriate handler
627
+ const response = isIOS && manager instanceof IOSManager
628
+ ? await executeIOSCommand(parseResult.command, manager)
629
+ : await executeCommand(parseResult.command, manager);
630
+ // Add any launch warnings to the response
631
+ if (manager instanceof BrowserManager) {
632
+ const warnings = manager.getAndClearWarnings();
633
+ if (warnings.length > 0 && response.success && response.data) {
634
+ response.data.warnings = warnings;
635
+ }
636
+ }
637
+ await safeWrite(socket, serializeResponse(response) + '\n');
561
638
  }
562
- const response = isIOS && manager instanceof IOSManager
563
- ? await executeIOSCommand(parseResult.command, manager)
564
- : await executeCommand(parseResult.command, manager);
565
- await safeWrite(socket, serializeResponse(response) + '\n');
566
- if (!shuttingDown) {
567
- shuttingDown = true;
568
- setTimeout(() => {
569
- server.close();
570
- cleanupSocket();
571
- process.exit(0);
572
- }, 100);
573
- }
574
- commandQueue.length = 0;
575
- processing = false;
576
- return;
577
- }
578
- // Execute command with appropriate handler
579
- const response = isIOS && manager instanceof IOSManager
580
- ? await executeIOSCommand(parseResult.command, manager)
581
- : await executeCommand(parseResult.command, manager);
582
- // Add any launch warnings to the response
583
- if (manager instanceof BrowserManager) {
584
- const warnings = manager.getAndClearWarnings();
585
- if (warnings.length > 0 && response.success && response.data) {
586
- response.data.warnings = warnings;
639
+ catch (err) {
640
+ const message = err instanceof Error ? err.message : String(err);
641
+ await safeWrite(socket, serializeResponse(errorResponse('error', message)) + '\n').catch(() => { }); // Socket may already be destroyed
587
642
  }
588
- }
589
- await safeWrite(socket, serializeResponse(response) + '\n');
643
+ });
590
644
  }
591
- catch (err) {
592
- const message = err instanceof Error ? err.message : String(err);
593
- await safeWrite(socket, serializeResponse(errorResponse('error', message)) + '\n').catch(() => { }); // Socket may already be destroyed
645
+ finally {
646
+ pendingCommands = Math.max(0, pendingCommands - 1);
647
+ scheduleIdleShutdown();
594
648
  }
595
649
  }
596
650
  processing = false;
@@ -634,6 +688,29 @@ export async function startDaemon(options) {
634
688
  const pidFile = getPidFile();
635
689
  // Write PID file before listening
636
690
  fs.writeFileSync(pidFile, process.pid.toString());
691
+ try {
692
+ fs.chmodSync(pidFile, 0o600);
693
+ }
694
+ catch {
695
+ // Best-effort hardening; skip on platforms that don't support POSIX modes.
696
+ }
697
+ const metaFile = getMetaFile();
698
+ // Ownership/version proof consumed by the CLI before reusing default daemon.
699
+ const daemonMeta = {
700
+ session: currentSession,
701
+ pid: process.pid,
702
+ startedAt: Date.now(),
703
+ daemonPath: process.argv[1] ? path.resolve(process.argv[1]) : '',
704
+ cliVersion: process.env.AGENT_BROWSER_CLI_VERSION ?? '',
705
+ mode: residentMode ? 'resident' : 'idle',
706
+ };
707
+ fs.writeFileSync(metaFile, JSON.stringify(daemonMeta, null, 2));
708
+ try {
709
+ fs.chmodSync(metaFile, 0o600);
710
+ }
711
+ catch {
712
+ // Best-effort hardening; skip on platforms that don't support POSIX modes.
713
+ }
637
714
  if (isWindows) {
638
715
  // Windows: use TCP socket on localhost
639
716
  const port = getPortForSession(currentSession);
@@ -652,14 +729,16 @@ export async function startDaemon(options) {
652
729
  }
653
730
  server.on('error', (err) => {
654
731
  console.error('Server error:', err);
732
+ cancelIdleTimer();
655
733
  cleanupSocket();
656
734
  process.exit(1);
657
735
  });
658
736
  // Handle shutdown signals
659
- const shutdown = async () => {
737
+ const shutdown = async (_reason) => {
660
738
  if (shuttingDown)
661
739
  return;
662
740
  shuttingDown = true;
741
+ cancelIdleTimer();
663
742
  // Stop stream server if running
664
743
  if (streamServer) {
665
744
  await streamServer.stop();
@@ -685,24 +764,30 @@ export async function startDaemon(options) {
685
764
  // Handle unexpected errors - always cleanup
686
765
  process.on('uncaughtException', (err) => {
687
766
  console.error('Uncaught exception:', err);
767
+ cancelIdleTimer();
688
768
  cleanupSocket();
689
769
  process.exit(1);
690
770
  });
691
771
  process.on('unhandledRejection', (reason) => {
692
772
  console.error('Unhandled rejection:', reason);
773
+ cancelIdleTimer();
693
774
  cleanupSocket();
694
775
  process.exit(1);
695
776
  });
696
777
  // Cleanup on normal exit
697
778
  process.on('exit', () => {
779
+ cancelIdleTimer();
698
780
  cleanupSocket();
699
781
  });
782
+ scheduleIdleShutdown();
700
783
  // Keep process alive
701
784
  process.stdin.resume();
702
785
  }
703
786
  // Run daemon if this is the entry point
704
787
  if (process.argv[1]?.endsWith('daemon.js') || process.env.AGENT_BROWSER_DAEMON === '1') {
705
- startDaemon().catch((err) => {
788
+ startDaemon({
789
+ resident: process.argv.includes('--resident'),
790
+ }).catch((err) => {
706
791
  console.error('Daemon error:', err);
707
792
  cleanupSocket();
708
793
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-browser-stealth",
3
- "version": "0.16.3-fork.3",
3
+ "version": "0.16.3-fork.4",
4
4
  "description": "Stealth browser automation CLI for AI agents with anti-bot evasions",
5
5
  "type": "module",
6
6
  "main": "dist/daemon.js",
@@ -216,6 +216,7 @@ agent-browser --parallel site2 snapshot -i
216
216
  ```
217
217
 
218
218
  Use `--parallel <name>` for stateless throughput tasks (navigation, extraction, checks). For login/auth continuity, use `--session-name` instead.
219
+ Default-session commands intentionally reap all non-default daemon sessions (`parallel-*` and legacy named channels) to prevent stale daemon reuse.
219
220
 
220
221
  ### Connect to Existing Chrome
221
222
 
@@ -504,6 +505,7 @@ These behaviors are always active. For sensitive sites, combine with `--headed`
504
505
  ## Session Management and Cleanup
505
506
 
506
507
  `--session` is ignored in this fork. Runtime defaults to `default`; use `--parallel <name>` for isolated concurrent channels, and `--session-name` for persistence isolation.
508
+ When a default-session command runs, non-default daemon sessions are reaped automatically.
507
509
 
508
510
  Always close your browser session when done to avoid leaked processes:
509
511