@geometra/proxy 1.61.2 → 1.62.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 +5 -0
- package/dist/index.js +27 -12
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +4 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +132 -17
- package/dist/runtime.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -7,6 +7,8 @@ Chromium proxy ( **`headed` / visible window by default** ) that extracts **live
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install @geometra/proxy playwright
|
|
9
9
|
npx playwright install chromium
|
|
10
|
+
# Optional: prefetch CloakBrowser's patched Chromium for --stealth mode
|
|
11
|
+
npx cloakbrowser install
|
|
10
12
|
```
|
|
11
13
|
|
|
12
14
|
## CLI
|
|
@@ -16,10 +18,13 @@ npx geometra-proxy https://example.com --port 3200
|
|
|
16
18
|
npx geometra-proxy http://localhost:8080 --width 1440 --height 900
|
|
17
19
|
npx geometra-proxy https://example.com --port 3200 --headless
|
|
18
20
|
npx geometra-proxy https://example.com --port 3200 --slow-mo 50
|
|
21
|
+
npx geometra-proxy https://example.com --port 3200 --stealth
|
|
19
22
|
```
|
|
20
23
|
|
|
21
24
|
**Default is a visible browser** so you can watch MCP-driven clicks and typing. Use **`--headless`** (or env **`GEOMETRA_HEADLESS=1`**) for automation on servers / CI. **`--slow-mo <ms>`** (or **`GEOMETRA_SLOW_MO`**) adds Playwright `slowMo` to make actions easier to follow.
|
|
22
25
|
|
|
26
|
+
Use **`--stealth`** (or env **`GEOMETRA_STEALTH=1`** / **`GEOMETRA_BROWSER=stealth`**) to launch CloakBrowser's patched Chromium through the same Geometra proxy protocol. Stock Playwright Chromium remains the default; pass **`--no-stealth`** to override a stealth env default for one run. CloakBrowser downloads its patched Chromium on first launch and caches it under `~/.cloakbrowser/`.
|
|
27
|
+
|
|
23
28
|
The proxy only opens **`http://`** or **`https://`** pages. For debugging you can still choose a fixed `--port`, but `--port 0` asks the OS for an ephemeral free port (useful for tools that auto-spawn the proxy).
|
|
24
29
|
|
|
25
30
|
Headed vs headless usually does **not** materially change token usage, because token usage comes from MCP response payloads rather than whether Chromium is visible.
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { formatProxyFatalError, launchProxyRuntime, parseHttpPageUrl } from './runtime.js';
|
|
2
|
+
import { formatProxyFatalError, launchProxyRuntime, parseHttpPageUrl, resolveStealthMode } from './runtime.js';
|
|
3
3
|
const READY_SIGNAL_TYPE = 'geometra-proxy-ready';
|
|
4
4
|
function printUsage() {
|
|
5
|
-
console.error(`Usage: geometra-proxy <url> [--port <n>] [--width <n>] [--height <n>] [--headless] [--headed] [--slow-mo <ms>] [--lazy-initial-extract] [--proxy-server <url> [--proxy-username <u>] [--proxy-password <p>] [--proxy-bypass <list>]]
|
|
5
|
+
console.error(`Usage: geometra-proxy <url> [--port <n>] [--width <n>] [--height <n>] [--headless] [--headed] [--stealth] [--no-stealth] [--slow-mo <ms>] [--lazy-initial-extract] [--proxy-server <url> [--proxy-username <u>] [--proxy-password <p>] [--proxy-bypass <list>]]
|
|
6
6
|
|
|
7
7
|
Open <url> in Chromium and stream GEOM v1 frames on WebSocket (JSON text).
|
|
8
8
|
|
|
9
|
-
Default is
|
|
10
|
-
Use --
|
|
9
|
+
Default is headless with stealth enabled — no visible browser window.
|
|
10
|
+
Use --headed for a visible browser window (debugging).
|
|
11
|
+
Use --no-stealth to use stock Playwright Chromium instead of CloakBrowser.
|
|
11
12
|
|
|
12
13
|
Use --proxy-server to route all Chromium traffic through a residential / mobile / SOCKS proxy.
|
|
13
14
|
Pair with --proxy-username/--proxy-password if the proxy requires auth. Helps bypass
|
|
@@ -18,15 +19,13 @@ Examples:
|
|
|
18
19
|
geometra-proxy https://example.com --port 3200 --width 1440 --height 900
|
|
19
20
|
geometra-proxy https://jobs.example.com/apply --slow-mo 40
|
|
20
21
|
geometra-proxy http://localhost:3000 --headless
|
|
22
|
+
geometra-proxy https://jobs.example.com/apply --stealth
|
|
21
23
|
geometra-proxy https://jobs.ashbyhq.com/foo --proxy-server http://res-proxy.example.com:8080 --proxy-username me --proxy-password secret
|
|
22
24
|
|
|
23
25
|
Requires Chromium for Playwright: npx playwright install chromium
|
|
26
|
+
Stealth mode uses CloakBrowser and downloads its patched Chromium on first launch: npx cloakbrowser install
|
|
24
27
|
`);
|
|
25
28
|
}
|
|
26
|
-
function envRequestsHeadless() {
|
|
27
|
-
const v = (process.env.GEOMETRA_HEADLESS ?? '').toLowerCase();
|
|
28
|
-
return v === '1' || v === 'true' || v === 'yes';
|
|
29
|
-
}
|
|
30
29
|
function envRequestsReadyJson() {
|
|
31
30
|
const v = (process.env.GEOMETRA_PROXY_READY_JSON ?? '').toLowerCase();
|
|
32
31
|
return v === '1' || v === 'true' || v === 'yes';
|
|
@@ -59,7 +58,8 @@ function parseArgs(argv) {
|
|
|
59
58
|
let port = 3200;
|
|
60
59
|
let width = 1280;
|
|
61
60
|
let height = 720;
|
|
62
|
-
let headed =
|
|
61
|
+
let headed = false;
|
|
62
|
+
let stealth;
|
|
63
63
|
let slowMo = 0;
|
|
64
64
|
let eagerInitialExtract = !envRequestsLazyInitialExtract();
|
|
65
65
|
let proxyServer = process.env.GEOMETRA_PROXY_SERVER || undefined;
|
|
@@ -89,6 +89,12 @@ function parseArgs(argv) {
|
|
|
89
89
|
else if (a === '--headless') {
|
|
90
90
|
headed = false;
|
|
91
91
|
}
|
|
92
|
+
else if (a === '--stealth') {
|
|
93
|
+
stealth = true;
|
|
94
|
+
}
|
|
95
|
+
else if (a === '--no-stealth' || a === '--stock-chromium') {
|
|
96
|
+
stealth = false;
|
|
97
|
+
}
|
|
92
98
|
else if (a === '--slow-mo' || a === '--slowMo') {
|
|
93
99
|
const n = Number(argv[++i] ?? '');
|
|
94
100
|
if (Number.isFinite(n) && n >= 0)
|
|
@@ -118,19 +124,20 @@ function parseArgs(argv) {
|
|
|
118
124
|
process.exit(1);
|
|
119
125
|
}
|
|
120
126
|
}
|
|
121
|
-
return { url, port, width, height, headed, slowMo, eagerInitialExtract, proxyServer, proxyUsername, proxyPassword, proxyBypass };
|
|
127
|
+
return { url, port, width, height, headed, stealth, slowMo, eagerInitialExtract, proxyServer, proxyUsername, proxyPassword, proxyBypass };
|
|
122
128
|
}
|
|
123
129
|
async function main() {
|
|
124
|
-
const { url: rawUrl, port, width, height, headed, slowMo, eagerInitialExtract, proxyServer, proxyUsername, proxyPassword, proxyBypass } = parseArgs(process.argv.slice(2));
|
|
130
|
+
const { url: rawUrl, port, width, height, headed, stealth, slowMo, eagerInitialExtract, proxyServer, proxyUsername, proxyPassword, proxyBypass } = parseArgs(process.argv.slice(2));
|
|
125
131
|
if (!rawUrl) {
|
|
126
132
|
printUsage();
|
|
127
133
|
process.exit(1);
|
|
128
134
|
}
|
|
129
135
|
const url = parseHttpPageUrl(rawUrl);
|
|
130
136
|
const mode = headed ? 'headed (visible window)' : 'headless';
|
|
137
|
+
const engine = resolveStealthMode(stealth) ? 'CloakBrowser stealth Chromium' : 'Chromium';
|
|
131
138
|
const pace = slowMo > 0 ? `, slowMo ${slowMo}ms` : '';
|
|
132
139
|
const proxyTag = proxyServer ? `, proxy ${proxyServer}` : '';
|
|
133
|
-
console.error(`[geometra-proxy]
|
|
140
|
+
console.error(`[geometra-proxy] ${engine} ${mode}${pace}${proxyTag}`);
|
|
134
141
|
console.error(`[geometra-proxy] Loading ${url} …`);
|
|
135
142
|
const runtime = await launchProxyRuntime({
|
|
136
143
|
url,
|
|
@@ -138,6 +145,7 @@ async function main() {
|
|
|
138
145
|
width,
|
|
139
146
|
height,
|
|
140
147
|
headed,
|
|
148
|
+
...(stealth !== undefined && { stealth }),
|
|
141
149
|
slowMo,
|
|
142
150
|
eagerInitialExtract,
|
|
143
151
|
debounceMs: 50,
|
|
@@ -158,6 +166,13 @@ async function main() {
|
|
|
158
166
|
},
|
|
159
167
|
});
|
|
160
168
|
const wsUrl = runtime.wsUrl;
|
|
169
|
+
try {
|
|
170
|
+
await runtime.ready;
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
await runtime.close().catch(() => { });
|
|
174
|
+
throw err;
|
|
175
|
+
}
|
|
161
176
|
console.error(`[geometra-proxy] Ready. Connect MCP with geometra_connect({ url: "${wsUrl}" })`);
|
|
162
177
|
emitReadySignal(wsUrl, url);
|
|
163
178
|
let shuttingDown = false;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Browser, type Page } from 'playwright';
|
|
2
2
|
import { type GeometryWsHub, type GeometryWsTrace } from './geometry-ws.js';
|
|
3
3
|
export interface ProxyRuntimeTrace {
|
|
4
|
+
browserFlavor?: 'chromium' | 'stealth';
|
|
4
5
|
browserLaunchMs?: number;
|
|
5
6
|
newPageMs?: number;
|
|
6
7
|
wsListeningMs?: number;
|
|
@@ -48,6 +49,8 @@ export interface LaunchProxyRuntimeOptions {
|
|
|
48
49
|
slowMo?: number;
|
|
49
50
|
debounceMs?: number;
|
|
50
51
|
eagerInitialExtract?: boolean;
|
|
52
|
+
/** Use CloakBrowser's patched Chromium binary instead of stock Playwright Chromium. */
|
|
53
|
+
stealth?: boolean;
|
|
51
54
|
/** Outbound HTTP/SOCKS proxy for Chromium (BYO residential/mobile IP). */
|
|
52
55
|
proxy?: ProxyConfig;
|
|
53
56
|
onListening?: (wsUrl: string) => void;
|
|
@@ -55,5 +58,6 @@ export interface LaunchProxyRuntimeOptions {
|
|
|
55
58
|
}
|
|
56
59
|
export declare function parseHttpPageUrl(raw: string): string;
|
|
57
60
|
export declare function formatProxyFatalError(err: unknown): string;
|
|
61
|
+
export declare function resolveStealthMode(stealth?: boolean): boolean;
|
|
58
62
|
export declare function launchProxyRuntime(options: LaunchProxyRuntimeOptions): Promise<ProxyRuntimeHandle>;
|
|
59
63
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AAQzB,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,GAAG,EAAE,aAAa,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,QAAQ,EAAE,MAAM,iBAAiB,CAAA;IACjC,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAS1D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAE7D;AAmHD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoMxG"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import path from 'node:path';
|
|
1
4
|
import { performance } from 'node:perf_hooks';
|
|
2
5
|
import { chromium } from 'playwright';
|
|
3
6
|
import { primeDomObserver, startGeometryWebSocket, } from './geometry-ws.js';
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
8
|
+
const AUTO_INSTALL_ENV = 'GEOMETRA_PROXY_AUTO_INSTALL_BROWSERS';
|
|
9
|
+
const PLAYWRIGHT_INSTALL_HINT = 'Install Chromium with the Playwright version bundled in this package: npm run browsers:install -w @geometra/proxy (repo checkout) or npx --no-install playwright install chromium.';
|
|
10
|
+
const PROCESS_OUTPUT_TAIL_LIMIT = 6_000;
|
|
4
11
|
export function parseHttpPageUrl(raw) {
|
|
5
12
|
let parsed;
|
|
6
13
|
try {
|
|
@@ -17,10 +24,16 @@ export function parseHttpPageUrl(raw) {
|
|
|
17
24
|
export function formatProxyFatalError(err) {
|
|
18
25
|
const base = err instanceof Error ? err.message : String(err);
|
|
19
26
|
if (/Executable doesn't exist|playwright install chromium|browserType\.launch/i.test(base)) {
|
|
20
|
-
return `${base}\
|
|
27
|
+
return `${base}\n${PLAYWRIGHT_INSTALL_HINT}`;
|
|
28
|
+
}
|
|
29
|
+
if (/cloakbrowser|CLOAKBROWSER|ERR_MODULE_NOT_FOUND|Cannot find package/i.test(base)) {
|
|
30
|
+
return `${base}\nStealth mode uses CloakBrowser. Install dependencies with: npm install, or disable stealth with --no-stealth / GEOMETRA_STEALTH=0. To prefetch the patched Chromium binary, run: npx cloakbrowser install`;
|
|
21
31
|
}
|
|
22
32
|
return base;
|
|
23
33
|
}
|
|
34
|
+
export function resolveStealthMode(stealth) {
|
|
35
|
+
return stealth ?? true;
|
|
36
|
+
}
|
|
24
37
|
function createDeferred() {
|
|
25
38
|
let resolve;
|
|
26
39
|
let reject;
|
|
@@ -30,6 +43,85 @@ function createDeferred() {
|
|
|
30
43
|
});
|
|
31
44
|
return { promise, resolve, reject };
|
|
32
45
|
}
|
|
46
|
+
function truthyEnv(value) {
|
|
47
|
+
return value != null && /^(1|true|yes|on)$/i.test(value);
|
|
48
|
+
}
|
|
49
|
+
function falseyEnv(value) {
|
|
50
|
+
return value != null && /^(0|false|no|off)$/i.test(value);
|
|
51
|
+
}
|
|
52
|
+
function autoInstallBrowsersEnabled() {
|
|
53
|
+
if (falseyEnv(process.env[AUTO_INSTALL_ENV]))
|
|
54
|
+
return false;
|
|
55
|
+
if (truthyEnv(process.env.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD))
|
|
56
|
+
return false;
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
function isMissingPlaywrightChromiumExecutableError(err) {
|
|
60
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
61
|
+
return (/Executable doesn't exist/i.test(message) &&
|
|
62
|
+
/(chromium|chrome|headless)/i.test(message)) || /Looks like Playwright was just installed or updated/i.test(message);
|
|
63
|
+
}
|
|
64
|
+
function resolvedPlaywrightCliPath() {
|
|
65
|
+
const packageJsonPath = require.resolve('playwright/package.json');
|
|
66
|
+
return path.join(path.dirname(packageJsonPath), 'cli.js');
|
|
67
|
+
}
|
|
68
|
+
function appendTail(existing, chunk) {
|
|
69
|
+
const next = existing + chunk.toString();
|
|
70
|
+
return next.length > PROCESS_OUTPUT_TAIL_LIMIT
|
|
71
|
+
? next.slice(-PROCESS_OUTPUT_TAIL_LIMIT)
|
|
72
|
+
: next;
|
|
73
|
+
}
|
|
74
|
+
let playwrightChromiumInstallPromise;
|
|
75
|
+
function installPlaywrightChromiumForResolvedPackage() {
|
|
76
|
+
playwrightChromiumInstallPromise ??= new Promise((resolve, reject) => {
|
|
77
|
+
let stdoutTail = '';
|
|
78
|
+
let stderrTail = '';
|
|
79
|
+
const child = spawn(process.execPath, [resolvedPlaywrightCliPath(), 'install', 'chromium'], {
|
|
80
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
81
|
+
env: {
|
|
82
|
+
...process.env,
|
|
83
|
+
PLAYWRIGHT_SKIP_BROWSER_GC: process.env.PLAYWRIGHT_SKIP_BROWSER_GC ?? '1',
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
child.stdout?.on('data', chunk => {
|
|
87
|
+
stdoutTail = appendTail(stdoutTail, chunk);
|
|
88
|
+
});
|
|
89
|
+
child.stderr?.on('data', chunk => {
|
|
90
|
+
stderrTail = appendTail(stderrTail, chunk);
|
|
91
|
+
});
|
|
92
|
+
child.on('error', reject);
|
|
93
|
+
child.on('exit', (code, signal) => {
|
|
94
|
+
if (code === 0) {
|
|
95
|
+
resolve();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const detail = [stdoutTail.trim(), stderrTail.trim()].filter(Boolean).join('\n');
|
|
99
|
+
reject(new Error(`Playwright browser install failed (code=${code} signal=${signal}).${detail ? ` Output tail:\n${detail}` : ''}`));
|
|
100
|
+
});
|
|
101
|
+
}).finally(() => {
|
|
102
|
+
playwrightChromiumInstallPromise = undefined;
|
|
103
|
+
});
|
|
104
|
+
return playwrightChromiumInstallPromise;
|
|
105
|
+
}
|
|
106
|
+
async function launchChromiumWithBrowserInstallRetry(launchOpts) {
|
|
107
|
+
try {
|
|
108
|
+
return await chromium.launch(launchOpts);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
if (!autoInstallBrowsersEnabled() || !isMissingPlaywrightChromiumExecutableError(err)) {
|
|
112
|
+
throw err;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
await installPlaywrightChromiumForResolvedPackage();
|
|
116
|
+
return await chromium.launch(launchOpts);
|
|
117
|
+
}
|
|
118
|
+
catch (retryErr) {
|
|
119
|
+
const original = err instanceof Error ? err.message : String(err);
|
|
120
|
+
const retry = retryErr instanceof Error ? retryErr.message : String(retryErr);
|
|
121
|
+
throw new Error(`Chromium launch failed because the Playwright browser revision was missing. Geometra attempted to install the browser for the resolved Playwright package and retry once, but launch still failed.\nOriginal error: ${original}\nRetry error: ${retry}\n${PLAYWRIGHT_INSTALL_HINT}`, { cause: retryErr });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
33
125
|
export async function launchProxyRuntime(options) {
|
|
34
126
|
const runtimeStartedAt = performance.now();
|
|
35
127
|
const pageUrl = parseHttpPageUrl(options.url);
|
|
@@ -89,29 +181,51 @@ export async function launchProxyRuntime(options) {
|
|
|
89
181
|
width: options.width ?? 1280,
|
|
90
182
|
height: options.height ?? 720,
|
|
91
183
|
};
|
|
184
|
+
const stealth = resolveStealthMode(options.stealth);
|
|
185
|
+
trace.browserFlavor = stealth ? 'stealth' : 'chromium';
|
|
92
186
|
const browserLaunchStartedAt = performance.now();
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (options.slowMo && options.slowMo > 0)
|
|
105
|
-
launchOpts.slowMo = options.slowMo;
|
|
106
|
-
if (options.proxy?.server) {
|
|
107
|
-
launchOpts.proxy = {
|
|
187
|
+
const headless = options.headed !== true;
|
|
188
|
+
const args = [
|
|
189
|
+
'--disable-blink-features=AutomationControlled',
|
|
190
|
+
'--disable-dev-shm-usage',
|
|
191
|
+
'--no-sandbox',
|
|
192
|
+
'--disable-setuid-sandbox',
|
|
193
|
+
'--disable-web-security',
|
|
194
|
+
'--disable-features=IsolateOrigins,site-per-process',
|
|
195
|
+
];
|
|
196
|
+
const proxy = options.proxy?.server
|
|
197
|
+
? {
|
|
108
198
|
server: options.proxy.server,
|
|
109
199
|
...(options.proxy.username !== undefined && { username: options.proxy.username }),
|
|
110
200
|
...(options.proxy.password !== undefined && { password: options.proxy.password }),
|
|
111
201
|
...(options.proxy.bypass !== undefined && { bypass: options.proxy.bypass }),
|
|
202
|
+
}
|
|
203
|
+
: undefined;
|
|
204
|
+
if (stealth) {
|
|
205
|
+
const cloak = await import('cloakbrowser');
|
|
206
|
+
const launchOptions = {};
|
|
207
|
+
if (options.slowMo && options.slowMo > 0)
|
|
208
|
+
launchOptions.slowMo = options.slowMo;
|
|
209
|
+
browser = await cloak.launch({
|
|
210
|
+
headless,
|
|
211
|
+
args,
|
|
212
|
+
...(proxy && { proxy }),
|
|
213
|
+
...(Object.keys(launchOptions).length > 0 && { launchOptions }),
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
const launchOpts = {
|
|
218
|
+
headless,
|
|
219
|
+
args: [
|
|
220
|
+
...args,
|
|
221
|
+
],
|
|
112
222
|
};
|
|
223
|
+
if (options.slowMo && options.slowMo > 0)
|
|
224
|
+
launchOpts.slowMo = options.slowMo;
|
|
225
|
+
if (proxy)
|
|
226
|
+
launchOpts.proxy = proxy;
|
|
227
|
+
browser = await launchChromiumWithBrowserInstallRetry(launchOpts);
|
|
113
228
|
}
|
|
114
|
-
browser = await chromium.launch(launchOpts);
|
|
115
229
|
trace.browserLaunchMs = performance.now() - browserLaunchStartedAt;
|
|
116
230
|
browser?.on('disconnected', () => {
|
|
117
231
|
handleUnexpectedClosure('browser');
|
|
@@ -142,6 +256,7 @@ export async function launchProxyRuntime(options) {
|
|
|
142
256
|
void hub.close().catch(() => { });
|
|
143
257
|
throw err;
|
|
144
258
|
});
|
|
259
|
+
void ready.catch(() => { });
|
|
145
260
|
const listeningWsUrl = await listeningPromise;
|
|
146
261
|
trace.wsListeningMs = performance.now() - runtimeStartedAt;
|
|
147
262
|
const getTrace = () => ({
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/proxy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.62.1",
|
|
4
4
|
"description": "Chromium proxy (headed by default) — stream live DOM geometry as Geometra WebSocket frames for MCP and clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/
|
|
9
|
+
"url": "https://github.com/Agent-Pattern-Labs/geometra",
|
|
10
10
|
"directory": "packages/proxy"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [
|
|
@@ -35,9 +35,11 @@
|
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
37
37
|
"check": "tsc --noEmit -p tsconfig.build.json",
|
|
38
|
+
"browsers:install": "playwright install chromium",
|
|
38
39
|
"prepublishOnly": "npm run build"
|
|
39
40
|
},
|
|
40
41
|
"dependencies": {
|
|
42
|
+
"cloakbrowser": "^0.3.28",
|
|
41
43
|
"playwright": "^1.54.0",
|
|
42
44
|
"ws": "^8.18.0"
|
|
43
45
|
},
|