From f50c38ec1a826c5ea2c574a64d22c99cd8d8a986 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 18 Feb 2026 18:33:35 +0000 Subject: [PATCH] refactor(browser): reuse role snapshot args in route --- src/browser/routes/agent.snapshot.ts | 44 ++++++++++++---------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/src/browser/routes/agent.snapshot.ts b/src/browser/routes/agent.snapshot.ts index 927d4d5574..bb7ef7d23a 100644 --- a/src/browser/routes/agent.snapshot.ts +++ b/src/browser/routes/agent.snapshot.ts @@ -194,6 +194,8 @@ export function registerBrowserAgentSnapshotRoutes( depthRaw ?? (mode === "efficient" ? DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH : undefined); const selector = toStringOrEmpty(req.query.selector); const frameSelector = toStringOrEmpty(req.query.frame); + const selectorValue = selector.trim() || undefined; + const frameSelectorValue = frameSelector.trim() || undefined; try { const tab = await profileCtx.ensureTabAvailable(targetId || undefined); @@ -211,22 +213,23 @@ export function registerBrowserAgentSnapshotRoutes( interactive === true || compact === true || depth !== undefined || - Boolean(selector.trim()) || - Boolean(frameSelector.trim()); + Boolean(selectorValue) || + Boolean(frameSelectorValue); + const roleSnapshotArgs = { + cdpUrl: profileCtx.profile.cdpUrl, + targetId: tab.targetId, + selector: selectorValue, + frameSelector: frameSelectorValue, + refsMode, + options: { + interactive: interactive ?? undefined, + compact: compact ?? undefined, + maxDepth: depth ?? undefined, + }, + }; const snap = wantsRoleSnapshot - ? await pw.snapshotRoleViaPlaywright({ - cdpUrl: profileCtx.profile.cdpUrl, - targetId: tab.targetId, - selector: selector.trim() || undefined, - frameSelector: frameSelector.trim() || undefined, - refsMode, - options: { - interactive: interactive ?? undefined, - compact: compact ?? undefined, - maxDepth: depth ?? undefined, - }, - }) + ? await pw.snapshotRoleViaPlaywright(roleSnapshotArgs) : await pw .snapshotAiViaPlaywright({ cdpUrl: profileCtx.profile.cdpUrl, @@ -236,18 +239,7 @@ export function registerBrowserAgentSnapshotRoutes( .catch(async (err) => { // Public-API fallback when Playwright's private _snapshotForAI is missing. if (String(err).toLowerCase().includes("_snapshotforai")) { - return await pw.snapshotRoleViaPlaywright({ - cdpUrl: profileCtx.profile.cdpUrl, - targetId: tab.targetId, - selector: selector.trim() || undefined, - frameSelector: frameSelector.trim() || undefined, - refsMode, - options: { - interactive: interactive ?? undefined, - compact: compact ?? undefined, - maxDepth: depth ?? undefined, - }, - }); + return await pw.snapshotRoleViaPlaywright(roleSnapshotArgs); } throw err; });