cdp-mcp 0.1.2 → 0.2.0

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 (53) hide show
  1. package/README.md +100 -37
  2. package/dist/contract.d.ts +11 -0
  3. package/dist/contract.js +11 -0
  4. package/dist/contract.js.map +1 -0
  5. package/dist/index.d.ts +18 -0
  6. package/dist/locator.d.ts +108 -0
  7. package/dist/locator.js +176 -0
  8. package/dist/locator.js.map +1 -0
  9. package/dist/server.d.ts +2 -0
  10. package/dist/server.js +4 -0
  11. package/dist/server.js.map +1 -1
  12. package/dist/session/browser.d.ts +29 -0
  13. package/dist/session/browser.js +17 -2
  14. package/dist/session/browser.js.map +1 -1
  15. package/dist/session/buffers.d.ts +48 -0
  16. package/dist/session/pause.d.ts +21 -0
  17. package/dist/session/state.d.ts +53 -0
  18. package/dist/sourcemap/loader.d.ts +4 -0
  19. package/dist/sourcemap/normalize.d.ts +2 -0
  20. package/dist/sourcemap/store.d.ts +57 -0
  21. package/dist/tools/_locator_runtime.d.ts +31 -0
  22. package/dist/tools/_locator_runtime.js +243 -0
  23. package/dist/tools/_locator_runtime.js.map +1 -0
  24. package/dist/tools/_register.d.ts +2 -0
  25. package/dist/tools/breakpoints.d.ts +4 -0
  26. package/dist/tools/console.d.ts +2 -0
  27. package/dist/tools/dom.d.ts +2 -0
  28. package/dist/tools/dom.js +3 -221
  29. package/dist/tools/dom.js.map +1 -1
  30. package/dist/tools/execution.d.ts +29 -0
  31. package/dist/tools/forms.d.ts +8 -0
  32. package/dist/tools/forms.js +256 -0
  33. package/dist/tools/forms.js.map +1 -0
  34. package/dist/tools/inspect.d.ts +2 -0
  35. package/dist/tools/nav.d.ts +2 -0
  36. package/dist/tools/network.d.ts +2 -0
  37. package/dist/tools/session.d.ts +2 -0
  38. package/dist/tools/session.js +1 -1
  39. package/dist/tools/session.js.map +1 -1
  40. package/dist/tools/source.d.ts +2 -0
  41. package/dist/tools/storage.d.ts +2 -0
  42. package/dist/tools/storage.js +296 -0
  43. package/dist/tools/storage.js.map +1 -0
  44. package/dist/util/browser-resolve.d.ts +19 -0
  45. package/dist/util/errors.d.ts +7 -0
  46. package/dist/util/format.d.ts +20 -0
  47. package/dist/util/log.d.ts +6 -0
  48. package/docs/chromium-sandboxing.md +197 -0
  49. package/docs/known-chromium-gaps.md +138 -0
  50. package/docs/launchd-service.md +217 -0
  51. package/docs/local-l3-e2e-setup.md +199 -0
  52. package/docs/systemd-service.md +233 -0
  53. package/package.json +18 -2
@@ -20,9 +20,24 @@ export async function launchChrome(opts = {}) {
20
20
  // (stale) port → ECONNREFUSED on every connect. Don't pass it; let
21
21
  // chrome-launcher own port selection. `runningChrome.port` then reflects
22
22
  // the actual port Chrome is listening on. (Codex blocker review on PR #11.)
23
- const useSandbox = opts.sandbox === true;
23
+ // Sandbox decision: an explicit `sandbox` arg from the caller always wins.
24
+ // When the caller omits it, fall back to the CDP_SANDBOX env (default off);
25
+ // "true" or "1" enable it (matching the eval runner's EVAL_SANDBOX parsing).
26
+ // This lets a host with a working sandbox path opt a whole run into
27
+ // sandbox-on (e.g. the L4 eval runner via EVAL_SANDBOX → CDP_SANDBOX)
28
+ // without prompt-injecting every launch_chrome call. Unset env → false →
29
+ // the --no-sandbox automation default (unchanged). Explicit `sandbox: false`
30
+ // still forces --no-sandbox even if the env is set.
31
+ const sandboxEnv = process.env.CDP_SANDBOX;
32
+ const useSandbox = opts.sandbox ?? (sandboxEnv === "true" || sandboxEnv === "1");
24
33
  const userArgs = opts.args ?? [];
25
34
  const userAlreadyDisabled = userArgs.includes("--no-sandbox");
35
+ // A caller can request the sandbox AND still pass --no-sandbox in args; the
36
+ // userArgs spread re-adds it last, so Chromium ends up unsandboxed despite the
37
+ // request. Warn rather than silently dropping the sandbox.
38
+ if (useSandbox && userAlreadyDisabled) {
39
+ log.warn("launch_chrome: sandbox requested but --no-sandbox is in args; the flag wins and the sandbox stays OFF");
40
+ }
26
41
  // Snap-confinement auto-profile. When the effective Chrome path (explicit
27
42
  // chromePath, or CHROME_PATH env that chrome-launcher will pick up) is
28
43
  // under /snap/ AND the caller didn't already specify userDataDir, derive
@@ -57,7 +72,7 @@ export async function launchChrome(opts = {}) {
57
72
  const chrome = await launch(launchOpts);
58
73
  sessionState.chrome = chrome;
59
74
  sessionState.chromePort = chrome.port;
60
- log.info("launched chrome", { port: chrome.port, pid: chrome.pid });
75
+ log.info("launched chrome", { port: chrome.port, pid: chrome.pid, sandbox: useSandbox });
61
76
  // Pick the first page target.
62
77
  const targets = await waitForFirstPage(chrome.port);
63
78
  const target = targets[0];
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/session/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/session/browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { Protocol } from "devtools-protocol";
2
+ export interface ConsoleEntry {
3
+ seq: number;
4
+ ts: number;
5
+ level: "log" | "info" | "warn" | "error" | "debug" | "trace" | "verbose";
6
+ text: string;
7
+ source: "console-api" | "runtime-exception";
8
+ url?: string;
9
+ lineNumber?: number;
10
+ columnNumber?: number;
11
+ mappedFile?: string;
12
+ mappedLine?: number;
13
+ mappedColumn?: number;
14
+ stack?: Protocol.Runtime.StackTrace;
15
+ }
16
+ export interface NetworkEntry {
17
+ seq: number;
18
+ requestId: string;
19
+ ts: number;
20
+ url: string;
21
+ method: string;
22
+ resourceType?: string;
23
+ status?: number;
24
+ statusText?: string;
25
+ mimeType?: string;
26
+ fromCache?: boolean;
27
+ durationMs?: number;
28
+ failureReason?: string;
29
+ finished?: boolean;
30
+ sessionId?: string;
31
+ }
32
+ export declare class RingBuffer<T extends {
33
+ seq: number;
34
+ }> {
35
+ private capacity;
36
+ private items;
37
+ private nextSeq;
38
+ constructor(capacity: number);
39
+ push(item: Omit<T, "seq">): T;
40
+ query(opts?: {
41
+ since?: number;
42
+ limit?: number;
43
+ filter?: (item: T) => boolean;
44
+ }): T[];
45
+ clear(): void;
46
+ size(): number;
47
+ update(predicate: (item: T) => boolean, patch: Partial<T>): T | null;
48
+ }
@@ -0,0 +1,21 @@
1
+ import type { Protocol } from "devtools-protocol";
2
+ export interface PauseState {
3
+ reason: Protocol.Debugger.PausedEvent["reason"];
4
+ data?: object;
5
+ hitBreakpoints?: string[];
6
+ callFrames: Protocol.Debugger.CallFrame[];
7
+ asyncStackTrace?: Protocol.Runtime.StackTrace;
8
+ sessionId?: string;
9
+ pausedAt: number;
10
+ }
11
+ export declare class PauseTracker {
12
+ private state;
13
+ private waiters;
14
+ current(): PauseState | null;
15
+ isPaused(): boolean;
16
+ onPaused(state: PauseState): void;
17
+ onResumed(): void;
18
+ waitForPause(timeoutMs: number): Promise<PauseState>;
19
+ waitForPauseOrResume(timeoutMs: number): Promise<PauseState | null>;
20
+ reset(): void;
21
+ }
@@ -0,0 +1,53 @@
1
+ import type CDP from "chrome-remote-interface";
2
+ import type { LaunchedChrome } from "chrome-launcher";
3
+ import { PauseTracker } from "./pause.js";
4
+ import { RingBuffer, type ConsoleEntry, type NetworkEntry } from "./buffers.js";
5
+ import { ScriptStore } from "../sourcemap/store.js";
6
+ export interface BreakpointBinding {
7
+ cdpId: string;
8
+ sessionId?: string;
9
+ }
10
+ export interface BreakpointRecord {
11
+ id: string;
12
+ file: string;
13
+ line: number;
14
+ column?: number;
15
+ condition?: string;
16
+ logMessage?: string;
17
+ resolvedLocations: Array<{
18
+ file: string;
19
+ line: number;
20
+ column: number;
21
+ }>;
22
+ bindings: BreakpointBinding[];
23
+ }
24
+ export type HandlerEntry = {
25
+ event: string;
26
+ handler: (...args: any[]) => void;
27
+ };
28
+ declare const ROOT_SESSION_KEY = "__root__";
29
+ export { ROOT_SESSION_KEY };
30
+ declare class SessionState {
31
+ client: CDP.Client | null;
32
+ chrome: LaunchedChrome | null;
33
+ chromePort: number | null;
34
+ attached: boolean;
35
+ currentTargetId: string | null;
36
+ currentSessionId: string | undefined;
37
+ readonly pause: PauseTracker;
38
+ readonly console: RingBuffer<ConsoleEntry>;
39
+ readonly network: RingBuffer<NetworkEntry>;
40
+ readonly scripts: ScriptStore;
41
+ readonly breakpoints: Map<string, BreakpointRecord>;
42
+ readonly sessionHandlers: Map<string, HandlerEntry[]>;
43
+ pauseOnExceptions: "none" | "uncaught" | "all";
44
+ private bpCounter;
45
+ nextBpId(): string;
46
+ reset(): void;
47
+ close(): Promise<void>;
48
+ }
49
+ export declare const sessionState: SessionState;
50
+ export declare function getSession(): SessionState | null;
51
+ export declare function requireSession(): SessionState;
52
+ export declare function requirePaused(): SessionState;
53
+ export type Session = SessionState;
@@ -0,0 +1,4 @@
1
+ import type CDP from "chrome-remote-interface";
2
+ import { ScriptStore } from "./store.js";
3
+ export declare function attachScriptListener(client: CDP.Client, store: ScriptStore, sessionId: string | undefined): (params: any, eventSessionId?: string) => void;
4
+ export declare function decodeDataUri(uri: string): string;
@@ -0,0 +1,2 @@
1
+ export declare function normalizeSourcePath(raw: string): string;
2
+ export declare function pathMatches(candidate: string, query: string): boolean;
@@ -0,0 +1,57 @@
1
+ import { SourceMapConsumer } from "@jridgewell/source-map";
2
+ import type { Protocol } from "devtools-protocol";
3
+ export interface ScriptInfo {
4
+ scriptId: string;
5
+ url: string;
6
+ sourceMapURL?: string;
7
+ startLine: number;
8
+ startColumn: number;
9
+ endLine: number;
10
+ endColumn: number;
11
+ executionContextId: number;
12
+ hash: string;
13
+ isModule?: boolean;
14
+ sessionId?: string;
15
+ consumer?: SourceMapConsumer;
16
+ sources?: string[];
17
+ loadError?: string;
18
+ }
19
+ export declare class ScriptStore {
20
+ private byKey;
21
+ upsert(info: Omit<ScriptInfo, "consumer" | "sources" | "loadError">): void;
22
+ get(scriptId: string, sessionId?: string): ScriptInfo | undefined;
23
+ all(): ScriptInfo[];
24
+ remove(scriptId: string, sessionId?: string): void;
25
+ clear(): void;
26
+ findByOriginalSource(file: string): ScriptInfo[];
27
+ attachMap(scriptId: string, sessionId: string | undefined, raw: string, mapUrl?: string): ScriptInfo | null;
28
+ setLoadError(scriptId: string, sessionId: string | undefined, err: string): void;
29
+ }
30
+ export declare function cdpToPublic(loc: {
31
+ lineNumber: number;
32
+ columnNumber?: number;
33
+ }): {
34
+ line: number;
35
+ column: number;
36
+ };
37
+ export declare function publicToCdp(loc: {
38
+ line: number;
39
+ column?: number;
40
+ }): {
41
+ lineNumber: number;
42
+ columnNumber: number;
43
+ };
44
+ export declare function mapCdpToOriginal(store: ScriptStore, frame: Pick<Protocol.Debugger.CallFrame["location"], "scriptId" | "lineNumber" | "columnNumber">, sessionId: string | undefined): {
45
+ file: string;
46
+ line: number;
47
+ column: number;
48
+ } | null;
49
+ export interface GeneratedLocation {
50
+ scriptId: string;
51
+ scriptUrl: string;
52
+ sessionId?: string;
53
+ lineNumber: number;
54
+ columnNumber: number;
55
+ }
56
+ export declare function mapOriginalToGenerated(store: ScriptStore, file: string, line: number, // 1-based
57
+ column?: number): GeneratedLocation[];
@@ -0,0 +1,31 @@
1
+ import { type LocatorSpec } from "../locator.js";
2
+ /**
3
+ * Normalize a LocatorSpec for tool use, surfacing failures as the repo's
4
+ * structured `ToolError` (historically `missing_arg`) instead of the contract's
5
+ * plain `LocatorError`.
6
+ */
7
+ export declare function normalizeLocator(input: LocatorSpec): LocatorSpec;
8
+ /**
9
+ * In-page helper library: text/visibility utilities, the accessibility
10
+ * heuristics (`implicitRole`, `accessibleName`, `cssPath`), `elementInfo`, and
11
+ * `findElements(spec)`. Inject this into a `Runtime.evaluate` expression before
12
+ * `locatorReadScript()` or `mutationHelpersScript()`.
13
+ */
14
+ export declare function locatorHelpersScript(): string;
15
+ /**
16
+ * The read-only `locate(spec, options)` entry. Compose after
17
+ * `locatorHelpersScript()`; returns `{ ok, error?, found, count, visible_count, matches }`.
18
+ */
19
+ export declare function locatorReadScript(): string;
20
+ /**
21
+ * Mutation helpers for the form-driving tools. Compose after
22
+ * `locatorHelpersScript()`:
23
+ * - `resolveOne(spec)` → `{ ok, el?, count, visible_count, error?, code? }`,
24
+ * preferring visible matches (the same visible-first bias `locate` reports)
25
+ * and picking the first match. On failure `code` distinguishes an
26
+ * invalid/unsupported locator (`invalid_locator`, mirroring locate/wait_for)
27
+ * from a valid locator that matched nothing (`not_found`).
28
+ * - `fireEvents(el, types)` → dispatch bubbling events (e.g. `input`/`change`)
29
+ * so app frameworks observe a programmatic mutation.
30
+ */
31
+ export declare function mutationHelpersScript(): string;
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Shared, tools-side locator plumbing.
3
+ *
4
+ * The canonical LocatorSpec contract lives in `../locator.ts` (zod-only, public).
5
+ * This module adds the parts that are specific to running locators *inside the
6
+ * page* and to the cdp-mcp tool error envelope:
7
+ * - `normalizeLocator` — the contract normalizer, re-wrapping `LocatorError`
8
+ * as the repo's structured `ToolError` (preserving its error code).
9
+ * - `locatorHelpersScript()` — the in-page helper library (accessibility
10
+ * heuristics, visibility, `findElements`, `elementInfo`).
11
+ * - `locatorReadScript()` — the read-only `locate(spec, options)` entry.
12
+ * - `mutationHelpersScript()` — `resolveOne(spec)` + `fireEvents(el, types)`,
13
+ * used by the form-driving tools to resolve and mutate an element with the
14
+ * exact same matching semantics as `locate`.
15
+ *
16
+ * Both `dom.ts` (read) and the form-driving tools (drive) compose these so a
17
+ * locator behaves identically whether it is queried or acted upon.
18
+ */
19
+ import { ToolError } from "../util/errors.js";
20
+ import { normalizeLocator as normalizeLocatorContract, LocatorError, } from "../locator.js";
21
+ /**
22
+ * Normalize a LocatorSpec for tool use, surfacing failures as the repo's
23
+ * structured `ToolError` (historically `missing_arg`) instead of the contract's
24
+ * plain `LocatorError`.
25
+ */
26
+ export function normalizeLocator(input) {
27
+ try {
28
+ return normalizeLocatorContract(input);
29
+ }
30
+ catch (e) {
31
+ if (e instanceof LocatorError)
32
+ throw new ToolError(e.code, e.message);
33
+ throw e;
34
+ }
35
+ }
36
+ /**
37
+ * In-page helper library: text/visibility utilities, the accessibility
38
+ * heuristics (`implicitRole`, `accessibleName`, `cssPath`), `elementInfo`, and
39
+ * `findElements(spec)`. Inject this into a `Runtime.evaluate` expression before
40
+ * `locatorReadScript()` or `mutationHelpersScript()`.
41
+ */
42
+ export function locatorHelpersScript() {
43
+ return String.raw `
44
+ const compact = (value) => (value || "").replace(/\s+/g, " ").trim();
45
+ const lower = (value) => compact(value).toLowerCase();
46
+ const cssEscape = (value) => globalThis.CSS?.escape ? globalThis.CSS.escape(value) : String(value).replace(/["\\]/g, "\\$&");
47
+ const matchesText = (actual, expected, exact) => {
48
+ if (expected == null || expected === "") return true;
49
+ const a = lower(actual);
50
+ const e = lower(expected);
51
+ return exact ? a === e : a.includes(e);
52
+ };
53
+ const textOf = (el) => compact(el.innerText || el.textContent || "");
54
+ const isVisible = (el) => {
55
+ if (!el.isConnected) return false;
56
+ const style = getComputedStyle(el);
57
+ if (style.visibility === "hidden" || style.display === "none" || Number(style.opacity) === 0) return false;
58
+ const rect = el.getBoundingClientRect();
59
+ return rect.width > 0 && rect.height > 0;
60
+ };
61
+ const labelText = (el) => {
62
+ if ("labels" in el && el.labels && el.labels.length > 0) {
63
+ return compact(Array.from(el.labels).map((label) => label.innerText || label.textContent || "").join(" "));
64
+ }
65
+ return "";
66
+ };
67
+ const accessibleName = (el) => {
68
+ const ariaLabel = el.getAttribute("aria-label");
69
+ if (ariaLabel) return compact(ariaLabel);
70
+ const labelledBy = el.getAttribute("aria-labelledby");
71
+ if (labelledBy) {
72
+ const text = labelledBy
73
+ .split(/\s+/)
74
+ .map((id) => document.getElementById(id)?.innerText || document.getElementById(id)?.textContent || "")
75
+ .join(" ");
76
+ if (compact(text)) return compact(text);
77
+ }
78
+ const label = labelText(el);
79
+ if (label) return label;
80
+ if (el instanceof HTMLInputElement && ["button", "submit", "reset"].includes(el.type)) return compact(el.value);
81
+ if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) return compact(el.placeholder || el.value || "");
82
+ if (el instanceof HTMLImageElement) return compact(el.alt || "");
83
+ return textOf(el);
84
+ };
85
+ const implicitRole = (el) => {
86
+ const explicit = el.getAttribute("role");
87
+ if (explicit) return lower(explicit.split(/\s+/)[0]);
88
+ const tag = el.tagName.toLowerCase();
89
+ if (tag === "button") return "button";
90
+ if (tag === "a" && el.hasAttribute("href")) return "link";
91
+ if (/^h[1-6]$/.test(tag)) return "heading";
92
+ if (tag === "textarea") return "textbox";
93
+ if (tag === "select") return el.multiple ? "listbox" : "combobox";
94
+ if (tag === "img") return "img";
95
+ if (el.isContentEditable) return "textbox";
96
+ if (tag === "input") {
97
+ const type = lower(el.getAttribute("type") || "text");
98
+ if (["button", "submit", "reset"].includes(type)) return "button";
99
+ if (type === "checkbox") return "checkbox";
100
+ if (type === "radio") return "radio";
101
+ if (type === "range") return "slider";
102
+ if (["email", "password", "search", "tel", "text", "url", ""].includes(type)) return "textbox";
103
+ if (type === "number") return "spinbutton";
104
+ }
105
+ return "";
106
+ };
107
+ const cssPath = (el) => {
108
+ if (el.id) return "#" + cssEscape(el.id);
109
+ const testId = el.getAttribute("data-testid") || el.getAttribute("data-test-id") || el.getAttribute("data-test");
110
+ if (testId) return "[" + (el.hasAttribute("data-testid") ? "data-testid" : el.hasAttribute("data-test-id") ? "data-test-id" : "data-test") + "=\"" + cssEscape(testId) + "\"]";
111
+ const parts = [];
112
+ let node = el;
113
+ while (node && node.nodeType === Node.ELEMENT_NODE && parts.length < 5) {
114
+ const tag = node.tagName.toLowerCase();
115
+ const name = node.getAttribute("name");
116
+ if (name) {
117
+ parts.unshift(tag + "[name=\"" + cssEscape(name) + "\"]");
118
+ break;
119
+ }
120
+ const siblings = Array.from(node.parentElement?.children || []).filter((child) => child.tagName === node.tagName);
121
+ const index = siblings.indexOf(node) + 1;
122
+ parts.unshift(siblings.length > 1 ? tag + ":nth-of-type(" + index + ")" : tag);
123
+ node = node.parentElement;
124
+ }
125
+ return parts.join(" > ");
126
+ };
127
+ const elementInfo = (el) => {
128
+ const rect = el.getBoundingClientRect();
129
+ const info = {
130
+ selector: cssPath(el),
131
+ tag: el.tagName.toLowerCase(),
132
+ role: implicitRole(el) || undefined,
133
+ name: accessibleName(el) || undefined,
134
+ text: textOf(el).slice(0, 300),
135
+ visible: isVisible(el),
136
+ disabled: "disabled" in el ? !!el.disabled : undefined,
137
+ value: "value" in el ? el.value : undefined,
138
+ checked: "checked" in el ? !!el.checked : undefined,
139
+ bbox: { x: rect.x, y: rect.y, width: rect.width, height: rect.height },
140
+ };
141
+ return Object.fromEntries(Object.entries(info).filter(([, value]) => value !== undefined && value !== ""));
142
+ };
143
+ const queryAll = (selector) => {
144
+ try {
145
+ return { ok: true, elements: Array.from(document.querySelectorAll(selector)) };
146
+ } catch (error) {
147
+ return { ok: false, error: "Invalid CSS selector " + selector + ": " + error.message };
148
+ }
149
+ };
150
+ const leafTextMatches = (el, expected, exact) => {
151
+ if (!matchesText(textOf(el), expected, exact)) return false;
152
+ return !Array.from(el.children).some((child) => matchesText(textOf(child), expected, exact));
153
+ };
154
+ const findElements = (spec) => {
155
+ const by = spec.by || (spec.selector || spec.css ? "css" : "");
156
+ const exact = !!spec.exact;
157
+ if (by === "css") return queryAll(spec.selector || spec.css);
158
+ if (by === "text") {
159
+ return { ok: true, elements: Array.from(document.querySelectorAll("body *")).filter((el) => leafTextMatches(el, spec.text || spec.name, exact)) };
160
+ }
161
+ if (by === "role") {
162
+ return { ok: true, elements: Array.from(document.querySelectorAll("body *")).filter((el) => implicitRole(el) === lower(spec.role) && matchesText(accessibleName(el), spec.name, exact)) };
163
+ }
164
+ if (by === "test_id" || by === "testId") {
165
+ const wanted = spec.test_id || spec.testId || spec.name;
166
+ const candidates = Array.from(document.querySelectorAll("[data-testid], [data-test-id], [data-test]"));
167
+ return { ok: true, elements: candidates.filter((el) => [el.getAttribute("data-testid"), el.getAttribute("data-test-id"), el.getAttribute("data-test")].some((value) => matchesText(value, wanted, true))) };
168
+ }
169
+ if (by === "label") {
170
+ const wanted = spec.label || spec.name;
171
+ const controls = [];
172
+ for (const label of Array.from(document.querySelectorAll("label"))) {
173
+ if (!matchesText(textOf(label), wanted, exact)) continue;
174
+ const control = label.control || label.querySelector("input, textarea, select, button");
175
+ if (control) controls.push(control);
176
+ }
177
+ return { ok: true, elements: controls };
178
+ }
179
+ if (by === "placeholder") {
180
+ const wanted = spec.placeholder || spec.name;
181
+ return { ok: true, elements: Array.from(document.querySelectorAll("[placeholder]")).filter((el) => matchesText(el.getAttribute("placeholder"), wanted, exact)) };
182
+ }
183
+ if (by === "name") {
184
+ return { ok: true, elements: Array.from(document.querySelectorAll("[name]")).filter((el) => matchesText(el.getAttribute("name"), spec.name, true)) };
185
+ }
186
+ return { ok: false, error: "Unsupported locator strategy: " + by };
187
+ };
188
+ `;
189
+ }
190
+ /**
191
+ * The read-only `locate(spec, options)` entry. Compose after
192
+ * `locatorHelpersScript()`; returns `{ ok, error?, found, count, visible_count, matches }`.
193
+ */
194
+ export function locatorReadScript() {
195
+ return String.raw `
196
+ const locate = (spec, options) => {
197
+ const found = findElements(spec);
198
+ if (!found.ok) return { ok: false, error: found.error, found: false, count: 0, visible_count: 0, matches: [] };
199
+ const all = found.elements;
200
+ const visible = all.filter(isVisible);
201
+ const returned = (options.includeHidden ? all : visible).slice(0, options.limit || 20).map(elementInfo);
202
+ return {
203
+ ok: true,
204
+ found: returned.length > 0,
205
+ count: all.length,
206
+ visible_count: visible.length,
207
+ matches: returned,
208
+ };
209
+ };
210
+ `;
211
+ }
212
+ /**
213
+ * Mutation helpers for the form-driving tools. Compose after
214
+ * `locatorHelpersScript()`:
215
+ * - `resolveOne(spec)` → `{ ok, el?, count, visible_count, error?, code? }`,
216
+ * preferring visible matches (the same visible-first bias `locate` reports)
217
+ * and picking the first match. On failure `code` distinguishes an
218
+ * invalid/unsupported locator (`invalid_locator`, mirroring locate/wait_for)
219
+ * from a valid locator that matched nothing (`not_found`).
220
+ * - `fireEvents(el, types)` → dispatch bubbling events (e.g. `input`/`change`)
221
+ * so app frameworks observe a programmatic mutation.
222
+ */
223
+ export function mutationHelpersScript() {
224
+ return String.raw `
225
+ const resolveOne = (spec) => {
226
+ const found = findElements(spec);
227
+ // findElements only returns !ok for an invalid/unsupported locator (bad CSS
228
+ // selector or unknown strategy) — the same condition locate/wait_for report
229
+ // as invalid_locator. A valid locator that simply matches nothing is the
230
+ // distinct not_found case below.
231
+ if (!found.ok) return { ok: false, error: found.error, code: "invalid_locator" };
232
+ const all = found.elements;
233
+ const visible = all.filter(isVisible);
234
+ const pick = visible.length ? visible : all;
235
+ if (pick.length === 0) return { ok: false, error: "no element matches locator", code: "not_found" };
236
+ return { ok: true, el: pick[0], count: all.length, visible_count: visible.length };
237
+ };
238
+ const fireEvents = (el, types) => {
239
+ for (const t of types) el.dispatchEvent(new Event(t, { bubbles: true }));
240
+ };
241
+ `;
242
+ }
243
+ //# sourceMappingURL=_locator_runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_locator_runtime.js","sourceRoot":"","sources":["../../src/tools/_locator_runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,gBAAgB,IAAI,wBAAwB,EAC5C,YAAY,GAEb,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,IAAI,CAAC;QACH,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,YAAY;YAAE,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiJhB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;GAehB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;GAiBhB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerJsonTool<TInput extends Record<string, any>>(server: McpServer, name: string, description: string, inputShape: Record<string, any> | undefined, handler: (input: TInput) => Promise<unknown> | unknown): void;
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerBreakpointTools(server: McpServer): void;
3
+ /** @internal exported for unit tests; not part of the MCP tool surface. */
4
+ export declare function buildConditionExpression(condition?: string, logMessage?: string): string | undefined;
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerConsoleTools(server: McpServer): void;
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerDomTools(server: McpServer): void;