From 11dc38cd553cb1430a3cd748d92449427c748dc6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 1 May 2026 18:17:29 +0100 Subject: [PATCH] refactor: trim browser helper exports --- extensions/browser/src/browser/chrome-mcp.runtime.ts | 2 +- extensions/browser/src/browser/client-actions-core.ts | 4 ++-- extensions/browser/src/browser/client.ts | 7 +------ extensions/browser/src/browser/client.types.ts | 2 +- extensions/browser/src/browser/doctor.ts | 2 +- extensions/browser/src/browser/form-fields.ts | 4 ++-- extensions/browser/src/browser/paths.ts | 2 +- extensions/browser/src/browser/profiles.ts | 2 +- extensions/browser/src/browser/proxy-files.ts | 2 +- extensions/browser/src/browser/pw-role-snapshot.ts | 4 ++-- extensions/browser/src/browser/routes/agent.act.errors.ts | 2 +- extensions/browser/src/browser/routes/agent.act.shared.ts | 4 ++-- .../browser/src/browser/routes/agent.snapshot.plan.ts | 2 +- .../src/browser/server.control-server.test-harness.ts | 8 +++----- extensions/browser/src/browser/session-tab-cleanup.ts | 2 +- extensions/browser/src/browser/session-tab-registry.ts | 2 +- extensions/browser/src/browser/target-id.ts | 2 +- .../browser/src/cli/browser-cli-actions-input/shared.ts | 2 +- .../browser/src/cli/browser-cli-manage.test-helpers.ts | 2 +- extensions/browser/src/sdk-config.ts | 2 -- 20 files changed, 25 insertions(+), 34 deletions(-) diff --git a/extensions/browser/src/browser/chrome-mcp.runtime.ts b/extensions/browser/src/browser/chrome-mcp.runtime.ts index ec40536e4ee..28701d22bb9 100644 --- a/extensions/browser/src/browser/chrome-mcp.runtime.ts +++ b/extensions/browser/src/browser/chrome-mcp.runtime.ts @@ -1,4 +1,4 @@ -export type ChromeMcpModule = typeof import("./chrome-mcp.js"); +type ChromeMcpModule = typeof import("./chrome-mcp.js"); export async function getChromeMcpModule(): Promise { return await import("./chrome-mcp.js"); diff --git a/extensions/browser/src/browser/client-actions-core.ts b/extensions/browser/src/browser/client-actions-core.ts index 133cc656b3c..f528ad74d8f 100644 --- a/extensions/browser/src/browser/client-actions-core.ts +++ b/extensions/browser/src/browser/client-actions-core.ts @@ -11,9 +11,9 @@ import { DEFAULT_BROWSER_SCREENSHOT_TIMEOUT_MS, } from "./constants.js"; -export type { BrowserActRequest, BrowserFormField } from "./client-actions.types.js"; +export type { BrowserFormField } from "./client-actions.types.js"; -export type BrowserActResponse = { +type BrowserActResponse = { ok: true; targetId: string; url?: string; diff --git a/extensions/browser/src/browser/client.ts b/extensions/browser/src/browser/client.ts index 277b5ff90e2..c967d48066f 100644 --- a/extensions/browser/src/browser/client.ts +++ b/extensions/browser/src/browser/client.ts @@ -8,12 +8,7 @@ import type { } from "./client.types.js"; import type { BrowserDoctorReport } from "./doctor.js"; -export type { - BrowserStatus, - BrowserTab, - BrowserTransport, - SnapshotAriaNode, -} from "./client.types.js"; +export type { BrowserStatus, BrowserTab, BrowserTransport } from "./client.types.js"; export type { BrowserDoctorCheck, BrowserDoctorReport } from "./doctor.js"; export type ProfileStatus = { diff --git a/extensions/browser/src/browser/client.types.ts b/extensions/browser/src/browser/client.types.ts index 68894081c3a..ee49363d679 100644 --- a/extensions/browser/src/browser/client.types.ts +++ b/extensions/browser/src/browser/client.types.ts @@ -1,5 +1,5 @@ export type BrowserTransport = "cdp" | "chrome-mcp"; -export type BrowserHeadlessSource = +type BrowserHeadlessSource = | "request" | "env" | "profile" diff --git a/extensions/browser/src/browser/doctor.ts b/extensions/browser/src/browser/doctor.ts index 1964303b14b..010e6a491bf 100644 --- a/extensions/browser/src/browser/doctor.ts +++ b/extensions/browser/src/browser/doctor.ts @@ -1,6 +1,6 @@ import type { BrowserStatus, BrowserTransport } from "./client.types.js"; -export type BrowserDoctorCheckStatus = "pass" | "warn" | "fail" | "info"; +type BrowserDoctorCheckStatus = "pass" | "warn" | "fail" | "info"; export type BrowserDoctorCheck = { id: string; diff --git a/extensions/browser/src/browser/form-fields.ts b/extensions/browser/src/browser/form-fields.ts index fd78e51fb3e..30d5f84c838 100644 --- a/extensions/browser/src/browser/form-fields.ts +++ b/extensions/browser/src/browser/form-fields.ts @@ -5,11 +5,11 @@ export const DEFAULT_FILL_FIELD_TYPE = "text"; type BrowserFormFieldValue = NonNullable; -export function normalizeBrowserFormFieldRef(value: unknown): string { +function normalizeBrowserFormFieldRef(value: unknown): string { return normalizeOptionalString(value) ?? ""; } -export function normalizeBrowserFormFieldType(value: unknown): string { +function normalizeBrowserFormFieldType(value: unknown): string { const type = normalizeOptionalString(value) ?? ""; return type || DEFAULT_FILL_FIELD_TYPE; } diff --git a/extensions/browser/src/browser/paths.ts b/extensions/browser/src/browser/paths.ts index 135ac283c11..d32fb5b7858 100644 --- a/extensions/browser/src/browser/paths.ts +++ b/extensions/browser/src/browser/paths.ts @@ -22,7 +22,7 @@ function canUseNodeFs(): boolean { } } -export const DEFAULT_BROWSER_TMP_DIR = canUseNodeFs() +const DEFAULT_BROWSER_TMP_DIR = canUseNodeFs() ? resolvePreferredOpenClawTmpDir() : DEFAULT_FALLBACK_BROWSER_TMP_DIR; export const DEFAULT_TRACE_DIR = DEFAULT_BROWSER_TMP_DIR; diff --git a/extensions/browser/src/browser/profiles.ts b/extensions/browser/src/browser/profiles.ts index 73d561d7bdb..a391b2cddeb 100644 --- a/extensions/browser/src/browser/profiles.ts +++ b/extensions/browser/src/browser/profiles.ts @@ -15,7 +15,7 @@ export const CDP_PORT_RANGE_START = 18800; export const CDP_PORT_RANGE_END = 18899; -export const PROFILE_NAME_REGEX = /^[a-z0-9][a-z0-9-]*$/; +const PROFILE_NAME_REGEX = /^[a-z0-9][a-z0-9-]*$/; export function isValidProfileName(name: string): boolean { if (!name || name.length > 64) { diff --git a/extensions/browser/src/browser/proxy-files.ts b/extensions/browser/src/browser/proxy-files.ts index 1d39d71a09e..459fa4de3de 100644 --- a/extensions/browser/src/browser/proxy-files.ts +++ b/extensions/browser/src/browser/proxy-files.ts @@ -1,6 +1,6 @@ import { saveMediaBuffer } from "../media/store.js"; -export type BrowserProxyFile = { +type BrowserProxyFile = { path: string; base64: string; mimeType?: string; diff --git a/extensions/browser/src/browser/pw-role-snapshot.ts b/extensions/browser/src/browser/pw-role-snapshot.ts index 0b9ad502320..6f3374ece5b 100644 --- a/extensions/browser/src/browser/pw-role-snapshot.ts +++ b/extensions/browser/src/browser/pw-role-snapshot.ts @@ -1,7 +1,7 @@ import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime"; import { CONTENT_ROLES, INTERACTIVE_ROLES, STRUCTURAL_ROLES } from "./snapshot-roles.js"; -export type RoleRef = { +type RoleRef = { role: string; name?: string; /** Index used only when role+name duplicates exist. */ @@ -10,7 +10,7 @@ export type RoleRef = { export type RoleRefMap = Record; -export type RoleSnapshotStats = { +type RoleSnapshotStats = { lines: number; chars: number; refs: number; diff --git a/extensions/browser/src/browser/routes/agent.act.errors.ts b/extensions/browser/src/browser/routes/agent.act.errors.ts index e1818bba9a8..d04b22d087c 100644 --- a/extensions/browser/src/browser/routes/agent.act.errors.ts +++ b/extensions/browser/src/browser/routes/agent.act.errors.ts @@ -9,7 +9,7 @@ export const ACT_ERROR_CODES = { targetIdMismatch: "ACT_TARGET_ID_MISMATCH", } as const; -export type ActErrorCode = (typeof ACT_ERROR_CODES)[keyof typeof ACT_ERROR_CODES]; +type ActErrorCode = (typeof ACT_ERROR_CODES)[keyof typeof ACT_ERROR_CODES]; export function jsonActError( res: BrowserResponse, diff --git a/extensions/browser/src/browser/routes/agent.act.shared.ts b/extensions/browser/src/browser/routes/agent.act.shared.ts index 5142628564a..1e92e32d0e1 100644 --- a/extensions/browser/src/browser/routes/agent.act.shared.ts +++ b/extensions/browser/src/browser/routes/agent.act.shared.ts @@ -24,8 +24,8 @@ export function isActKind(value: unknown): value is ActKind { return (ACT_KINDS as readonly string[]).includes(value); } -export type ClickButton = "left" | "right" | "middle"; -export type ClickModifier = "Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"; +type ClickButton = "left" | "right" | "middle"; +type ClickModifier = "Alt" | "Control" | "ControlOrMeta" | "Meta" | "Shift"; const ALLOWED_CLICK_MODIFIERS = new Set([ "Alt", diff --git a/extensions/browser/src/browser/routes/agent.snapshot.plan.ts b/extensions/browser/src/browser/routes/agent.snapshot.plan.ts index ccf8009fa63..90f8d3dc958 100644 --- a/extensions/browser/src/browser/routes/agent.snapshot.plan.ts +++ b/extensions/browser/src/browser/routes/agent.snapshot.plan.ts @@ -19,7 +19,7 @@ function normalizeOptionalString(value: unknown): string | undefined { return readStringValue(value)?.trim() || undefined; } -export type BrowserSnapshotPlan = { +type BrowserSnapshotPlan = { format: "ai" | "aria"; mode?: "efficient"; labels?: boolean; diff --git a/extensions/browser/src/browser/server.control-server.test-harness.ts b/extensions/browser/src/browser/server.control-server.test-harness.ts index a7c3beabaf4..fe7a525aee4 100644 --- a/extensions/browser/src/browser/server.control-server.test-harness.ts +++ b/extensions/browser/src/browser/server.control-server.test-harness.ts @@ -4,8 +4,6 @@ import type { MockFn } from "../test-utils/vitest-mock-fn.js"; import { installChromeUserDataDirHooks } from "./chrome-user-data-dir.test-harness.js"; import { getFreePort } from "./test-port.js"; -export { getFreePort } from "./test-port.js"; - type HarnessState = { testPort: number; cdpBaseUrl: string; @@ -49,7 +47,7 @@ export function getBrowserControlServerBaseUrl(): string { return `http://127.0.0.1:${state.testPort}`; } -export function restoreGatewayPortEnv(prevGatewayPort: string | undefined): void { +function restoreGatewayPortEnv(prevGatewayPort: string | undefined): void { if (prevGatewayPort === undefined) { delete process.env.OPENCLAW_GATEWAY_PORT; return; @@ -486,7 +484,7 @@ export async function startBrowserControlServerFromConfig() { return await (await loadBrowserServerModule()).startBrowserControlServerFromConfig(); } -export async function stopBrowserControlServer(): Promise { +async function stopBrowserControlServer(): Promise { await (await loadBrowserServerModule()).stopBrowserControlServer(); } @@ -535,7 +533,7 @@ export async function resetBrowserControlServerTestContext(): Promise { delete process.env.OPENCLAW_GATEWAY_PASSWORD; } -export function restoreGatewayAuthEnv( +function restoreGatewayAuthEnv( prevGatewayToken: string | undefined, prevGatewayPassword: string | undefined, ): void { diff --git a/extensions/browser/src/browser/session-tab-cleanup.ts b/extensions/browser/src/browser/session-tab-cleanup.ts index 253455b7501..416a6e56c9d 100644 --- a/extensions/browser/src/browser/session-tab-cleanup.ts +++ b/extensions/browser/src/browser/session-tab-cleanup.ts @@ -21,7 +21,7 @@ export function isPrimaryTrackedBrowserSessionKey(sessionKey: string): boolean { ); } -export function resolveBrowserTabCleanupRuntimeConfig(): ResolvedBrowserTabCleanupConfig { +function resolveBrowserTabCleanupRuntimeConfig(): ResolvedBrowserTabCleanupConfig { const cfg = getRuntimeConfig(); return resolveBrowserConfig(cfg.browser, cfg).tabCleanup; } diff --git a/extensions/browser/src/browser/session-tab-registry.ts b/extensions/browser/src/browser/session-tab-registry.ts index 472cb50eb80..3df7a88b5b7 100644 --- a/extensions/browser/src/browser/session-tab-registry.ts +++ b/extensions/browser/src/browser/session-tab-registry.ts @@ -4,7 +4,7 @@ import { } from "openclaw/plugin-sdk/text-runtime"; import { browserCloseTab } from "./client.js"; -export type TrackedSessionBrowserTab = { +type TrackedSessionBrowserTab = { sessionKey: string; targetId: string; baseUrl?: string; diff --git a/extensions/browser/src/browser/target-id.ts b/extensions/browser/src/browser/target-id.ts index 06f19e82452..3e26f404da6 100644 --- a/extensions/browser/src/browser/target-id.ts +++ b/extensions/browser/src/browser/target-id.ts @@ -1,6 +1,6 @@ import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime"; -export type TargetIdResolution = +type TargetIdResolution = | { ok: true; targetId: string } | { ok: false; reason: "not_found" | "ambiguous"; matches?: string[] }; diff --git a/extensions/browser/src/cli/browser-cli-actions-input/shared.ts b/extensions/browser/src/cli/browser-cli-actions-input/shared.ts index 17dd630e1a3..e830f1f25df 100644 --- a/extensions/browser/src/cli/browser-cli-actions-input/shared.ts +++ b/extensions/browser/src/cli/browser-cli-actions-input/shared.ts @@ -9,7 +9,7 @@ import { type BrowserFormField, } from "../core-api.js"; -export type BrowserActionContext = { +type BrowserActionContext = { parent: BrowserParentOpts; profile: string | undefined; }; diff --git a/extensions/browser/src/cli/browser-cli-manage.test-helpers.ts b/extensions/browser/src/cli/browser-cli-manage.test-helpers.ts index 53d0dc24d04..469c5211137 100644 --- a/extensions/browser/src/cli/browser-cli-manage.test-helpers.ts +++ b/extensions/browser/src/cli/browser-cli-manage.test-helpers.ts @@ -10,7 +10,7 @@ type BrowserRequest = { }; type BrowserRuntimeOptions = { timeoutMs?: number }; -export type BrowserManageCall = [unknown, BrowserRequest, BrowserRuntimeOptions | undefined]; +type BrowserManageCall = [unknown, BrowserRequest, BrowserRuntimeOptions | undefined]; const browserManageMocks = vi.hoisted(() => ({ callBrowserRequest: vi.fn< diff --git a/extensions/browser/src/sdk-config.ts b/extensions/browser/src/sdk-config.ts index 27a62ca278e..b4c5b1eb893 100644 --- a/extensions/browser/src/sdk-config.ts +++ b/extensions/browser/src/sdk-config.ts @@ -22,8 +22,6 @@ export { resolveUserPath, shortenHomePath, } from "openclaw/plugin-sdk/text-runtime"; -export { normalizeOptionalLowercaseString }; - type PortRange = { start: number; end: number }; const DEFAULT_BROWSER_CDP_PORT_RANGE_START = 18800;