@openacme/browser 0.4.0 → 0.5.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.
Files changed (43) hide show
  1. package/dist/binaries.d.ts +63 -0
  2. package/dist/binaries.d.ts.map +1 -0
  3. package/dist/binaries.js +159 -0
  4. package/dist/binaries.js.map +1 -0
  5. package/dist/chrome.d.ts +22 -3
  6. package/dist/chrome.d.ts.map +1 -1
  7. package/dist/chrome.js +117 -16
  8. package/dist/chrome.js.map +1 -1
  9. package/dist/index.d.ts +5 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/manager.d.ts +40 -40
  14. package/dist/manager.d.ts.map +1 -1
  15. package/dist/manager.js +238 -253
  16. package/dist/manager.js.map +1 -1
  17. package/dist/providers/base.d.ts +44 -0
  18. package/dist/providers/base.d.ts.map +1 -0
  19. package/dist/providers/base.js +2 -0
  20. package/dist/providers/base.js.map +1 -0
  21. package/dist/providers/browser-use.d.ts +24 -0
  22. package/dist/providers/browser-use.d.ts.map +1 -0
  23. package/dist/providers/browser-use.js +110 -0
  24. package/dist/providers/browser-use.js.map +1 -0
  25. package/dist/providers/browserbase.d.ts +29 -0
  26. package/dist/providers/browserbase.d.ts.map +1 -0
  27. package/dist/providers/browserbase.js +126 -0
  28. package/dist/providers/browserbase.js.map +1 -0
  29. package/dist/providers/firecrawl.d.ts +22 -0
  30. package/dist/providers/firecrawl.d.ts.map +1 -0
  31. package/dist/providers/firecrawl.js +101 -0
  32. package/dist/providers/firecrawl.js.map +1 -0
  33. package/dist/providers/index.d.ts +20 -0
  34. package/dist/providers/index.d.ts.map +1 -0
  35. package/dist/providers/index.js +27 -0
  36. package/dist/providers/index.js.map +1 -0
  37. package/dist/providers/local.d.ts +35 -0
  38. package/dist/providers/local.d.ts.map +1 -0
  39. package/dist/providers/local.js +132 -0
  40. package/dist/providers/local.js.map +1 -0
  41. package/dist/types.d.ts +27 -1
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +6 -2
package/dist/manager.d.ts CHANGED
@@ -1,52 +1,56 @@
1
- import type { BrowserConfig, ClickCoordsParams, ClickParams, ConsoleMessagesParams, ConsoleMessagesResult, DialogResult, DragParams, EvaluateParams, EvaluateResult, FileUploadParams, FillFormParams, FillFormResult, HandleDialogParams, HoverParams, NavHistoryResult, NavigateParams, NavigateResult, PdfResult, PressKeyParams, ResizeParams, ResizeResult, SaveAsPdfParams, ScreenshotParams, ScreenshotResult, SelectOptionParams, SelectOptionResult, SnapshotParams, SnapshotResult, TabId, TabInfo, TypeParams, WaitForParams, ActionResult } from "./types.js";
1
+ import type { BrowserProvider } from "./providers/base.js";
2
+ import type { AgentBrowserOverrides } from "./types.js";
3
+ import type { ActionResult, ClickCoordsParams, ClickParams, ConsoleMessagesParams, ConsoleMessagesResult, DialogResult, DragParams, EvaluateParams, EvaluateResult, FileUploadParams, FillFormParams, FillFormResult, HandleDialogParams, HoverParams, NavHistoryResult, NavigateParams, NavigateResult, PdfResult, PressKeyParams, ResizeParams, ResizeResult, SaveAsPdfParams, ScreenshotParams, ScreenshotResult, SelectOptionParams, SelectOptionResult, SnapshotParams, SnapshotResult, TabId, TabInfo, TypeParams, WaitForParams } from "./types.js";
2
4
  /**
3
- * Owns the single managed Chrome process for the OpenAcme workforce.
5
+ * Per-agent browser orchestrator. Each agent that calls a browser tool
6
+ * gets its own session — a separate Chrome process for the local provider,
7
+ * a separate cloud session for Browserbase / Browser-Use / Firecrawl.
8
+ * Sessions are lazy and acquired on first tool call.
4
9
  *
5
- * One Chrome under `<dataDir>/browser-profile/`; one shared default
6
- * `BrowserContext` so all agents share cookies / login state. Tabs are
7
- * partitioned per-agent: each agent gets its own `t1`, `t2`, ... alias
8
- * space. Cross-agent tab access is refused.
9
- *
10
- * Lazy: nothing happens until the first tool call. CDP disconnect on
11
- * sleep/wake is recovered transparently — `cachedBrowser` is invalidated
12
- * by the `disconnected` listener and re-established on next call.
10
+ * Why per-agent: shared cookies cascade bans across the workforce, and
11
+ * shared fingerprints get the whole org flagged on social-media-style
12
+ * sites. Each agent is a distinct persona; the runtime should reflect that.
13
13
  */
14
14
  export declare class BrowserManager {
15
- private readonly userDataDir;
16
- private readonly cfg;
17
- private running;
18
- private cachedBrowser;
19
- private connectingPromise;
20
- private launchingPromise;
21
- private tabOwnership;
22
- private agentTabs;
23
- private activeTabByAgent;
24
- private pageState;
15
+ private readonly provider;
16
+ private readonly resolveOverrides;
17
+ private readonly ensureOverrides;
18
+ private instances;
19
+ private connecting;
25
20
  constructor(opts: {
26
- dataDir: string;
27
- config: BrowserConfig;
21
+ provider: BrowserProvider;
22
+ /** Look up per-agent browser overrides at acquire time. AgentManager
23
+ * supplies this with a closure over agentStore. Without it, providers
24
+ * fall back to env vars / their own defaults. */
25
+ resolveOverrides?: (agentId: string) => AgentBrowserOverrides | undefined;
26
+ /** Lazy-provision a per-agent profile when the agent doesn't have one
27
+ * yet for the active provider. Called once per first-acquire when the
28
+ * resolved overrides are missing the provider-specific profile field.
29
+ * Returns the updated overrides (which AgentManager should also
30
+ * persist to the agent store, so the next acquire skips this). */
31
+ ensureOverrides?: (agentId: string, current: AgentBrowserOverrides | undefined) => Promise<AgentBrowserOverrides | undefined>;
28
32
  });
29
- private ensureChrome;
30
- private getBrowser;
31
- private connectFresh;
32
- private sharedContext;
33
- private resetAllTabState;
33
+ get providerName(): string;
34
+ private getInstance;
35
+ private isInstanceAlive;
36
+ private connectFor;
37
+ private contextFor;
38
+ /** Release one agent's browser session. Idempotent. */
39
+ closeAgent(agentId: string): Promise<void>;
40
+ /** Release every agent and shut down the provider. */
34
41
  close(): Promise<void>;
35
42
  private observePage;
36
- private agentTabsFor;
37
- private assignTabAlias;
38
- private trackPageForAgent;
39
- private releaseTab;
40
- private targetIdOf;
41
43
  /**
42
- * Resolve the Page for `tabId` (or the active tab if omitted) and verify
43
- * the agent owns it. Throws on missing tab / cross-agent access.
44
+ * Tab identity is the Page object itself stable for the page's
45
+ * lifetime in Playwright. Avoids CDP-specific calls (`newCDPSession`)
46
+ * so Firefox-based backends (Camoufox) work the same as Chromium.
44
47
  */
48
+ private trackPage;
45
49
  private resolvePage;
46
- private findPageByTargetId;
47
50
  /**
48
51
  * Run an action with one-shot reconnect on transient CDP disconnects.
49
- * The action gets a fresh `page` resolution on retry.
52
+ * Drops the agent's instance + cloud session before retrying so we
53
+ * don't reuse a server-side session that the provider already killed.
50
54
  */
51
55
  private withReconnect;
52
56
  navigate(agentId: string, p: NavigateParams): Promise<NavigateResult>;
@@ -73,10 +77,6 @@ export declare class BrowserManager {
73
77
  selectOption(agentId: string, p: SelectOptionParams): Promise<SelectOptionResult>;
74
78
  fillForm(agentId: string, p: FillFormParams): Promise<FillFormResult>;
75
79
  fileUpload(agentId: string, p: FileUploadParams): Promise<ActionResult>;
76
- /**
77
- * Arm a one-shot dialog handler on the page. The handler resolves the
78
- * NEXT dialog event with accept/dismiss + optional prompt text.
79
- */
80
80
  handleDialog(agentId: string, p: HandleDialogParams): Promise<DialogResult>;
81
81
  resize(agentId: string, p: ResizeParams): Promise<ResizeResult>;
82
82
  navigateBack(agentId: string, p: {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}