agent-browser-stealth 0.14.0
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/LICENSE +201 -0
- package/README.md +1219 -0
- package/bin/agent-browser-darwin-arm64 +0 -0
- package/bin/agent-browser-local +0 -0
- package/bin/agent-browser.js +109 -0
- package/dist/actions.d.ts +17 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +1917 -0
- package/dist/actions.js.map +1 -0
- package/dist/browser.d.ts +598 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +2287 -0
- package/dist/browser.js.map +1 -0
- package/dist/daemon.d.ts +66 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +603 -0
- package/dist/daemon.js.map +1 -0
- package/dist/diff.d.ts +18 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +271 -0
- package/dist/diff.js.map +1 -0
- package/dist/encryption.d.ts +50 -0
- package/dist/encryption.d.ts.map +1 -0
- package/dist/encryption.js +85 -0
- package/dist/encryption.js.map +1 -0
- package/dist/ios-actions.d.ts +11 -0
- package/dist/ios-actions.d.ts.map +1 -0
- package/dist/ios-actions.js +228 -0
- package/dist/ios-actions.js.map +1 -0
- package/dist/ios-manager.d.ts +266 -0
- package/dist/ios-manager.d.ts.map +1 -0
- package/dist/ios-manager.js +1073 -0
- package/dist/ios-manager.js.map +1 -0
- package/dist/protocol.d.ts +26 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +935 -0
- package/dist/protocol.js.map +1 -0
- package/dist/snapshot.d.ts +67 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +514 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/state-utils.d.ts +77 -0
- package/dist/state-utils.d.ts.map +1 -0
- package/dist/state-utils.js +178 -0
- package/dist/state-utils.js.map +1 -0
- package/dist/stealth.d.ts +22 -0
- package/dist/stealth.d.ts.map +1 -0
- package/dist/stealth.js +614 -0
- package/dist/stealth.js.map +1 -0
- package/dist/stream-server.d.ts +117 -0
- package/dist/stream-server.d.ts.map +1 -0
- package/dist/stream-server.js +309 -0
- package/dist/stream-server.js.map +1 -0
- package/dist/types.d.ts +855 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +85 -0
- package/scripts/build-all-platforms.sh +68 -0
- package/scripts/check-creepjs-headless.js +137 -0
- package/scripts/check-sannysoft-webdriver.js +112 -0
- package/scripts/check-version-sync.js +39 -0
- package/scripts/copy-native.js +36 -0
- package/scripts/postinstall.js +275 -0
- package/scripts/sync-upstream.sh +142 -0
- package/scripts/sync-version.js +69 -0
- package/skills/agent-browser/SKILL.md +464 -0
- package/skills/agent-browser/references/authentication.md +202 -0
- package/skills/agent-browser/references/commands.md +263 -0
- package/skills/agent-browser/references/profiling.md +120 -0
- package/skills/agent-browser/references/proxy-support.md +194 -0
- package/skills/agent-browser/references/session-management.md +193 -0
- package/skills/agent-browser/references/snapshot-refs.md +194 -0
- package/skills/agent-browser/references/video-recording.md +173 -0
- package/skills/agent-browser/templates/authenticated-session.sh +100 -0
- package/skills/agent-browser/templates/capture-workflow.sh +69 -0
- package/skills/agent-browser/templates/form-automation.sh +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for session state management.
|
|
3
|
+
*/
|
|
4
|
+
import { getEncryptionKey, encryptData, decryptData, isEncryptedPayload, type EncryptedPayload, ENCRYPTION_KEY_ENV } from './encryption.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get the session persistence directory.
|
|
7
|
+
* Located at ~/.agent-browser/sessions/
|
|
8
|
+
*/
|
|
9
|
+
export declare function getSessionsDir(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Ensure the sessions directory exists with proper permissions.
|
|
12
|
+
* Creates directory with mode 0o700 (owner only).
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensureSessionsDir(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Validate a session name for safety (no path traversal).
|
|
17
|
+
* Only allows alphanumeric characters, dashes, and underscores.
|
|
18
|
+
* This validation is critical for security - the daemon reads session names
|
|
19
|
+
* from environment variables which can be set by attackers bypassing CLI validation.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isValidSessionName(name: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Get the auto-save state file path for a session.
|
|
24
|
+
* Pattern: {SESSION_NAME}-{SESSION_ID}.json
|
|
25
|
+
*
|
|
26
|
+
* @param sessionName - The session name (e.g., "twitter")
|
|
27
|
+
* @param sessionId - The session ID (e.g., "default" or "agent1")
|
|
28
|
+
* @returns Full path to the state file, or null if sessionName is empty
|
|
29
|
+
* @throws Error if sessionName or sessionId contains invalid characters (path traversal prevention)
|
|
30
|
+
*/
|
|
31
|
+
export declare function getAutoStateFilePath(sessionName: string, sessionId: string): string | null;
|
|
32
|
+
/**
|
|
33
|
+
* Check if an auto-state file exists for a session.
|
|
34
|
+
*/
|
|
35
|
+
export declare function autoStateFileExists(sessionName: string, sessionId: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Write state data to file, encrypting if encryption key is available.
|
|
38
|
+
*
|
|
39
|
+
* @param filepath - Path to write the state file
|
|
40
|
+
* @param data - State data object to write
|
|
41
|
+
* @returns Object indicating whether the file was encrypted
|
|
42
|
+
*/
|
|
43
|
+
export declare function writeStateFile(filepath: string, data: object): {
|
|
44
|
+
encrypted: boolean;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Read state data from file, decrypting if necessary.
|
|
48
|
+
*
|
|
49
|
+
* @param filepath - Path to the state file
|
|
50
|
+
* @returns Object containing the data and whether it was encrypted
|
|
51
|
+
* @throws Error if file is encrypted but no key is available
|
|
52
|
+
*/
|
|
53
|
+
export declare function readStateFile(filepath: string): {
|
|
54
|
+
data: object;
|
|
55
|
+
wasEncrypted: boolean;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* List all state files in the sessions directory.
|
|
59
|
+
* @returns Array of filenames ending in .json
|
|
60
|
+
*/
|
|
61
|
+
export declare function listStateFiles(): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Clean up state files older than specified days.
|
|
64
|
+
* @param days - Maximum age in days (files older than this are deleted)
|
|
65
|
+
* @returns Array of deleted filenames
|
|
66
|
+
*/
|
|
67
|
+
export declare function cleanupExpiredStates(days: number): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Safely merge headers without prototype pollution risk.
|
|
70
|
+
* Filters out dangerous keys like __proto__, constructor, prototype.
|
|
71
|
+
* @param base - Base headers object
|
|
72
|
+
* @param override - Headers to merge (takes precedence)
|
|
73
|
+
* @returns Merged headers object (null-prototype)
|
|
74
|
+
*/
|
|
75
|
+
export declare function safeHeaderMerge(base: Record<string, string>, override: Record<string, string>): Record<string, string>;
|
|
76
|
+
export { getEncryptionKey, encryptData, decryptData, isEncryptedPayload, type EncryptedPayload, ENCRYPTION_KEY_ENV, };
|
|
77
|
+
//# sourceMappingURL=state-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-utils.d.ts","sourceRoot":"","sources":["../src/state-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAUD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmB1F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGnF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAYrF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAiBvF;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAMzC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B3D;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB;AAGD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for session state management.
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import * as os from 'os';
|
|
7
|
+
import { getEncryptionKey, encryptData, decryptData, isEncryptedPayload, ENCRYPTION_KEY_ENV, } from './encryption.js';
|
|
8
|
+
/**
|
|
9
|
+
* Get the session persistence directory.
|
|
10
|
+
* Located at ~/.agent-browser/sessions/
|
|
11
|
+
*/
|
|
12
|
+
export function getSessionsDir() {
|
|
13
|
+
return path.join(os.homedir(), '.agent-browser', 'sessions');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ensure the sessions directory exists with proper permissions.
|
|
17
|
+
* Creates directory with mode 0o700 (owner only).
|
|
18
|
+
*/
|
|
19
|
+
export function ensureSessionsDir() {
|
|
20
|
+
const sessionsDir = getSessionsDir();
|
|
21
|
+
if (!fs.existsSync(sessionsDir)) {
|
|
22
|
+
fs.mkdirSync(sessionsDir, { recursive: true, mode: 0o700 });
|
|
23
|
+
}
|
|
24
|
+
return sessionsDir;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Validate a session ID to prevent path traversal attacks.
|
|
28
|
+
* Only allows alphanumeric characters, hyphens, and underscores.
|
|
29
|
+
*/
|
|
30
|
+
function isValidSessionId(id) {
|
|
31
|
+
return /^[a-zA-Z0-9_-]+$/.test(id);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validate a session name for safety (no path traversal).
|
|
35
|
+
* Only allows alphanumeric characters, dashes, and underscores.
|
|
36
|
+
* This validation is critical for security - the daemon reads session names
|
|
37
|
+
* from environment variables which can be set by attackers bypassing CLI validation.
|
|
38
|
+
*/
|
|
39
|
+
export function isValidSessionName(name) {
|
|
40
|
+
return /^[a-zA-Z0-9_-]+$/.test(name);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get the auto-save state file path for a session.
|
|
44
|
+
* Pattern: {SESSION_NAME}-{SESSION_ID}.json
|
|
45
|
+
*
|
|
46
|
+
* @param sessionName - The session name (e.g., "twitter")
|
|
47
|
+
* @param sessionId - The session ID (e.g., "default" or "agent1")
|
|
48
|
+
* @returns Full path to the state file, or null if sessionName is empty
|
|
49
|
+
* @throws Error if sessionName or sessionId contains invalid characters (path traversal prevention)
|
|
50
|
+
*/
|
|
51
|
+
export function getAutoStateFilePath(sessionName, sessionId) {
|
|
52
|
+
if (!sessionName)
|
|
53
|
+
return null;
|
|
54
|
+
// SECURITY: Validate sessionName to prevent path traversal attacks.
|
|
55
|
+
// The daemon reads AGENT_BROWSER_SESSION_NAME from environment which
|
|
56
|
+
// can be set directly by attackers, bypassing CLI validation.
|
|
57
|
+
if (!isValidSessionName(sessionName)) {
|
|
58
|
+
throw new Error(`Invalid session name '${sessionName}'. Only alphanumeric characters, hyphens, and underscores are allowed.`);
|
|
59
|
+
}
|
|
60
|
+
if (!isValidSessionId(sessionId)) {
|
|
61
|
+
throw new Error(`Invalid session ID '${sessionId}'. Only alphanumeric characters, hyphens, and underscores are allowed.`);
|
|
62
|
+
}
|
|
63
|
+
const sessionsDir = ensureSessionsDir();
|
|
64
|
+
return path.join(sessionsDir, `${sessionName}-${sessionId}.json`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if an auto-state file exists for a session.
|
|
68
|
+
*/
|
|
69
|
+
export function autoStateFileExists(sessionName, sessionId) {
|
|
70
|
+
const filePath = getAutoStateFilePath(sessionName, sessionId);
|
|
71
|
+
return filePath ? fs.existsSync(filePath) : false;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Write state data to file, encrypting if encryption key is available.
|
|
75
|
+
*
|
|
76
|
+
* @param filepath - Path to write the state file
|
|
77
|
+
* @param data - State data object to write
|
|
78
|
+
* @returns Object indicating whether the file was encrypted
|
|
79
|
+
*/
|
|
80
|
+
export function writeStateFile(filepath, data) {
|
|
81
|
+
const key = getEncryptionKey();
|
|
82
|
+
const jsonData = JSON.stringify(data, null, 2);
|
|
83
|
+
if (key) {
|
|
84
|
+
const encrypted = encryptData(jsonData, key);
|
|
85
|
+
fs.writeFileSync(filepath, JSON.stringify(encrypted, null, 2));
|
|
86
|
+
return { encrypted: true };
|
|
87
|
+
}
|
|
88
|
+
fs.writeFileSync(filepath, jsonData);
|
|
89
|
+
return { encrypted: false };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Read state data from file, decrypting if necessary.
|
|
93
|
+
*
|
|
94
|
+
* @param filepath - Path to the state file
|
|
95
|
+
* @returns Object containing the data and whether it was encrypted
|
|
96
|
+
* @throws Error if file is encrypted but no key is available
|
|
97
|
+
*/
|
|
98
|
+
export function readStateFile(filepath) {
|
|
99
|
+
const content = fs.readFileSync(filepath, 'utf-8');
|
|
100
|
+
const parsed = JSON.parse(content);
|
|
101
|
+
if (isEncryptedPayload(parsed)) {
|
|
102
|
+
const key = getEncryptionKey();
|
|
103
|
+
if (!key) {
|
|
104
|
+
throw new Error(`State file is encrypted but ${ENCRYPTION_KEY_ENV} is not set. ` +
|
|
105
|
+
`Set the environment variable to decrypt.`);
|
|
106
|
+
}
|
|
107
|
+
const decrypted = decryptData(parsed, key);
|
|
108
|
+
return { data: JSON.parse(decrypted), wasEncrypted: true };
|
|
109
|
+
}
|
|
110
|
+
return { data: parsed, wasEncrypted: false };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* List all state files in the sessions directory.
|
|
114
|
+
* @returns Array of filenames ending in .json
|
|
115
|
+
*/
|
|
116
|
+
export function listStateFiles() {
|
|
117
|
+
const sessionsDir = getSessionsDir();
|
|
118
|
+
if (!fs.existsSync(sessionsDir)) {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
return fs.readdirSync(sessionsDir).filter((f) => f.endsWith('.json'));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Clean up state files older than specified days.
|
|
125
|
+
* @param days - Maximum age in days (files older than this are deleted)
|
|
126
|
+
* @returns Array of deleted filenames
|
|
127
|
+
*/
|
|
128
|
+
export function cleanupExpiredStates(days) {
|
|
129
|
+
if (days <= 0)
|
|
130
|
+
return [];
|
|
131
|
+
const sessionsDir = getSessionsDir();
|
|
132
|
+
if (!fs.existsSync(sessionsDir)) {
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
const now = Date.now();
|
|
136
|
+
const maxAge = days * 24 * 60 * 60 * 1000;
|
|
137
|
+
const deleted = [];
|
|
138
|
+
const files = listStateFiles();
|
|
139
|
+
for (const file of files) {
|
|
140
|
+
const filepath = path.join(sessionsDir, file);
|
|
141
|
+
try {
|
|
142
|
+
const stats = fs.statSync(filepath);
|
|
143
|
+
if (now - stats.mtime.getTime() > maxAge) {
|
|
144
|
+
fs.unlinkSync(filepath);
|
|
145
|
+
deleted.push(file);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Ignore individual file errors
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return deleted;
|
|
153
|
+
}
|
|
154
|
+
const DANGEROUS_KEYS = ['__proto__', 'constructor', 'prototype'];
|
|
155
|
+
/**
|
|
156
|
+
* Safely merge headers without prototype pollution risk.
|
|
157
|
+
* Filters out dangerous keys like __proto__, constructor, prototype.
|
|
158
|
+
* @param base - Base headers object
|
|
159
|
+
* @param override - Headers to merge (takes precedence)
|
|
160
|
+
* @returns Merged headers object (null-prototype)
|
|
161
|
+
*/
|
|
162
|
+
export function safeHeaderMerge(base, override) {
|
|
163
|
+
const result = Object.create(null);
|
|
164
|
+
for (const [key, value] of Object.entries(base)) {
|
|
165
|
+
if (!DANGEROUS_KEYS.includes(key)) {
|
|
166
|
+
result[key] = value;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
for (const [key, value] of Object.entries(override)) {
|
|
170
|
+
if (!DANGEROUS_KEYS.includes(key)) {
|
|
171
|
+
result[key] = value;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
// Re-export encryption utilities
|
|
177
|
+
export { getEncryptionKey, encryptData, decryptData, isEncryptedPayload, ENCRYPTION_KEY_ENV, };
|
|
178
|
+
//# sourceMappingURL=state-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-utils.js","sourceRoot":"","sources":["../src/state-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stealth mode patches to prevent browser automation detection.
|
|
3
|
+
*
|
|
4
|
+
* These scripts run via addInitScript (before any page JS) and patch the
|
|
5
|
+
* fingerprinting surfaces that anti-bot systems use to identify Playwright /
|
|
6
|
+
* Puppeteer / headless Chrome.
|
|
7
|
+
*/
|
|
8
|
+
import type { BrowserContext } from 'playwright-core';
|
|
9
|
+
export interface StealthScriptOptions {
|
|
10
|
+
locale?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Chromium args that reduce automation fingerprint.
|
|
14
|
+
* Intended to be merged into the user-supplied args array at launch time.
|
|
15
|
+
*/
|
|
16
|
+
export declare const STEALTH_CHROMIUM_ARGS: string[];
|
|
17
|
+
/**
|
|
18
|
+
* Apply all stealth patches to a BrowserContext.
|
|
19
|
+
* Must be called BEFORE any page is created / navigated.
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyStealthScripts(context: BrowserContext, options?: StealthScriptOptions): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=stealth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stealth.d.ts","sourceRoot":"","sources":["../src/stealth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAAsD,CAAC;AAEjG;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAEf"}
|