Merged via squash. Prepared head SHA: 0eba5ab939e8074e44fe45dcb76e1a021d74156b Co-authored-by: gambletan <266203672+gambletan@users.noreply.github.com> Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com> Reviewed-by: @altaywtf
70 lines
3.0 KiB
TypeScript
70 lines
3.0 KiB
TypeScript
export type BrowserProfileConfig = {
|
|
/** CDP port for this profile. Allocated once at creation, persisted permanently. */
|
|
cdpPort?: number;
|
|
/** CDP URL for this profile (use for remote Chrome). */
|
|
cdpUrl?: string;
|
|
/** Profile driver (default: openclaw). */
|
|
driver?: "openclaw" | "clawd" | "extension";
|
|
/** If true, never launch a browser for this profile; only attach. Falls back to browser.attachOnly. */
|
|
attachOnly?: boolean;
|
|
/** Profile color (hex). Auto-assigned at creation. */
|
|
color: string;
|
|
};
|
|
export type BrowserSnapshotDefaults = {
|
|
/** Default snapshot mode (applies when mode is not provided). */
|
|
mode?: "efficient";
|
|
};
|
|
export type BrowserSsrFPolicyConfig = {
|
|
/** Legacy alias for private-network access. Prefer dangerouslyAllowPrivateNetwork. */
|
|
allowPrivateNetwork?: boolean;
|
|
/** If true, permit browser navigation to private/internal networks. Default: true */
|
|
dangerouslyAllowPrivateNetwork?: boolean;
|
|
/**
|
|
* Explicitly allowed hostnames (exact-match), including blocked names like localhost.
|
|
* Example: ["localhost", "metadata.internal"]
|
|
*/
|
|
allowedHostnames?: string[];
|
|
/**
|
|
* Hostname allowlist patterns for browser navigation.
|
|
* Supports exact hosts and "*.example.com" wildcard subdomains.
|
|
*/
|
|
hostnameAllowlist?: string[];
|
|
};
|
|
export type BrowserConfig = {
|
|
enabled?: boolean;
|
|
/** If false, disable browser act:evaluate (arbitrary JS). Default: true */
|
|
evaluateEnabled?: boolean;
|
|
/** Base URL of the CDP endpoint (for remote browsers). Default: loopback CDP on the derived port. */
|
|
cdpUrl?: string;
|
|
/** Remote CDP HTTP timeout (ms). Default: 1500. */
|
|
remoteCdpTimeoutMs?: number;
|
|
/** Remote CDP WebSocket handshake timeout (ms). Default: max(remoteCdpTimeoutMs * 2, 2000). */
|
|
remoteCdpHandshakeTimeoutMs?: number;
|
|
/** Accent color for the openclaw browser profile (hex). Default: #FF4500 */
|
|
color?: string;
|
|
/** Override the browser executable path (all platforms). */
|
|
executablePath?: string;
|
|
/** Start Chrome headless (best-effort). Default: false */
|
|
headless?: boolean;
|
|
/** Pass --no-sandbox to Chrome (Linux containers). Default: false */
|
|
noSandbox?: boolean;
|
|
/** If true: never launch; only attach to an existing browser. Default: false */
|
|
attachOnly?: boolean;
|
|
/** Starting local CDP port for auto-assigned browser profiles. Default derives from gateway port. */
|
|
cdpPortRangeStart?: number;
|
|
/** Default profile to use when profile param is omitted. Default: "chrome" */
|
|
defaultProfile?: string;
|
|
/** Named browser profiles with explicit CDP ports or URLs. */
|
|
profiles?: Record<string, BrowserProfileConfig>;
|
|
/** Default snapshot options (applied by the browser tool/CLI when unset). */
|
|
snapshotDefaults?: BrowserSnapshotDefaults;
|
|
/** SSRF policy for browser navigation/open-tab operations. */
|
|
ssrfPolicy?: BrowserSsrFPolicyConfig;
|
|
/**
|
|
* Additional Chrome launch arguments.
|
|
* Useful for stealth flags, window size overrides, or custom user-agent strings.
|
|
* Example: ["--window-size=1920,1080", "--disable-infobars"]
|
|
*/
|
|
extraArgs?: string[];
|
|
};
|