clearcote 0.12.1 → 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/README.md CHANGED
@@ -204,7 +204,7 @@ All optional. Anything not listed here is passed straight through to Playwright
204
204
  | Option | Switch | Meaning |
205
205
  |---|---|---|
206
206
  | `fingerprint` | `--fingerprint` | Master seed (per-eTLD+1 farbling root). String or number. |
207
- | `platform` | `--fingerprint-platform` | `windows` \| `linux` \| `macos`. |
207
+ | `platform` | `--fingerprint-platform` | `windows` \| `linux` \| `macos` \| `android` (best-effort mobile). |
208
208
  | `platformVersion` | `--fingerprint-platform-version` | UA-CH platform version. |
209
209
  | `brand` | `--fingerprint-brand` | `Chrome` \| `Edge` \| `Opera` \| `Vivaldi`. |
210
210
  | `brandVersion` | `--fingerprint-brand-version` | Brand version. |
@@ -225,6 +225,43 @@ All optional. Anything not listed here is passed straight through to Playwright
225
225
  >
226
226
  > **Proxies:** a `socks5://user:pass@host:port` proxy is routed via `--proxy-server` (Playwright rejects credentials in its SOCKS descriptor). Chromium can't authenticate SOCKS5, so the credentials are dropped with a warning — put the auth on a local relay.
227
227
 
228
+ ## Personas & Client Hints coherence
229
+
230
+ A persona's Client Hints are coherent across **JavaScript and HTTP by construction** — clearcote rewrites a single `blink::UserAgentMetadata` (brand list, full-version list, platform, mobile, arch/bitness) that feeds *both* the browser path that attaches the `Sec-CH-UA*` request headers **and** the renderer path that builds `navigator.userAgentData`. There aren't two sides to keep in sync; they read the same source. So `getHighEntropyValues(['fullVersionList', …])` in JS matches `Sec-CH-UA-Full-Version-List` on the wire, `userAgentData.platform` matches `Sec-CH-UA-Platform`, and so on.
231
+
232
+ **Chrome — the default and the recommendation** (most coherent: clearcote *is* Chromium, so the claim matches the engine's real behavior):
233
+
234
+ ```ts
235
+ const browser = await launch({ fingerprint: "p1" }); // brand defaults to Chrome; platform defaults to the host OS
236
+ // HTTP: sec-ch-ua: "Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="…"
237
+ // sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows"
238
+ // JS: navigator.userAgentData.brands == that same list; mobile=false; platform="Windows"
239
+ ```
240
+
241
+ **Edge** — a coherent Edge string surface (UA + UA-CH), for targets that specifically expect the Edge brand:
242
+
243
+ ```ts
244
+ const browser = await launch({ fingerprint: "p1", brand: "Edge" });
245
+ // UA: …Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0
246
+ // HTTP: sec-ch-ua: "Microsoft Edge";v="149", "Chromium";v="149", "Not)A;Brand";v="…"
247
+ // sec-ch-ua-full-version-list: "Microsoft Edge";v="149.0.3650.65", "Chromium";v="149.0.7827.114", …
248
+ // JS: userAgentData.brands include "Microsoft Edge"; getHighEntropyValues(['fullVersionList'])
249
+ // carries that same distinct Edge build — JS and HTTP identical, from one metadata.
250
+ ```
251
+
252
+ `brand` (`"Chrome"` | `"Edge"` | `"Opera"` | `"Vivaldi"`) is a **string-level** persona: it changes the UA + UA-CH brand, but the engine still behaves like Chromium. Chrome is the most coherent default (nothing to contradict); reach for `brand: "Edge"` only when a target expects it. If you also set `brandVersion` to an older major, the network `tlsProfile` (default `match-persona`) shifts the TLS shape to that major while the JS engine stays at the build version — so **Chrome ≈ the build version, everything aligned** is the strongest persona.
253
+
254
+ **Android** — a best-effort mobile persona (seed-selected Pixel/Galaxy):
255
+
256
+ ```ts
257
+ const browser = await launch({ fingerprint: "p1", platform: "android" }); // auto-sets a phone window-size
258
+ // UA: …(Linux; Android 10; K) … Chrome/149.0.0.0 Mobile Safari/537.36
259
+ // JS/HTTP: sec-ch-ua-mobile: ?1, platform="Android", model + platformVersion; maxTouchPoints=5,
260
+ // pointer:coarse / hover:none, mobile screen + DPR, Mali/Adreno WebGL, plugins=0.
261
+ ```
262
+
263
+ Android is **best-effort on a desktop engine**: the JS/header surface is coherent, but the GPU *render* and fine page geometry (`innerWidth` floors at ~500px) stay desktop — documented residual tells. Pair with `canvasBridge` for render coherence.
264
+
228
265
  ## Saved profiles (`Profile`)
229
266
 
230
267
  A `Profile` bundles a persona (seed, GPU, brand, …) **and** its `canvasBridge` config under one
@@ -5,8 +5,15 @@ export interface FingerprintOptions {
5
5
  * is accepted (non-numeric seeds are hashed engine-side — they will not crash the renderer).
6
6
  */
7
7
  fingerprint?: string | number;
8
- /** Spoofed OS family for UA / UA-CH / navigator.platform. */
9
- platform?: "windows" | "linux" | "macos";
8
+ /**
9
+ * Spoofed OS family for UA / UA-CH / navigator.platform. `"android"` is a best-effort **mobile**
10
+ * persona (seed-selected from a Pixel/Galaxy device pool): Android UA + `Sec-CH-UA-Mobile: ?1`,
11
+ * touch (`maxTouchPoints`), `pointer:coarse`/`hover:none`, mobile screen/DPR, Mali/Adreno WebGL,
12
+ * `plugins=0`, and a mobile viewport (auto-sets a phone `--window-size`). On a desktop engine the
13
+ * GPU *render* and fine page geometry stay desktop (documented residual tells) — pair with
14
+ * `canvasBridge` for render coherence.
15
+ */
16
+ platform?: "windows" | "linux" | "macos" | "android";
10
17
  /** Spoofed platform version (UA-CH high-entropy). */
11
18
  platformVersion?: string;
12
19
  /** Browser brand for UA / UA-CH. */
@@ -130,5 +137,11 @@ export declare function profileAcceptLanguage(value: string | Record<string, unk
130
137
  * Always resolves to `chrome-<major>` (Chromium-core; the brand lives in headers, not the ClientHello).
131
138
  */
132
139
  export declare function resolveTlsProfile(value: FingerprintOptions["tlsProfile"], o: FingerprintOptions): string | undefined;
140
+ /**
141
+ * A plausible IANA timezone for a primary Accept-Language tag (`en-US` -> `America/New_York`), so the
142
+ * default persona's timezone is coherent with its locale rather than leaking the host's UTC. Falls
143
+ * back by language subtag, then to America/New_York (matching the en-US Accept-Language default).
144
+ */
145
+ export declare function defaultTimezone(primaryLang: string): string | undefined;
133
146
  export declare function fingerprintArgs(o: FingerprintOptions): string[];
134
147
  //# sourceMappingURL=fingerprint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,38 @@ export function resolveTlsProfile(value, o) {
114
114
  return `chrome-${text}`;
115
115
  return undefined;
116
116
  }
117
+ // Primary Accept-Language tag -> a plausible IANA timezone, so the default persona's timezone is
118
+ // coherent with its locale instead of leaking the host's (often UTC on servers/containers). Not
119
+ // geo-truth — set geoip=true (resolve the proxy exit-IP) or an explicit timezone for accuracy.
120
+ const LOCALE_TZ = {
121
+ "en-US": "America/New_York", "en-CA": "America/Toronto", "en-GB": "Europe/London",
122
+ "en-AU": "Australia/Sydney", "en-NZ": "Pacific/Auckland", "en-IE": "Europe/Dublin",
123
+ "de-DE": "Europe/Berlin", "de-AT": "Europe/Vienna", "fr-FR": "Europe/Paris",
124
+ "es-ES": "Europe/Madrid", "es-MX": "America/Mexico_City", "it-IT": "Europe/Rome",
125
+ "nl-NL": "Europe/Amsterdam", "pt-BR": "America/Sao_Paulo", "pt-PT": "Europe/Lisbon",
126
+ "pl-PL": "Europe/Warsaw", "sv-SE": "Europe/Stockholm", "ja-JP": "Asia/Tokyo",
127
+ "ko-KR": "Asia/Seoul", "zh-CN": "Asia/Shanghai", "zh-TW": "Asia/Taipei",
128
+ "ru-RU": "Europe/Moscow", "tr-TR": "Europe/Istanbul", "ar-SA": "Asia/Riyadh",
129
+ "hi-IN": "Asia/Kolkata", "id-ID": "Asia/Jakarta",
130
+ };
131
+ /**
132
+ * A plausible IANA timezone for a primary Accept-Language tag (`en-US` -> `America/New_York`), so the
133
+ * default persona's timezone is coherent with its locale rather than leaking the host's UTC. Falls
134
+ * back by language subtag, then to America/New_York (matching the en-US Accept-Language default).
135
+ */
136
+ export function defaultTimezone(primaryLang) {
137
+ if (!primaryLang)
138
+ return undefined;
139
+ const tag = primaryLang.trim();
140
+ if (LOCALE_TZ[tag])
141
+ return LOCALE_TZ[tag];
142
+ const lang = tag.split("-")[0].toLowerCase();
143
+ for (const [key, tz] of Object.entries(LOCALE_TZ)) {
144
+ if (key.toLowerCase().startsWith(lang + "-"))
145
+ return tz;
146
+ }
147
+ return "America/New_York";
148
+ }
117
149
  export function fingerprintArgs(o) {
118
150
  const args = [];
119
151
  const set = (flag, value) => {
@@ -156,6 +188,14 @@ export function fingerprintArgs(o) {
156
188
  const primaryLang = cleanLang.split(",")[0];
157
189
  if (primaryLang)
158
190
  args.push(`--lang=${primaryLang}`);
191
+ // Default the timezone to one coherent with the persona locale when none is set (and geoip didn't
192
+ // resolve one), so a server/container run doesn't leak the host's UTC (a datacenter tell) while
193
+ // navigator.language says e.g. en-US. geoip=True or an explicit timezone= override this.
194
+ if (!o.timezone) {
195
+ const tz = defaultTimezone(primaryLang);
196
+ if (tz)
197
+ args.push(`--timezone=${tz}`);
198
+ }
159
199
  set("webrtc-ip", o.webrtcIp);
160
200
  if (o.disableGpuFingerprint)
161
201
  args.push("--disable-gpu-fingerprint");
@@ -193,6 +233,12 @@ export function fingerprintArgs(o) {
193
233
  const tlsSwitch = resolveTlsProfile(o.tlsProfile ?? "match-persona", o);
194
234
  if (tlsSwitch)
195
235
  args.push(`--fingerprint-tls-profile=${tlsSwitch}`);
236
+ // The Android persona lays the page out as a mobile viewport, which needs a phone-sized window
237
+ // (Chromium's ~500px minimum width floor still applies). Auto-set one; a caller-supplied
238
+ // --window-size in `args` overrides this (Chromium takes the last --window-size).
239
+ if (o.platform === "android") {
240
+ args.push("--window-size=412,915");
241
+ }
196
242
  return args;
197
243
  }
198
244
  //# sourceMappingURL=fingerprint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** Returns `{ FONTCONFIG_FILE }` on Linux when the font bundle is present, else `{}`. */
2
+ export declare function linuxFontEnv(exePath: string): Record<string, string>;
3
+ type EnvMap = {
4
+ [key: string]: string | undefined;
5
+ };
6
+ /**
7
+ * Build the `env` to pass to Playwright's launch so the bundled fonts resolve.
8
+ * Merges process.env (Playwright replaces the env when `env` is set, so we must include it),
9
+ * the bundled-font FONTCONFIG_FILE, then any caller-supplied `env` (caller wins).
10
+ * Returns `undefined` when there is nothing to add (preserve Playwright's default env).
11
+ */
12
+ export declare function fontLaunchEnv(exePath: string, userEnv?: EnvMap): EnvMap | undefined;
13
+ export {};
14
+ //# sourceMappingURL=fonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAgBA,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBpE;AAED,KAAK,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAInF"}
package/dist/fonts.js ADDED
@@ -0,0 +1,49 @@
1
+ // Linux font wiring.
2
+ //
3
+ // The Linux release bundles metric-compatible font clones (Segoe UI->Selawik,
4
+ // Arial->Arimo, Times New Roman->Tinos, …) under `<binDir>/fonts/`, together with a
5
+ // self-contained `fonts.conf.template`. On a bare server/container the Windows families
6
+ // (and even the standard fontconfig metric-alias rules) are absent, so a page asking for
7
+ // "Segoe UI" collapses to a single default — a detectable render + an absent-font tell.
8
+ //
9
+ // At launch we materialize the template (substituting the real fonts dir + a writable
10
+ // cache dir) and point FONTCONFIG_FILE at it, so the clones resolve without depending on
11
+ // the host's /etc/fonts. No-op on non-Linux and on older binaries that ship no `fonts/`.
12
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
13
+ import { dirname, join } from "node:path";
14
+ import { tmpdir } from "node:os";
15
+ /** Returns `{ FONTCONFIG_FILE }` on Linux when the font bundle is present, else `{}`. */
16
+ export function linuxFontEnv(exePath) {
17
+ if (process.platform !== "linux")
18
+ return {};
19
+ const fontsDir = join(dirname(exePath), "fonts");
20
+ const template = join(fontsDir, "fonts.conf.template");
21
+ if (!existsSync(template))
22
+ return {};
23
+ try {
24
+ const cacheDir = join(tmpdir(), "cc-fc-cache");
25
+ mkdirSync(cacheDir, { recursive: true });
26
+ const conf = readFileSync(template, "utf8")
27
+ .split("@FONTS_DIR@").join(fontsDir)
28
+ .split("@CACHE_DIR@").join(cacheDir);
29
+ const confPath = join(fontsDir, "fonts.generated.conf");
30
+ writeFileSync(confPath, conf);
31
+ return { FONTCONFIG_FILE: confPath };
32
+ }
33
+ catch {
34
+ return {}; // never block a launch on font wiring
35
+ }
36
+ }
37
+ /**
38
+ * Build the `env` to pass to Playwright's launch so the bundled fonts resolve.
39
+ * Merges process.env (Playwright replaces the env when `env` is set, so we must include it),
40
+ * the bundled-font FONTCONFIG_FILE, then any caller-supplied `env` (caller wins).
41
+ * Returns `undefined` when there is nothing to add (preserve Playwright's default env).
42
+ */
43
+ export function fontLaunchEnv(exePath, userEnv) {
44
+ const fontEnv = linuxFontEnv(exePath);
45
+ if (Object.keys(fontEnv).length === 0 && !userEnv)
46
+ return undefined;
47
+ return { ...process.env, ...fontEnv, ...(userEnv ?? {}) };
48
+ }
49
+ //# sourceMappingURL=fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,EAAE;AACF,8EAA8E;AAC9E,oFAAoF;AACpF,wFAAwF;AACxF,yFAAyF;AACzF,wFAAwF;AACxF,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,yFAAyF;AAEzF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;QAC/C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;aACxC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QACxD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,sCAAsC;IACnD,CAAC;AACH,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAgB;IAC7D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type ChildProcess } from "node:child_process";
1
2
  import type { Browser, BrowserContext, BrowserContextOptions, LaunchOptions as PlaywrightLaunchOptions } from "playwright-core";
2
3
  import { type DownloadOptions } from "./download.js";
3
4
  import { type FingerprintOptions } from "./fingerprint.js";
@@ -97,12 +98,61 @@ export interface LaunchAgentOptions extends PersistentContextOptions {
97
98
  * where the Actor framework can't attach the tab.
98
99
  */
99
100
  export declare function launchAgent(options?: LaunchAgentOptions): Promise<BrowserContext>;
101
+ export interface ServeOptions extends LaunchOptions {
102
+ /** CDP port (default: a free ephemeral port; pass 9222 for the conventional one). */
103
+ port?: number;
104
+ /** Bind address — keep it loopback (default 127.0.0.1) for stealth + safety. */
105
+ host?: string;
106
+ /** `--remote-allow-origins` value (default: the loopback origins only; "*" for trusted local use). */
107
+ allowOrigins?: string;
108
+ /** Persistent profile dir (default: a fresh temp dir, removed on close). */
109
+ userDataDir?: string;
110
+ /** Run headless (default true; false for a visible window). */
111
+ headless?: boolean;
112
+ /** How long to wait for the CDP endpoint to come up (ms; default 30000). */
113
+ readyTimeoutMs?: number;
114
+ }
115
+ /** Handle for a standing clearcote CDP endpoint. Use `.cdpUrl` with any CDP client. */
116
+ export declare class Server {
117
+ private readonly proc;
118
+ readonly host: string;
119
+ readonly port: number;
120
+ private readonly userDataDir;
121
+ private readonly ownUdd;
122
+ constructor(proc: ChildProcess, host: string, port: number, userDataDir: string, ownUdd: boolean);
123
+ /** HTTP CDP base — pass to `connectOverCDP` / `puppeteer.connect({ browserURL })`. */
124
+ get cdpUrl(): string;
125
+ /** The browser-level WebSocket URL (for clients that want `connect({ browserWSEndpoint })`). */
126
+ wsUrl(): Promise<string | undefined>;
127
+ isAlive(): boolean;
128
+ close(): Promise<void>;
129
+ }
130
+ /**
131
+ * Launch Clearcote with a RAW CDP endpoint and return a {@link Server} — the drop-in-for-the-whole-
132
+ * ecosystem mode. Unlike {@link launch} (which spawns and *owns* a Playwright browser), `serve`
133
+ * leaves a standing browser any client attaches to with no code change:
134
+ * ```ts
135
+ * const srv = await serve({ fingerprint: "seed-1", platform: "windows" });
136
+ * const browser = await chromium.connectOverCDP(srv.cdpUrl); // Playwright
137
+ * // or: await puppeteer.connect({ browserURL: srv.cdpUrl }); // Puppeteer
138
+ * // or: point browser-use / Crawl4AI / Stagehand at srv.cdpUrl
139
+ * await srv.close();
140
+ * ```
141
+ * Stays stealthy: the binary is launched **directly** (not through Playwright/Puppeteer), so the
142
+ * `--enable-automation` flag those frameworks add is never present and `navigator.webdriver` stays
143
+ * `false`; the engine's `Runtime.enable` neutralization keeps the attached CDP client undetectable
144
+ * to the page; the port binds to loopback with an origin allowlist; attaching over CDP adds no
145
+ * launch flags, so the served persona is preserved end to end.
146
+ */
147
+ export declare function serve(options?: ServeOptions): Promise<Server>;
100
148
  import { runAgentTask } from "./agent.js";
101
149
  import { listProfiles, loadProfile } from "./profile.js";
102
150
  declare const _default: {
103
151
  launch: typeof launch;
104
152
  launchPersistentContext: typeof launchPersistentContext;
105
153
  launchAgent: typeof launchAgent;
154
+ serve: typeof serve;
155
+ Server: typeof Server;
106
156
  executablePath: typeof executablePath;
107
157
  download: typeof download;
108
158
  runAgentTask: typeof runAgentTask;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,7 +10,9 @@
10
10
  // (headless, proxy, args, timeout, ...) passes through; the fingerprint options below are added
11
11
  // as engine switches.
12
12
  import { chromium } from "playwright-core";
13
- import { cpSync, mkdtempSync } from "node:fs";
13
+ import { cpSync, mkdtempSync, rmSync } from "node:fs";
14
+ import { spawn } from "node:child_process";
15
+ import { createServer } from "node:net";
14
16
  import { tmpdir } from "node:os";
15
17
  import { basename, dirname, join } from "node:path";
16
18
  import { ensureBinary, warmFiles } from "./download.js";
@@ -23,6 +25,7 @@ import { extensionArgs, resolveProxy, mergeFeatureFlags, privacySandboxArgs, qui
23
25
  import { RELEASE, platformRelease } from "./release.js";
24
26
  import { fetchWidevine, seedWidevine, widevineArgs } from "./widevine.js";
25
27
  import { emitCoherenceWarnings } from "./warnings.js";
28
+ import { fontLaunchEnv } from "./fonts.js";
26
29
  export { resolveGeo } from "./geoip.js";
27
30
  export { Profile, listProfiles, loadProfile, PROFILE_DIR } from "./profile.js";
28
31
  export { runAgentTask, agentArgs, OPENROUTER_BASE_URL, } from "./agent.js";
@@ -140,12 +143,15 @@ export async function launch(options = {}) {
140
143
  const exe = await executablePath({ executablePath: exeOption, autoUpdate, cacheDir, quiet });
141
144
  ensureRunnableHere(exe);
142
145
  const headed = pwOptions.headless === false;
146
+ // On Linux, point FONTCONFIG_FILE at the bundled metric-compatible clones (Segoe UI, Arial, …).
147
+ const launchEnv = fontLaunchEnv(exe, pwOptions.env);
143
148
  const browser = await winAvRetry((exePath) => chromium.launch({
144
149
  // Drop Playwright's default --enable-automation so the engine's AutomationControlled feature
145
150
  // stays off (it flips webdriver-adjacent tells). Caller can override via ignoreDefaultArgs.
146
151
  ignoreDefaultArgs: ["--enable-automation"],
147
152
  ...pwOptions,
148
153
  executablePath: exePath,
154
+ ...(launchEnv ? { env: launchEnv } : {}),
149
155
  args: assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), extensionArgs(extensions), proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, args ?? [], proxyOpt),
150
156
  }), exe);
151
157
  if (headed)
@@ -200,10 +206,12 @@ export async function launchPersistentContext(userDataDir, options = {}) {
200
206
  delete opts.ignoreDefaultArgs; // passed explicitly below
201
207
  const exe = await executablePath({ executablePath: exeOption, autoUpdate, cacheDir, quiet });
202
208
  ensureRunnableHere(exe);
209
+ const ctxEnv = fontLaunchEnv(exe, opts.env);
203
210
  const context = await winAvRetry((exePath) => chromium.launchPersistentContext(userDataDir, {
204
211
  ...opts,
205
212
  ignoreDefaultArgs, // keep AutomationControlled off (+ component updater on when widevine)
206
213
  executablePath: exePath,
214
+ ...(ctxEnv ? { env: ctxEnv } : {}),
207
215
  args: assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), extensionArgs(extensions), proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, userArgs, proxyOpt),
208
216
  }), exe);
209
217
  installHumanizeOnContext(context, { humanize, showCursor });
@@ -231,12 +239,175 @@ export async function launchAgent(options = {}) {
231
239
  const dir = userDataDir ?? mkdtempSync(join(tmpdir(), "clearcote-agent-"));
232
240
  return launchPersistentContext(dir, rest);
233
241
  }
242
+ /** A free ephemeral TCP port on loopback. */
243
+ function freePort() {
244
+ return new Promise((resolve, reject) => {
245
+ const s = createServer();
246
+ s.once("error", reject);
247
+ s.listen(0, "127.0.0.1", () => {
248
+ const addr = s.address();
249
+ const port = typeof addr === "object" && addr ? addr.port : 0;
250
+ s.close(() => resolve(port));
251
+ });
252
+ });
253
+ }
254
+ /** Handle for a standing clearcote CDP endpoint. Use `.cdpUrl` with any CDP client. */
255
+ export class Server {
256
+ proc;
257
+ host;
258
+ port;
259
+ userDataDir;
260
+ ownUdd;
261
+ constructor(proc, host, port, userDataDir, ownUdd) {
262
+ this.proc = proc;
263
+ this.host = host;
264
+ this.port = port;
265
+ this.userDataDir = userDataDir;
266
+ this.ownUdd = ownUdd;
267
+ }
268
+ /** HTTP CDP base — pass to `connectOverCDP` / `puppeteer.connect({ browserURL })`. */
269
+ get cdpUrl() {
270
+ return `http://${this.host}:${this.port}`;
271
+ }
272
+ /** The browser-level WebSocket URL (for clients that want `connect({ browserWSEndpoint })`). */
273
+ async wsUrl() {
274
+ try {
275
+ const r = await fetch(`${this.cdpUrl}/json/version`);
276
+ return (await r.json()).webSocketDebuggerUrl;
277
+ }
278
+ catch {
279
+ return undefined;
280
+ }
281
+ }
282
+ isAlive() {
283
+ return this.proc.exitCode === null && !this.proc.killed;
284
+ }
285
+ async close() {
286
+ try {
287
+ this.proc.kill("SIGTERM");
288
+ }
289
+ catch {
290
+ /* ignore */
291
+ }
292
+ if (this.ownUdd) {
293
+ try {
294
+ rmSync(this.userDataDir, { recursive: true, force: true });
295
+ }
296
+ catch {
297
+ /* ignore */
298
+ }
299
+ }
300
+ }
301
+ }
302
+ /**
303
+ * Launch Clearcote with a RAW CDP endpoint and return a {@link Server} — the drop-in-for-the-whole-
304
+ * ecosystem mode. Unlike {@link launch} (which spawns and *owns* a Playwright browser), `serve`
305
+ * leaves a standing browser any client attaches to with no code change:
306
+ * ```ts
307
+ * const srv = await serve({ fingerprint: "seed-1", platform: "windows" });
308
+ * const browser = await chromium.connectOverCDP(srv.cdpUrl); // Playwright
309
+ * // or: await puppeteer.connect({ browserURL: srv.cdpUrl }); // Puppeteer
310
+ * // or: point browser-use / Crawl4AI / Stagehand at srv.cdpUrl
311
+ * await srv.close();
312
+ * ```
313
+ * Stays stealthy: the binary is launched **directly** (not through Playwright/Puppeteer), so the
314
+ * `--enable-automation` flag those frameworks add is never present and `navigator.webdriver` stays
315
+ * `false`; the engine's `Runtime.enable` neutralization keeps the attached CDP client undetectable
316
+ * to the page; the port binds to loopback with an origin allowlist; attaching over CDP adds no
317
+ * launch flags, so the served persona is preserved end to end.
318
+ */
319
+ export async function serve(options = {}) {
320
+ const { port, host = "127.0.0.1", allowOrigins, userDataDir: uddOption, headless = true, readyTimeoutMs = 30000, humanize: _humanize, // Playwright-only; not applicable to a direct launch
321
+ showCursor: _showCursor, ...launchOpts } = options;
322
+ // Build the same stealth arg set as launch(), then launch the binary ourselves.
323
+ const merged = launchOpts.profile
324
+ ? { ...resolveProfileOptions(launchOpts.profile), ...launchOpts }
325
+ : launchOpts;
326
+ const { profile: _profile, extensions, disablePrivacySandbox, executablePath: exeOption, args: userArgs, geoip, autoUpdate, cacheDir, quiet, ...rest } = merged;
327
+ const { fingerprint, rest: afterFp } = splitFingerprintOptions(rest);
328
+ const { agent, rest: pwOptions } = splitAgentOptions(afterFp);
329
+ const proxyOpt = pwOptions.proxy;
330
+ if (geoip)
331
+ await applyGeoip(fingerprint, proxyOpt);
332
+ const { args: proxyArgs } = resolveProxy(proxyOpt);
333
+ emitCoherenceWarnings({ ...fingerprint, proxy: proxyOpt, geoip, headless, _userArgs: userArgs ?? [] }, quiet, process.platform, String(RELEASE.version).split(".")[0]);
334
+ const exe = await executablePath({ executablePath: exeOption, autoUpdate, cacheDir, quiet });
335
+ ensureRunnableHere(exe);
336
+ const engineArgs = assembleArgs(fingerprintArgs(fingerprint), agentArgs(agent), extensionArgs(extensions), proxyArgs, disablePrivacySandbox, fingerprint.webrtcIp, userArgs ?? [], proxyOpt);
337
+ const resolvedPort = port ?? (await freePort());
338
+ const ownUdd = !uddOption;
339
+ const userDataDir = uddOption ?? mkdtempSync(join(tmpdir(), "clearcote-serve-"));
340
+ const origins = allowOrigins ?? `http://${host}:${resolvedPort},http://localhost:${resolvedPort}`;
341
+ const cdpArgs = [
342
+ `--remote-debugging-port=${resolvedPort}`,
343
+ `--remote-debugging-address=${host}`,
344
+ `--remote-allow-origins=${origins}`,
345
+ `--user-data-dir=${userDataDir}`,
346
+ ];
347
+ if (headless)
348
+ cdpArgs.push("--headless=new");
349
+ if (proxyOpt?.server)
350
+ cdpArgs.push(`--proxy-server=${proxyOpt.server}`);
351
+ const env = { ...process.env, ...(fontLaunchEnv(exe, undefined) ?? {}) };
352
+ // Launched DIRECTLY (no Playwright) => no --enable-automation => navigator.webdriver stays false.
353
+ // Wrap in winAvRetry so a just-extracted binary survives the Windows SxS/AV first-launch race
354
+ // ("spawn UNKNOWN"), same as launch(): warm + back off + retry, then recover from a fresh copy.
355
+ const proc = await winAvRetry((exePath) => new Promise((resolve, reject) => {
356
+ let settled = false;
357
+ const p = spawn(exePath, [...engineArgs, ...cdpArgs], { env, stdio: "ignore" });
358
+ p.once("error", (err) => { if (!settled) {
359
+ settled = true;
360
+ reject(err);
361
+ } });
362
+ p.once("spawn", () => { if (!settled) {
363
+ settled = true;
364
+ resolve(p);
365
+ } });
366
+ }), exe);
367
+ const deadline = Date.now() + readyTimeoutMs;
368
+ let ready = false;
369
+ while (Date.now() < deadline) {
370
+ if (proc.exitCode !== null)
371
+ break;
372
+ try {
373
+ await fetch(`http://${host}:${resolvedPort}/json/version`);
374
+ ready = true;
375
+ break;
376
+ }
377
+ catch {
378
+ /* not up yet */
379
+ }
380
+ await new Promise((r) => setTimeout(r, 250));
381
+ }
382
+ if (!ready) {
383
+ try {
384
+ proc.kill();
385
+ }
386
+ catch { /* ignore */ }
387
+ if (ownUdd) {
388
+ try {
389
+ rmSync(userDataDir, { recursive: true, force: true });
390
+ }
391
+ catch { /* ignore */ }
392
+ }
393
+ throw new Error(`clearcote serve: CDP endpoint at http://${host}:${resolvedPort} did not come up within ${readyTimeoutMs}ms`);
394
+ }
395
+ const srv = new Server(proc, host, resolvedPort, userDataDir, ownUdd);
396
+ process.once("exit", () => { void srv.close(); });
397
+ if (!quiet) {
398
+ process.stderr.write(`[clearcote] CDP endpoint ready: ${srv.cdpUrl}\n` +
399
+ ` attach any client: connectOverCDP(${JSON.stringify(srv.cdpUrl)}) / puppeteer.connect({ browserURL })\n`);
400
+ }
401
+ return srv;
402
+ }
234
403
  import { runAgentTask } from "./agent.js";
235
404
  import { listProfiles, loadProfile } from "./profile.js";
236
405
  export default {
237
406
  launch,
238
407
  launchPersistentContext,
239
408
  launchAgent,
409
+ serve,
410
+ Server,
240
411
  executablePath,
241
412
  download,
242
413
  runAgentTask,
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/release.js CHANGED
@@ -7,26 +7,26 @@
7
7
  // signed asset + its SHA-256 (the trust anchor) + the inner-binary hash (defense in depth) + how to
8
8
  // unpack it. Windows and Linux ship from their own release tags.
9
9
  const WINDOWS = {
10
- tag: "v0.1.0-pre.18",
10
+ tag: "v0.1.0-pre.19",
11
11
  version: "149.0.7827.114",
12
12
  asset: "clearcote-149.0.7827.114-windows-x64.zip",
13
- url: "https://github.com/clearcotelabs/clearcote-browser/releases/download/v0.1.0-pre.18/clearcote-149.0.7827.114-windows-x64.zip",
14
- sha256: "935d43daba8ce6f336b4ede21b326744f7804c2fb4f0384bafa2d2a80a71a88c",
13
+ url: "https://github.com/clearcotelabs/clearcote-browser/releases/download/v0.1.0-pre.19/clearcote-149.0.7827.114-windows-x64.zip",
14
+ sha256: "da47f325053a98130baf6f4907e13ba5135d37645fb5c150e59c8081e7df48b3",
15
15
  exeSha256: "09a9f5ed46be45b54babc91872256fcdd5ef61cef6bf65cbec3928cbb38ee17a",
16
- size: 242649591,
16
+ size: 242656951,
17
17
  os: "win32",
18
18
  archive: "zip",
19
19
  binary: "chrome.exe",
20
20
  assetGlob: "windows-x64",
21
21
  };
22
22
  const LINUX = {
23
- tag: "v0.1.0-pre.18",
23
+ tag: "v0.1.0-pre.19",
24
24
  version: "149.0.7827.114",
25
25
  asset: "clearcote-149.0.7827.114-linux-x64.tar.xz",
26
- url: "https://github.com/clearcotelabs/clearcote-browser/releases/download/v0.1.0-pre.18/clearcote-149.0.7827.114-linux-x64.tar.xz",
27
- sha256: "fd96497e921b4fc9f384a5c1377896c8ee7e8a3a1991835c0256b010811e97aa",
28
- exeSha256: "f4e8c1161938769d6a6c50aee1497c76b4f6723a6a0a3f02a19e0b5a9d4b141a",
29
- size: 142700100,
26
+ url: "https://github.com/clearcotelabs/clearcote-browser/releases/download/v0.1.0-pre.19/clearcote-149.0.7827.114-linux-x64.tar.xz",
27
+ sha256: "1be5a9f83f8f8217d97caf52553b5fe8e24a3360dfc83c471ba91d2d95a97ac1",
28
+ exeSha256: "7c5ea6ce563bd6c12642f12b1c85d308c09096814e9d7fcd59dd360fdfe6bb63",
29
+ size: 146861776,
30
30
  os: "linux",
31
31
  archive: "tar.xz",
32
32
  binary: "chrome",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clearcote",
3
- "version": "0.12.1",
3
+ "version": "0.14.0",
4
4
  "description": "Playwright drop-in for the Clearcote anti-fingerprint Chromium build. launch() returns a standard Playwright Browser backed by the verified Clearcote binary, which is auto-downloaded and SHA-256 checked.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",