@openacme/browser 0.4.0 → 0.5.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/dist/binaries.d.ts +63 -0
- package/dist/binaries.d.ts.map +1 -0
- package/dist/binaries.js +159 -0
- package/dist/binaries.js.map +1 -0
- package/dist/chrome.d.ts +22 -3
- package/dist/chrome.d.ts.map +1 -1
- package/dist/chrome.js +117 -16
- package/dist/chrome.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +40 -40
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +238 -253
- package/dist/manager.js.map +1 -1
- package/dist/providers/base.d.ts +44 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +2 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/browser-use.d.ts +24 -0
- package/dist/providers/browser-use.d.ts.map +1 -0
- package/dist/providers/browser-use.js +110 -0
- package/dist/providers/browser-use.js.map +1 -0
- package/dist/providers/browserbase.d.ts +29 -0
- package/dist/providers/browserbase.d.ts.map +1 -0
- package/dist/providers/browserbase.js +126 -0
- package/dist/providers/browserbase.js.map +1 -0
- package/dist/providers/firecrawl.d.ts +22 -0
- package/dist/providers/firecrawl.d.ts.map +1 -0
- package/dist/providers/firecrawl.js +101 -0
- package/dist/providers/firecrawl.js.map +1 -0
- package/dist/providers/index.d.ts +20 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +27 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/local.d.ts +35 -0
- package/dist/providers/local.d.ts.map +1 -0
- package/dist/providers/local.js +132 -0
- package/dist/providers/local.js.map +1 -0
- package/dist/types.d.ts +27 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { BrowserContext } from "playwright-core";
|
|
2
|
+
import { type BrowserFamily } from "./chrome.js";
|
|
3
|
+
/**
|
|
4
|
+
* The local-browser kind. "chromium" prefers a system Chrome / Brave /
|
|
5
|
+
* Edge / Chromium install; if none is found, falls back to Playwright's
|
|
6
|
+
* bundled Chromium (auto-downloaded on demand). "camoufox" uses the
|
|
7
|
+
* `camoufox-js` package's Firefox-based stealth browser via Playwright's
|
|
8
|
+
* launchPersistentContext API.
|
|
9
|
+
*/
|
|
10
|
+
export type LocalBrowserKind = "chromium" | "camoufox";
|
|
11
|
+
/**
|
|
12
|
+
* Resolved Chromium-family binary spawnable directly via launchChrome.
|
|
13
|
+
* Used for the "chromium" kind and the executablePath override. Family
|
|
14
|
+
* is always "chromium" — the only case Firefox is launched bare-spawn
|
|
15
|
+
* would be a custom executablePath, which we treat as chromium-family
|
|
16
|
+
* because the safer profile format mismatch falls back to a clean dir.
|
|
17
|
+
*/
|
|
18
|
+
export interface SpawnableBinary {
|
|
19
|
+
kind: "spawn";
|
|
20
|
+
exe: string;
|
|
21
|
+
/** Extra CLI args required by the binary (none for stock Chromium). */
|
|
22
|
+
extraArgs: string[];
|
|
23
|
+
family: BrowserFamily;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A factory that produces a Playwright-managed BrowserContext. Used for
|
|
27
|
+
* Camoufox, whose Firefox-based binary doesn't speak CDP at all — we go
|
|
28
|
+
* through Playwright's firefox.launchPersistentContext path. Bypassing the
|
|
29
|
+
* manager's CDP attach is also what makes this resilient to the macOS
|
|
30
|
+
* hardened-runtime traps that block bare-child-process spawns of
|
|
31
|
+
* adhoc-signed browsers.
|
|
32
|
+
*/
|
|
33
|
+
export interface ContextLaunchable {
|
|
34
|
+
kind: "context";
|
|
35
|
+
family: BrowserFamily;
|
|
36
|
+
launch(opts: {
|
|
37
|
+
userDataDir: string;
|
|
38
|
+
headless: boolean;
|
|
39
|
+
}): Promise<BrowserContext>;
|
|
40
|
+
}
|
|
41
|
+
export type ResolvedLocalBinary = SpawnableBinary | ContextLaunchable;
|
|
42
|
+
export declare function resolveLocalBinary(opts: {
|
|
43
|
+
kind: LocalBrowserKind;
|
|
44
|
+
executablePathOverride?: string;
|
|
45
|
+
onProgress?: (msg: string) => void;
|
|
46
|
+
}): Promise<ResolvedLocalBinary>;
|
|
47
|
+
/**
|
|
48
|
+
* True when the Camoufox binary is already fetched. Uses the package's
|
|
49
|
+
* own installedVerStr() to stay correct on every platform. Synchronous
|
|
50
|
+
* — safe to call from request handlers. Returns false if the pkgman
|
|
51
|
+
* module isn't loaded yet (caller can warm it with `loadCamoufoxPkgman`).
|
|
52
|
+
*/
|
|
53
|
+
export declare function isCamoufoxInstalled(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Kick off a Camoufox binary download if not already installed. Idempotent —
|
|
56
|
+
* concurrent callers share one in-flight promise. Fire-and-forget from the
|
|
57
|
+
* caller's perspective; errors are swallowed so a failed prefetch doesn't
|
|
58
|
+
* crash the server (the binary just downloads later on first agent use).
|
|
59
|
+
*/
|
|
60
|
+
export declare function prefetchCamoufox(): Promise<void>;
|
|
61
|
+
/** True while a prefetch is running — surfaced in /api/browser. */
|
|
62
|
+
export declare function isCamoufoxPrefetching(): boolean;
|
|
63
|
+
//# sourceMappingURL=binaries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binaries.d.ts","sourceRoot":"","sources":["../src/binaries.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAsCvE;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACnF;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEtE,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,IAAI,EAAE,gBAAgB,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgB/B;AA+CD;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAS7C;AAyBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYtD;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
package/dist/binaries.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
import { chromium } from "playwright-core";
|
|
4
|
+
import { findChromeExecutable } from "./chrome.js";
|
|
5
|
+
let cachedCamoufoxMod = null;
|
|
6
|
+
async function loadCamoufoxJs() {
|
|
7
|
+
if (cachedCamoufoxMod)
|
|
8
|
+
return cachedCamoufoxMod;
|
|
9
|
+
try {
|
|
10
|
+
cachedCamoufoxMod = (await import("camoufox-js"));
|
|
11
|
+
return cachedCamoufoxMod;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
throw new Error("Camoufox not installed. The host environment is missing the `camoufox-js` package.");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
let cachedCamoufoxPkgman = null;
|
|
18
|
+
async function loadCamoufoxPkgman() {
|
|
19
|
+
if (cachedCamoufoxPkgman)
|
|
20
|
+
return cachedCamoufoxPkgman;
|
|
21
|
+
// Deep import into the package. Bypasses the public surface to reach
|
|
22
|
+
// the pkgman helpers (camoufoxPath, installedVerStr) — there's no
|
|
23
|
+
// top-level fetch API.
|
|
24
|
+
cachedCamoufoxPkgman = (await import("camoufox-js/dist/pkgman.js"));
|
|
25
|
+
return cachedCamoufoxPkgman;
|
|
26
|
+
}
|
|
27
|
+
export async function resolveLocalBinary(opts) {
|
|
28
|
+
if (opts.executablePathOverride) {
|
|
29
|
+
if (!fs.existsSync(opts.executablePathOverride)) {
|
|
30
|
+
throw new Error(`browser.executablePath does not exist: ${opts.executablePathOverride}`);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
kind: "spawn",
|
|
34
|
+
exe: opts.executablePathOverride,
|
|
35
|
+
extraArgs: [],
|
|
36
|
+
family: "chromium",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (opts.kind === "camoufox") {
|
|
40
|
+
return resolveCamoufoxLauncher(opts.onProgress);
|
|
41
|
+
}
|
|
42
|
+
return resolveChromiumSpawnable(opts.onProgress);
|
|
43
|
+
}
|
|
44
|
+
async function resolveChromiumSpawnable(onProgress) {
|
|
45
|
+
const base = { kind: "spawn", extraArgs: [], family: "chromium" };
|
|
46
|
+
const systemPath = findChromeExecutable();
|
|
47
|
+
if (systemPath)
|
|
48
|
+
return { ...base, exe: systemPath };
|
|
49
|
+
const pwPath = chromium.executablePath();
|
|
50
|
+
if (pwPath && fs.existsSync(pwPath))
|
|
51
|
+
return { ...base, exe: pwPath };
|
|
52
|
+
onProgress?.("Installing Chromium (one-time, ~120MB)…");
|
|
53
|
+
await runNpx(["--no-install", "playwright", "install", "chromium"]);
|
|
54
|
+
const installedPath = chromium.executablePath();
|
|
55
|
+
if (installedPath && fs.existsSync(installedPath)) {
|
|
56
|
+
return { ...base, exe: installedPath };
|
|
57
|
+
}
|
|
58
|
+
throw new Error("Failed to install Chromium. Run `npx playwright install chromium` manually, or set browser.executablePath.");
|
|
59
|
+
}
|
|
60
|
+
async function resolveCamoufoxLauncher(onProgress) {
|
|
61
|
+
const m = await loadCamoufoxJs();
|
|
62
|
+
if (typeof m.launchOptions !== "function") {
|
|
63
|
+
throw new Error("camoufox-js does not expose launchOptions(); package version is unsupported.");
|
|
64
|
+
}
|
|
65
|
+
if (!(await isCamoufoxInstalledAsync())) {
|
|
66
|
+
onProgress?.("Installing Camoufox (one-time, ~300MB)…");
|
|
67
|
+
await fetchCamoufoxBinary();
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
kind: "context",
|
|
71
|
+
family: "firefox",
|
|
72
|
+
async launch({ userDataDir, headless }) {
|
|
73
|
+
const { firefox } = await import("playwright-core");
|
|
74
|
+
const options = await m.launchOptions({ headless });
|
|
75
|
+
return firefox.launchPersistentContext(userDataDir, options);
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* True when the Camoufox binary is already fetched. Uses the package's
|
|
81
|
+
* own installedVerStr() to stay correct on every platform. Synchronous
|
|
82
|
+
* — safe to call from request handlers. Returns false if the pkgman
|
|
83
|
+
* module isn't loaded yet (caller can warm it with `loadCamoufoxPkgman`).
|
|
84
|
+
*/
|
|
85
|
+
export function isCamoufoxInstalled() {
|
|
86
|
+
const p = cachedCamoufoxPkgman;
|
|
87
|
+
if (!p || typeof p.installedVerStr !== "function")
|
|
88
|
+
return false;
|
|
89
|
+
try {
|
|
90
|
+
p.installedVerStr();
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Async variant that warms the pkgman module first. */
|
|
98
|
+
async function isCamoufoxInstalledAsync() {
|
|
99
|
+
await loadCamoufoxPkgman();
|
|
100
|
+
return isCamoufoxInstalled();
|
|
101
|
+
}
|
|
102
|
+
async function fetchCamoufoxBinary() {
|
|
103
|
+
const p = await loadCamoufoxPkgman();
|
|
104
|
+
if (typeof p.CamoufoxFetcher !== "function") {
|
|
105
|
+
throw new Error("camoufox-js pkgman missing CamoufoxFetcher; package version unsupported.");
|
|
106
|
+
}
|
|
107
|
+
// CamoufoxFetcher.install() is the only awaitable install path.
|
|
108
|
+
// camoufoxPath(true) fire-and-forgets the install, which makes our
|
|
109
|
+
// prefetch promise resolve before the binary is on disk.
|
|
110
|
+
const fetcher = new p.CamoufoxFetcher();
|
|
111
|
+
if (typeof fetcher.init === "function")
|
|
112
|
+
await fetcher.init();
|
|
113
|
+
await fetcher.install();
|
|
114
|
+
}
|
|
115
|
+
let camoufoxPrefetchInFlight = null;
|
|
116
|
+
/**
|
|
117
|
+
* Kick off a Camoufox binary download if not already installed. Idempotent —
|
|
118
|
+
* concurrent callers share one in-flight promise. Fire-and-forget from the
|
|
119
|
+
* caller's perspective; errors are swallowed so a failed prefetch doesn't
|
|
120
|
+
* crash the server (the binary just downloads later on first agent use).
|
|
121
|
+
*/
|
|
122
|
+
export async function prefetchCamoufox() {
|
|
123
|
+
await loadCamoufoxPkgman().catch(() => { });
|
|
124
|
+
if (isCamoufoxInstalled())
|
|
125
|
+
return;
|
|
126
|
+
if (camoufoxPrefetchInFlight)
|
|
127
|
+
return camoufoxPrefetchInFlight;
|
|
128
|
+
camoufoxPrefetchInFlight = fetchCamoufoxBinary()
|
|
129
|
+
.catch(() => {
|
|
130
|
+
// best-effort; agent's first browser_navigate will retry
|
|
131
|
+
})
|
|
132
|
+
.finally(() => {
|
|
133
|
+
camoufoxPrefetchInFlight = null;
|
|
134
|
+
});
|
|
135
|
+
return camoufoxPrefetchInFlight;
|
|
136
|
+
}
|
|
137
|
+
/** True while a prefetch is running — surfaced in /api/browser. */
|
|
138
|
+
export function isCamoufoxPrefetching() {
|
|
139
|
+
return camoufoxPrefetchInFlight !== null;
|
|
140
|
+
}
|
|
141
|
+
async function runNpx(args) {
|
|
142
|
+
return new Promise((resolve, reject) => {
|
|
143
|
+
const proc = spawn("npx", args, {
|
|
144
|
+
stdio: ["ignore", "ignore", "pipe"],
|
|
145
|
+
env: process.env,
|
|
146
|
+
});
|
|
147
|
+
let stderr = "";
|
|
148
|
+
proc.stderr?.on("data", (chunk) => {
|
|
149
|
+
stderr += chunk.toString();
|
|
150
|
+
});
|
|
151
|
+
proc.once("error", reject);
|
|
152
|
+
proc.once("exit", (code) => {
|
|
153
|
+
if (code === 0)
|
|
154
|
+
return resolve();
|
|
155
|
+
reject(new Error(`npx ${args.join(" ")} failed (exit ${code}): ${stderr.slice(-500)}`));
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=binaries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binaries.js","sourceRoot":"","sources":["../src/binaries.ts"],"names":[],"mappings":"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"}
|
package/dist/chrome.d.ts
CHANGED
|
@@ -20,11 +20,21 @@ export declare function chromeInstallHint(): string;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function clearStaleSingletonLocks(userDataDir: string): boolean;
|
|
22
22
|
export declare function buildLaunchArgs(opts: {
|
|
23
|
-
cdpPort: number;
|
|
24
23
|
userDataDir: string;
|
|
25
24
|
headless: boolean;
|
|
26
25
|
noSandbox: boolean;
|
|
26
|
+
/** Extra args from the binary's wrapper (e.g. CloakBrowser stealth flags). */
|
|
27
|
+
extraArgs?: string[];
|
|
27
28
|
}): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Read the port Chrome wrote to <userDataDir>/DevToolsActivePort. The file
|
|
31
|
+
* has two lines: `<port>\n/devtools/browser/<uuid>`. Polled because Chrome
|
|
32
|
+
* writes it some milliseconds after we spawn the process.
|
|
33
|
+
*/
|
|
34
|
+
export declare function readDevToolsActivePort(opts: {
|
|
35
|
+
userDataDir: string;
|
|
36
|
+
budgetMs: number;
|
|
37
|
+
}): Promise<number>;
|
|
28
38
|
/**
|
|
29
39
|
* Poll /json/version until Chrome's CDP is up. Returns the
|
|
30
40
|
* `webSocketDebuggerUrl` advertised by Chrome.
|
|
@@ -35,12 +45,21 @@ export declare function pollForCdpReady(opts: {
|
|
|
35
45
|
}): Promise<string>;
|
|
36
46
|
export declare function launchChrome(opts: {
|
|
37
47
|
exe: string;
|
|
38
|
-
cdpPort: number;
|
|
39
48
|
userDataDir: string;
|
|
40
49
|
headless: boolean;
|
|
41
50
|
noSandbox: boolean;
|
|
51
|
+
extraArgs?: string[];
|
|
42
52
|
}): Promise<RunningChrome>;
|
|
43
53
|
export declare function killChrome(running: RunningChrome): Promise<void>;
|
|
44
|
-
|
|
54
|
+
/** Browser engine family — profile formats are incompatible across these. */
|
|
55
|
+
export type BrowserFamily = "chromium" | "firefox";
|
|
56
|
+
/**
|
|
57
|
+
* <dataDir>/agents/<agentId>/browser-profiles/<family>/ — one profile per
|
|
58
|
+
* agent per engine family. Chromium-family browsers (Chrome / Brave / Edge
|
|
59
|
+
* / CloakBrowser / patched builds) share the "chromium" dir so a user can
|
|
60
|
+
* swap among them and keep their logins; Camoufox / Firefox-based browsers
|
|
61
|
+
* use the "firefox" dir so the profile format never mismatches the binary.
|
|
62
|
+
*/
|
|
63
|
+
export declare function resolveUserDataDir(dataDir: string, agentId: string, family: BrowserFamily): string;
|
|
45
64
|
export declare function resolveExecutableOrThrow(config: BrowserConfig): string;
|
|
46
65
|
//# sourceMappingURL=chrome.d.ts.map
|
package/dist/chrome.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../src/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+CrE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAW1C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAwBrE;AAaD,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../src/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+CrE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAW1C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAwBrE;AAaD,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,MAAM,EAAE,CAwCX;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlB;AAqCD,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsEzB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BtE;AAED,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,GACpB,MAAM,CAGR;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAQtE"}
|
package/dist/chrome.js
CHANGED
|
@@ -118,8 +118,11 @@ function processExists(pid) {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
export function buildLaunchArgs(opts) {
|
|
121
|
+
// Port 0 → Chrome picks an ephemeral one and writes it to
|
|
122
|
+
// <userDataDir>/DevToolsActivePort. Lets us run N agents in parallel
|
|
123
|
+
// without coordinating port assignment.
|
|
121
124
|
const args = [
|
|
122
|
-
|
|
125
|
+
"--remote-debugging-port=0",
|
|
123
126
|
`--user-data-dir=${opts.userDataDir}`,
|
|
124
127
|
"--no-first-run",
|
|
125
128
|
"--no-default-browser-check",
|
|
@@ -141,8 +144,41 @@ export function buildLaunchArgs(opts) {
|
|
|
141
144
|
if (process.platform === "linux") {
|
|
142
145
|
args.push("--disable-dev-shm-usage");
|
|
143
146
|
}
|
|
147
|
+
if (opts.extraArgs?.length) {
|
|
148
|
+
// Append + dedupe by flag-name (everything before the first `=`). Later
|
|
149
|
+
// entries (extra args) win — wrapper-specific flags can override our
|
|
150
|
+
// generic defaults.
|
|
151
|
+
const seen = new Map(args.map((a) => [a.split("=")[0] ?? a, a]));
|
|
152
|
+
for (const a of opts.extraArgs) {
|
|
153
|
+
seen.set(a.split("=")[0] ?? a, a);
|
|
154
|
+
}
|
|
155
|
+
return Array.from(seen.values());
|
|
156
|
+
}
|
|
144
157
|
return args;
|
|
145
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Read the port Chrome wrote to <userDataDir>/DevToolsActivePort. The file
|
|
161
|
+
* has two lines: `<port>\n/devtools/browser/<uuid>`. Polled because Chrome
|
|
162
|
+
* writes it some milliseconds after we spawn the process.
|
|
163
|
+
*/
|
|
164
|
+
export async function readDevToolsActivePort(opts) {
|
|
165
|
+
const filePath = path.join(opts.userDataDir, "DevToolsActivePort");
|
|
166
|
+
const start = Date.now();
|
|
167
|
+
while (Date.now() - start < opts.budgetMs) {
|
|
168
|
+
try {
|
|
169
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
170
|
+
const firstLine = raw.split("\n", 1)[0]?.trim();
|
|
171
|
+
const port = firstLine ? Number.parseInt(firstLine, 10) : NaN;
|
|
172
|
+
if (Number.isInteger(port) && port > 0 && port < 65_536)
|
|
173
|
+
return port;
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// File not written yet
|
|
177
|
+
}
|
|
178
|
+
await sleep(50);
|
|
179
|
+
}
|
|
180
|
+
throw new Error(`Chrome did not write DevToolsActivePort to ${filePath} within ${opts.budgetMs}ms`);
|
|
181
|
+
}
|
|
146
182
|
/**
|
|
147
183
|
* Poll /json/version until Chrome's CDP is up. Returns the
|
|
148
184
|
* `webSocketDebuggerUrl` advertised by Chrome.
|
|
@@ -171,35 +207,91 @@ export async function pollForCdpReady(opts) {
|
|
|
171
207
|
function sleep(ms) {
|
|
172
208
|
return new Promise((r) => setTimeout(r, ms));
|
|
173
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Strip env vars that confuse a child Chromium's launch on macOS:
|
|
212
|
+
* - `__CFBundleIdentifier` is inherited from the parent .app bundle and
|
|
213
|
+
* trips the hardened-runtime check on adhoc-signed Chromium forks
|
|
214
|
+
* (CloakBrowser, patched Chromium). The child aborts with SIGTRAP at
|
|
215
|
+
* dyld init time. macOS expects the child to own its bundle ID.
|
|
216
|
+
* - `DYLD_*` are stripped by the loader for hardened binaries anyway,
|
|
217
|
+
* but a few Apple-internal variants can still cause warnings or
|
|
218
|
+
* unexpected behavior; cleanest to drop them here.
|
|
219
|
+
* - `MallocNanoZone=0` disables the Nano malloc zone — some allocators
|
|
220
|
+
* in patched Chromium builds assume it's enabled and abort otherwise.
|
|
221
|
+
*/
|
|
222
|
+
function sanitizeChromeEnv(env) {
|
|
223
|
+
if (process.platform !== "darwin")
|
|
224
|
+
return env;
|
|
225
|
+
// Strip env vars that confuse a child Chromium on macOS:
|
|
226
|
+
// - `__CFBundleIdentifier` inherited from a parent .app bundle confuses
|
|
227
|
+
// Launch Services about who the child is.
|
|
228
|
+
// - `DYLD_*` is stripped by the loader for hardened binaries anyway;
|
|
229
|
+
// dropping it here avoids inherited overrides from dev tooling.
|
|
230
|
+
// - `MallocNanoZone=0` disables the Nano malloc some Chromium builds
|
|
231
|
+
// assume is on.
|
|
232
|
+
const cleaned = {};
|
|
233
|
+
for (const [k, v] of Object.entries(env)) {
|
|
234
|
+
if (k === "__CFBundleIdentifier")
|
|
235
|
+
continue;
|
|
236
|
+
if (k.startsWith("DYLD_"))
|
|
237
|
+
continue;
|
|
238
|
+
if (k === "MallocNanoZone" && v === "0")
|
|
239
|
+
continue;
|
|
240
|
+
cleaned[k] = v;
|
|
241
|
+
}
|
|
242
|
+
return cleaned;
|
|
243
|
+
}
|
|
174
244
|
export async function launchChrome(opts) {
|
|
175
245
|
fs.mkdirSync(opts.userDataDir, { recursive: true });
|
|
176
246
|
clearStaleSingletonLocks(opts.userDataDir);
|
|
247
|
+
// Pre-existing DevToolsActivePort would confuse the port reader below;
|
|
248
|
+
// Chrome rewrites this file on its own boot, but only after a delay.
|
|
249
|
+
try {
|
|
250
|
+
fs.rmSync(path.join(opts.userDataDir, "DevToolsActivePort"), { force: true });
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
// best-effort
|
|
254
|
+
}
|
|
177
255
|
const args = buildLaunchArgs(opts);
|
|
178
256
|
const proc = spawn(opts.exe, args, {
|
|
257
|
+
// Piped stderr WITH a drain — without the drain, the 64KB OS buffer
|
|
258
|
+
// fills and chatty Chromium builds (CloakBrowser, patched forks) block
|
|
259
|
+
// on stderr writes and stop servicing CDP.
|
|
179
260
|
stdio: ["ignore", "ignore", "pipe"],
|
|
180
|
-
|
|
181
|
-
|
|
261
|
+
// Own process group — keeps Chromium alive across our parent's signal
|
|
262
|
+
// handling. unref below; BrowserManager owns shutdown via killChrome().
|
|
263
|
+
detached: true,
|
|
264
|
+
env: sanitizeChromeEnv(process.env),
|
|
265
|
+
});
|
|
266
|
+
proc.unref();
|
|
267
|
+
proc.stderr?.on("data", () => {
|
|
268
|
+
// Drain only — without a reader the 64KB OS buffer fills and Chrome
|
|
269
|
+
// blocks on writes (some patched forks log heavily on startup).
|
|
182
270
|
});
|
|
183
271
|
let earlyExit = null;
|
|
184
272
|
proc.once("exit", (code, signal) => {
|
|
185
273
|
earlyExit = { code, signal };
|
|
186
274
|
});
|
|
187
|
-
|
|
275
|
+
const earlyExitWatcher = () => new Promise((_, reject) => {
|
|
276
|
+
const id = setInterval(() => {
|
|
277
|
+
if (earlyExit) {
|
|
278
|
+
clearInterval(id);
|
|
279
|
+
reject(new Error(`Chrome exited during startup (code=${earlyExit.code} signal=${earlyExit.signal})`));
|
|
280
|
+
}
|
|
281
|
+
}, 100);
|
|
282
|
+
});
|
|
188
283
|
try {
|
|
284
|
+
const cdpPort = await Promise.race([
|
|
285
|
+
readDevToolsActivePort({ userDataDir: opts.userDataDir, budgetMs: 10_000 }),
|
|
286
|
+
earlyExitWatcher(),
|
|
287
|
+
]);
|
|
189
288
|
const wsUrl = await Promise.race([
|
|
190
|
-
pollForCdpReady({ cdpPort
|
|
191
|
-
|
|
192
|
-
const id = setInterval(() => {
|
|
193
|
-
if (earlyExit) {
|
|
194
|
-
clearInterval(id);
|
|
195
|
-
reject(new Error(`Chrome exited during startup (code=${earlyExit.code} signal=${earlyExit.signal})`));
|
|
196
|
-
}
|
|
197
|
-
}, 100);
|
|
198
|
-
}),
|
|
289
|
+
pollForCdpReady({ cdpPort, budgetMs: 15_000 }),
|
|
290
|
+
earlyExitWatcher(),
|
|
199
291
|
]);
|
|
200
292
|
return {
|
|
201
293
|
proc,
|
|
202
|
-
cdpPort
|
|
294
|
+
cdpPort,
|
|
203
295
|
cdpUrl: wsUrl,
|
|
204
296
|
userDataDir: opts.userDataDir,
|
|
205
297
|
};
|
|
@@ -247,8 +339,17 @@ export async function killChrome(running) {
|
|
|
247
339
|
}, 3000);
|
|
248
340
|
});
|
|
249
341
|
}
|
|
250
|
-
|
|
251
|
-
|
|
342
|
+
/**
|
|
343
|
+
* <dataDir>/agents/<agentId>/browser-profiles/<family>/ — one profile per
|
|
344
|
+
* agent per engine family. Chromium-family browsers (Chrome / Brave / Edge
|
|
345
|
+
* / CloakBrowser / patched builds) share the "chromium" dir so a user can
|
|
346
|
+
* swap among them and keep their logins; Camoufox / Firefox-based browsers
|
|
347
|
+
* use the "firefox" dir so the profile format never mismatches the binary.
|
|
348
|
+
*/
|
|
349
|
+
export function resolveUserDataDir(dataDir, agentId, family) {
|
|
350
|
+
if (!agentId)
|
|
351
|
+
throw new Error("resolveUserDataDir requires an agentId");
|
|
352
|
+
return path.join(dataDir, "agents", agentId, "browser-profiles", family);
|
|
252
353
|
}
|
|
253
354
|
export function resolveExecutableOrThrow(config) {
|
|
254
355
|
const exe = findChromeExecutable(config.executablePath);
|
package/dist/chrome.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../src/chrome.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../src/chrome.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export { BrowserManager } from "./manager.js";
|
|
2
|
-
export
|
|
2
|
+
export { resolveLocalBinary, isCamoufoxInstalled, prefetchCamoufox, isCamoufoxPrefetching, } from "./binaries.js";
|
|
3
|
+
export type { LocalBrowserKind } from "./binaries.js";
|
|
4
|
+
export { createBrowserProvider, PROVIDER_NAMES, LocalChromeProvider, BrowserbaseProvider, BrowserUseProvider, FirecrawlProvider, } from "./providers/index.js";
|
|
5
|
+
export type { AcquiredBrowser, BrowserProvider, ProviderName, } from "./providers/index.js";
|
|
6
|
+
export type { AgentBrowserOverrides, BrowserConfig, TabId, TabInfo, ConsoleEntry, NavigateParams, NavigateResult, SnapshotParams, SnapshotResult, ClickParams, TypeParams, PressKeyParams, ScreenshotParams, ScreenshotResult, WaitForParams, EvaluateParams, EvaluateResult, ConsoleMessagesParams, ConsoleMessagesResult, HoverParams, DragParams, SelectOptionParams, SelectOptionResult, FillFormField, FillFormParams, FillFormResult, FileUploadParams, HandleDialogParams, DialogResult, ResizeParams, ResizeResult, SaveAsPdfParams, PdfResult, ClickCoordsParams, NavHistoryResult, ActionResult, } from "./types.js";
|
|
3
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,aAAa,EACb,KAAK,EACL,OAAO,EACP,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,KAAK,EACL,OAAO,EACP,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { BrowserManager } from "./manager.js";
|
|
2
|
+
export { resolveLocalBinary, isCamoufoxInstalled, prefetchCamoufox, isCamoufoxPrefetching, } from "./binaries.js";
|
|
3
|
+
export { createBrowserProvider, PROVIDER_NAMES, LocalChromeProvider, BrowserbaseProvider, BrowserUseProvider, FirecrawlProvider, } from "./providers/index.js";
|
|
2
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
|