@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 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 a visible browser window (headed) so you can watch MCP-driven automation.
10
- Use --headless or env GEOMETRA_HEADLESS=1 for CI / servers without a display.
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 = !envRequestsHeadless();
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] Chromium ${mode}${pace}${proxyTag}`);
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":"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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,iBAAiB;IAChC,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,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,CAM1D;AAgBD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwKxG"}
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}\nInstall Chromium with: npx playwright install chromium`;
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 launchOpts = {
94
- headless: options.headed !== true,
95
- args: [
96
- '--disable-blink-features=AutomationControlled',
97
- '--disable-dev-shm-usage',
98
- '--no-sandbox',
99
- '--disable-setuid-sandbox',
100
- '--disable-web-security',
101
- '--disable-features=IsolateOrigins,site-per-process',
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 = () => ({
@@ -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.61.2",
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/razroo/geometra",
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
  },