@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,27 @@
|
|
|
1
|
+
import { BrowserUseProvider } from "./browser-use.js";
|
|
2
|
+
import { BrowserbaseProvider } from "./browserbase.js";
|
|
3
|
+
import { FirecrawlProvider } from "./firecrawl.js";
|
|
4
|
+
import { LocalChromeProvider } from "./local.js";
|
|
5
|
+
export { LocalChromeProvider } from "./local.js";
|
|
6
|
+
export { BrowserbaseProvider } from "./browserbase.js";
|
|
7
|
+
export { BrowserUseProvider } from "./browser-use.js";
|
|
8
|
+
export { FirecrawlProvider } from "./firecrawl.js";
|
|
9
|
+
export const PROVIDER_NAMES = ["local", "browserbase", "browser-use", "firecrawl"];
|
|
10
|
+
/**
|
|
11
|
+
* Build the provider chosen in `config.browser.provider`. Cloud providers
|
|
12
|
+
* read credentials from env at acquire time; LocalChromeProvider needs the
|
|
13
|
+
* dataDir to resolve per-agent user-data-dirs.
|
|
14
|
+
*/
|
|
15
|
+
export function createBrowserProvider(opts) {
|
|
16
|
+
switch (opts.name) {
|
|
17
|
+
case "local":
|
|
18
|
+
return new LocalChromeProvider({ dataDir: opts.dataDir, config: opts.config });
|
|
19
|
+
case "browserbase":
|
|
20
|
+
return new BrowserbaseProvider();
|
|
21
|
+
case "browser-use":
|
|
22
|
+
return new BrowserUseProvider();
|
|
23
|
+
case "firecrawl":
|
|
24
|
+
return new FirecrawlProvider();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAU,CAAC;AAG5F;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAIrC;IACC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,KAAK,aAAa;YAChB,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACnC,KAAK,aAAa;YAChB,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAClC,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { BrowserConfig } from "../types.js";
|
|
2
|
+
import type { AcquiredBrowser, BrowserProvider } from "./base.js";
|
|
3
|
+
/**
|
|
4
|
+
* Per-agent local Chrome. Each agent gets its own session under
|
|
5
|
+
* <dataDir>/agents/<id>/browser-profile/.
|
|
6
|
+
*
|
|
7
|
+
* Two backends:
|
|
8
|
+
* - "spawn": we fork the binary and the manager attaches via CDP. Used
|
|
9
|
+
* for stock Chromium + the executablePath override.
|
|
10
|
+
* - "context": the binary's wrapper (currently Camoufox) drives the
|
|
11
|
+
* launch through Playwright's launchPersistentContext. We get a
|
|
12
|
+
* BrowserContext back and skip the manager's CDP attach — needed for
|
|
13
|
+
* non-CDP browsers (Firefox) and for adhoc-signed builds that fail a
|
|
14
|
+
* bare child_process spawn under our daemon's process tree on macOS.
|
|
15
|
+
*/
|
|
16
|
+
export declare class LocalChromeProvider implements BrowserProvider {
|
|
17
|
+
readonly name = "local";
|
|
18
|
+
private readonly dataDir;
|
|
19
|
+
private readonly cfg;
|
|
20
|
+
private sessions;
|
|
21
|
+
private acquiring;
|
|
22
|
+
constructor(opts: {
|
|
23
|
+
dataDir: string;
|
|
24
|
+
config: BrowserConfig;
|
|
25
|
+
});
|
|
26
|
+
isConfigured(): boolean;
|
|
27
|
+
acquire(agentId: string): Promise<AcquiredBrowser>;
|
|
28
|
+
private isSessionAlive;
|
|
29
|
+
private spawnFor;
|
|
30
|
+
private handleFor;
|
|
31
|
+
private disposeSession;
|
|
32
|
+
releaseAgent(agentId: string): Promise<void>;
|
|
33
|
+
releaseAll(): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/providers/local.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAclE;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,SAAS,CAA+C;gBAEpD,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE;IAK5D,YAAY,IAAI,OAAO;IAMjB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBxD,OAAO,CAAC,cAAc;YAQR,QAAQ;IAmCtB,OAAO,CAAC,SAAS;YAaH,cAAc;IAgBtB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { resolveLocalBinary } from "../binaries.js";
|
|
2
|
+
import { killChrome, launchChrome, resolveUserDataDir, } from "../chrome.js";
|
|
3
|
+
/**
|
|
4
|
+
* Per-agent local Chrome. Each agent gets its own session under
|
|
5
|
+
* <dataDir>/agents/<id>/browser-profile/.
|
|
6
|
+
*
|
|
7
|
+
* Two backends:
|
|
8
|
+
* - "spawn": we fork the binary and the manager attaches via CDP. Used
|
|
9
|
+
* for stock Chromium + the executablePath override.
|
|
10
|
+
* - "context": the binary's wrapper (currently Camoufox) drives the
|
|
11
|
+
* launch through Playwright's launchPersistentContext. We get a
|
|
12
|
+
* BrowserContext back and skip the manager's CDP attach — needed for
|
|
13
|
+
* non-CDP browsers (Firefox) and for adhoc-signed builds that fail a
|
|
14
|
+
* bare child_process spawn under our daemon's process tree on macOS.
|
|
15
|
+
*/
|
|
16
|
+
export class LocalChromeProvider {
|
|
17
|
+
name = "local";
|
|
18
|
+
dataDir;
|
|
19
|
+
cfg;
|
|
20
|
+
sessions = new Map();
|
|
21
|
+
acquiring = new Map();
|
|
22
|
+
constructor(opts) {
|
|
23
|
+
this.dataDir = opts.dataDir;
|
|
24
|
+
this.cfg = opts.config;
|
|
25
|
+
}
|
|
26
|
+
isConfigured() {
|
|
27
|
+
// We can always resolve something (system Chrome → Playwright Chromium
|
|
28
|
+
// auto-install → Camoufox auto-download); errors surface at acquire.
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
async acquire(agentId) {
|
|
32
|
+
if (!agentId)
|
|
33
|
+
throw new Error("LocalChromeProvider.acquire requires an agentId");
|
|
34
|
+
const existing = this.sessions.get(agentId);
|
|
35
|
+
if (existing && this.isSessionAlive(existing)) {
|
|
36
|
+
return this.handleFor(agentId, existing);
|
|
37
|
+
}
|
|
38
|
+
if (existing) {
|
|
39
|
+
this.sessions.delete(agentId);
|
|
40
|
+
await this.disposeSession(existing).catch(() => { });
|
|
41
|
+
}
|
|
42
|
+
const inflight = this.acquiring.get(agentId);
|
|
43
|
+
if (inflight)
|
|
44
|
+
return inflight;
|
|
45
|
+
const p = this.spawnFor(agentId).finally(() => this.acquiring.delete(agentId));
|
|
46
|
+
this.acquiring.set(agentId, p);
|
|
47
|
+
return p;
|
|
48
|
+
}
|
|
49
|
+
isSessionAlive(session) {
|
|
50
|
+
if (session.kind === "spawn")
|
|
51
|
+
return session.running.proc.exitCode === null;
|
|
52
|
+
// For context-based sessions, BrowserContext doesn't expose a tidy
|
|
53
|
+
// is-alive bit. If the underlying browser is closed, calls fail and
|
|
54
|
+
// BrowserManager invalidates the instance via its disconnected handler.
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
async spawnFor(agentId) {
|
|
58
|
+
const resolved = await resolveLocalBinary({
|
|
59
|
+
kind: this.cfg.localBrowser,
|
|
60
|
+
executablePathOverride: this.cfg.executablePath,
|
|
61
|
+
onProgress: (msg) => {
|
|
62
|
+
console.log(`[browser/local] ${msg}`);
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const userDataDir = resolveUserDataDir(this.dataDir, agentId, resolved.family);
|
|
66
|
+
if (resolved.kind === "context") {
|
|
67
|
+
const context = await resolved.launch({ userDataDir, headless: this.cfg.headless });
|
|
68
|
+
const session = { kind: "context", context };
|
|
69
|
+
this.sessions.set(agentId, session);
|
|
70
|
+
context.once("close", () => {
|
|
71
|
+
if (this.sessions.get(agentId) === session)
|
|
72
|
+
this.sessions.delete(agentId);
|
|
73
|
+
});
|
|
74
|
+
return this.handleFor(agentId, session);
|
|
75
|
+
}
|
|
76
|
+
const running = await launchChrome({
|
|
77
|
+
exe: resolved.exe,
|
|
78
|
+
userDataDir,
|
|
79
|
+
headless: this.cfg.headless,
|
|
80
|
+
noSandbox: this.cfg.noSandbox,
|
|
81
|
+
extraArgs: resolved.extraArgs,
|
|
82
|
+
});
|
|
83
|
+
const session = { kind: "spawn", running };
|
|
84
|
+
this.sessions.set(agentId, session);
|
|
85
|
+
running.proc.once("exit", () => {
|
|
86
|
+
if (this.sessions.get(agentId) === session)
|
|
87
|
+
this.sessions.delete(agentId);
|
|
88
|
+
});
|
|
89
|
+
return this.handleFor(agentId, session);
|
|
90
|
+
}
|
|
91
|
+
handleFor(agentId, session) {
|
|
92
|
+
if (session.kind === "context") {
|
|
93
|
+
return {
|
|
94
|
+
preBuiltContext: session.context,
|
|
95
|
+
release: () => this.releaseAgent(agentId),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
cdpUrl: session.running.cdpUrl,
|
|
100
|
+
release: () => this.releaseAgent(agentId),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async disposeSession(session) {
|
|
104
|
+
if (session.kind === "context") {
|
|
105
|
+
try {
|
|
106
|
+
await session.context.close();
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// best-effort
|
|
110
|
+
}
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
await killChrome(session.running);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// best-effort
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async releaseAgent(agentId) {
|
|
121
|
+
const s = this.sessions.get(agentId);
|
|
122
|
+
if (!s)
|
|
123
|
+
return;
|
|
124
|
+
this.sessions.delete(agentId);
|
|
125
|
+
await this.disposeSession(s);
|
|
126
|
+
}
|
|
127
|
+
async releaseAll() {
|
|
128
|
+
const ids = Array.from(this.sessions.keys());
|
|
129
|
+
await Promise.all(ids.map((id) => this.releaseAgent(id)));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/providers/local.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
/** Per-agent stable tab alias (`t1`, `t2`, ...). Opaque to the model. */
|
|
2
2
|
export type TabId = string;
|
|
3
|
+
/**
|
|
4
|
+
* Per-agent browser config — namespaced by provider so each backend's
|
|
5
|
+
* settings stay grouped. Resolved by `BrowserManager` at acquire time
|
|
6
|
+
* and forwarded to the active provider. Each agent that uses a browser
|
|
7
|
+
* gets its own profile binding for cookie isolation, mirroring how
|
|
8
|
+
* local Chrome profiles are scoped under `<agentDir>/browser-profiles/`.
|
|
9
|
+
*
|
|
10
|
+
* Set in AGENT.md frontmatter:
|
|
11
|
+
*
|
|
12
|
+
* browser:
|
|
13
|
+
* browserUse:
|
|
14
|
+
* profileId: 6c0cbf15-...
|
|
15
|
+
* firecrawl:
|
|
16
|
+
* profileName: redditor
|
|
17
|
+
*
|
|
18
|
+
* Only the sub-block matching the workforce-active provider is consulted.
|
|
19
|
+
*/
|
|
20
|
+
export interface AgentBrowserOverrides {
|
|
21
|
+
browserUse?: {
|
|
22
|
+
profileId?: string;
|
|
23
|
+
};
|
|
24
|
+
firecrawl?: {
|
|
25
|
+
profileName?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
3
28
|
export interface BrowserConfig {
|
|
4
29
|
enabled: boolean;
|
|
30
|
+
provider: "local" | "browserbase" | "browser-use" | "firecrawl";
|
|
31
|
+
localBrowser: "chromium" | "camoufox";
|
|
5
32
|
executablePath?: string;
|
|
6
|
-
port: number;
|
|
7
33
|
headless: boolean;
|
|
8
34
|
noSandbox: boolean;
|
|
9
35
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openacme/browser",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Per-agent browser sessions for OpenAcme — pluggable provider (local Chrome / Browserbase / Browser-Use / Firecrawl), per-agent profile dirs, transparent CDP reconnect.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Utkarsh Kanwat",
|
|
7
7
|
"homepage": "https://github.com/ukanwat/OpenAcme/tree/main/packages/browser#readme",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"LICENSE"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
+
"camoufox-js": "^0.10.2",
|
|
33
34
|
"playwright-core": "^1.50.0"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|