refactor(browser): split pw tools + agent routes

This commit is contained in:
Peter Steinberger
2026-01-14 05:39:44 +00:00
parent da6f07b7c1
commit 2b60ee96f2
27 changed files with 2781 additions and 2633 deletions

View File

@@ -0,0 +1,55 @@
export const ACT_KINDS = [
"click",
"close",
"drag",
"evaluate",
"fill",
"hover",
"scrollIntoView",
"press",
"resize",
"select",
"type",
"wait",
] as const;
export type ActKind = (typeof ACT_KINDS)[number];
export function isActKind(value: unknown): value is ActKind {
if (typeof value !== "string") return false;
return (ACT_KINDS as readonly string[]).includes(value);
}
export type ClickButton = "left" | "right" | "middle";
export type ClickModifier =
| "Alt"
| "Control"
| "ControlOrMeta"
| "Meta"
| "Shift";
const ALLOWED_CLICK_MODIFIERS = new Set<ClickModifier>([
"Alt",
"Control",
"ControlOrMeta",
"Meta",
"Shift",
]);
export function parseClickButton(raw: string): ClickButton | undefined {
if (raw === "left" || raw === "right" || raw === "middle") return raw;
return undefined;
}
export function parseClickModifiers(raw: string[]): {
modifiers?: ClickModifier[];
error?: string;
} {
const invalid = raw.filter(
(m) => !ALLOWED_CLICK_MODIFIERS.has(m as ClickModifier),
);
if (invalid.length) {
return { error: "modifiers must be Alt|Control|ControlOrMeta|Meta|Shift" };
}
return { modifiers: raw.length ? (raw as ClickModifier[]) : undefined };
}