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.
- package/README.md +100 -37
- package/dist/contract.d.ts +11 -0
- package/dist/contract.js +11 -0
- package/dist/contract.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/locator.d.ts +108 -0
- package/dist/locator.js +176 -0
- package/dist/locator.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +4 -0
- package/dist/server.js.map +1 -1
- package/dist/session/browser.d.ts +29 -0
- package/dist/session/browser.js +17 -2
- package/dist/session/browser.js.map +1 -1
- package/dist/session/buffers.d.ts +48 -0
- package/dist/session/pause.d.ts +21 -0
- package/dist/session/state.d.ts +53 -0
- package/dist/sourcemap/loader.d.ts +4 -0
- package/dist/sourcemap/normalize.d.ts +2 -0
- package/dist/sourcemap/store.d.ts +57 -0
- package/dist/tools/_locator_runtime.d.ts +31 -0
- package/dist/tools/_locator_runtime.js +243 -0
- package/dist/tools/_locator_runtime.js.map +1 -0
- package/dist/tools/_register.d.ts +2 -0
- package/dist/tools/breakpoints.d.ts +4 -0
- package/dist/tools/console.d.ts +2 -0
- package/dist/tools/dom.d.ts +2 -0
- package/dist/tools/dom.js +3 -221
- package/dist/tools/dom.js.map +1 -1
- package/dist/tools/execution.d.ts +29 -0
- package/dist/tools/forms.d.ts +8 -0
- package/dist/tools/forms.js +256 -0
- package/dist/tools/forms.js.map +1 -0
- package/dist/tools/inspect.d.ts +2 -0
- package/dist/tools/nav.d.ts +2 -0
- package/dist/tools/network.d.ts +2 -0
- package/dist/tools/session.d.ts +2 -0
- package/dist/tools/session.js +1 -1
- package/dist/tools/session.js.map +1 -1
- package/dist/tools/source.d.ts +2 -0
- package/dist/tools/storage.d.ts +2 -0
- package/dist/tools/storage.js +296 -0
- package/dist/tools/storage.js.map +1 -0
- package/dist/util/browser-resolve.d.ts +19 -0
- package/dist/util/errors.d.ts +7 -0
- package/dist/util/format.d.ts +20 -0
- package/dist/util/log.d.ts +6 -0
- package/docs/chromium-sandboxing.md +197 -0
- package/docs/known-chromium-gaps.md +138 -0
- package/docs/launchd-service.md +217 -0
- package/docs/local-l3-e2e-setup.md +199 -0
- package/docs/systemd-service.md +233 -0
- package/package.json +18 -2
package/dist/session/browser.js
CHANGED
|
@@ -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
|
-
|
|
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,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;
|