agent-web-interface 4.3.0 → 4.4.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/dist/src/browser/connection-utils.d.ts +48 -0
- package/dist/src/browser/connection-utils.d.ts.map +1 -0
- package/dist/src/browser/connection-utils.js +129 -0
- package/dist/src/browser/connection-utils.js.map +1 -0
- package/dist/src/browser/index.d.ts +3 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +2 -1
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/browser/session-manager.d.ts +1 -89
- package/dist/src/browser/session-manager.d.ts.map +1 -1
- package/dist/src/browser/session-manager.js +1 -116
- package/dist/src/browser/session-manager.js.map +1 -1
- package/dist/src/browser/session-manager.types.d.ts +90 -0
- package/dist/src/browser/session-manager.types.d.ts.map +1 -0
- package/dist/src/browser/session-manager.types.js +7 -0
- package/dist/src/browser/session-manager.types.js.map +1 -0
- package/dist/src/form/constraint-extraction.d.ts +31 -0
- package/dist/src/form/constraint-extraction.d.ts.map +1 -0
- package/dist/src/form/constraint-extraction.js +110 -0
- package/dist/src/form/constraint-extraction.js.map +1 -0
- package/dist/src/form/field-extractor.d.ts.map +1 -1
- package/dist/src/form/field-extractor.js +3 -444
- package/dist/src/form/field-extractor.js.map +1 -1
- package/dist/src/form/field-state-extractor.d.ts +22 -0
- package/dist/src/form/field-state-extractor.d.ts.map +1 -0
- package/dist/src/form/field-state-extractor.js +55 -0
- package/dist/src/form/field-state-extractor.js.map +1 -0
- package/dist/src/form/form-actions.d.ts +45 -0
- package/dist/src/form/form-actions.d.ts.map +1 -0
- package/dist/src/form/form-actions.js +108 -0
- package/dist/src/form/form-actions.js.map +1 -0
- package/dist/src/form/form-detector.d.ts +0 -36
- package/dist/src/form/form-detector.d.ts.map +1 -1
- package/dist/src/form/form-detector.js +11 -376
- package/dist/src/form/form-detector.js.map +1 -1
- package/dist/src/form/input-clustering.d.ts +15 -0
- package/dist/src/form/input-clustering.d.ts.map +1 -0
- package/dist/src/form/input-clustering.js +61 -0
- package/dist/src/form/input-clustering.js.map +1 -0
- package/dist/src/form/intent-inference.d.ts +28 -0
- package/dist/src/form/intent-inference.d.ts.map +1 -0
- package/dist/src/form/intent-inference.js +137 -0
- package/dist/src/form/intent-inference.js.map +1 -0
- package/dist/src/form/purpose-inference.d.ts +50 -0
- package/dist/src/form/purpose-inference.d.ts.map +1 -0
- package/dist/src/form/purpose-inference.js +313 -0
- package/dist/src/form/purpose-inference.js.map +1 -0
- package/dist/src/form/submit-detection.d.ts +36 -0
- package/dist/src/form/submit-detection.d.ts.map +1 -0
- package/dist/src/form/submit-detection.js +101 -0
- package/dist/src/form/submit-detection.js.map +1 -0
- package/dist/src/form/types.d.ts +2 -2
- package/dist/src/index.js +52 -47
- package/dist/src/index.js.map +1 -1
- package/dist/src/observation/observation-accumulator.d.ts +1 -1
- package/dist/src/observation/observation-accumulator.js +1 -1
- package/dist/src/observation/observer-script.d.ts +1 -1
- package/dist/src/observation/observer-script.d.ts.map +1 -1
- package/dist/src/observation/observer-script.js +129 -7
- package/dist/src/observation/observer-script.js.map +1 -1
- package/dist/src/query/disambiguation.d.ts +18 -0
- package/dist/src/query/disambiguation.d.ts.map +1 -0
- package/dist/src/query/disambiguation.js +123 -0
- package/dist/src/query/disambiguation.js.map +1 -0
- package/dist/src/query/fuzzy-match.d.ts +17 -0
- package/dist/src/query/fuzzy-match.d.ts.map +1 -0
- package/dist/src/query/fuzzy-match.js +34 -0
- package/dist/src/query/fuzzy-match.js.map +1 -0
- package/dist/src/query/index.d.ts +3 -0
- package/dist/src/query/index.d.ts.map +1 -1
- package/dist/src/query/index.js +6 -0
- package/dist/src/query/index.js.map +1 -1
- package/dist/src/query/query-engine.d.ts +0 -35
- package/dist/src/query/query-engine.d.ts.map +1 -1
- package/dist/src/query/query-engine.js +9 -309
- package/dist/src/query/query-engine.js.map +1 -1
- package/dist/src/query/scoring.d.ts +52 -0
- package/dist/src/query/scoring.d.ts.map +1 -0
- package/dist/src/query/scoring.js +162 -0
- package/dist/src/query/scoring.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +24 -13
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/element-resolver.js +117 -87
- package/dist/src/snapshot/element-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.d.ts +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.js +4 -1
- package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/index.d.ts +1 -1
- package/dist/src/snapshot/extractors/index.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/index.js +1 -1
- package/dist/src/snapshot/extractors/index.js.map +1 -1
- package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/region-resolver.js +8 -0
- package/dist/src/snapshot/extractors/region-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/types.d.ts +8 -0
- package/dist/src/snapshot/extractors/types.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/types.js +16 -0
- package/dist/src/snapshot/extractors/types.js.map +1 -1
- package/dist/src/snapshot/frame-context.d.ts +68 -0
- package/dist/src/snapshot/frame-context.d.ts.map +1 -0
- package/dist/src/snapshot/frame-context.js +131 -0
- package/dist/src/snapshot/frame-context.js.map +1 -0
- package/dist/src/snapshot/heading-index.d.ts +28 -0
- package/dist/src/snapshot/heading-index.d.ts.map +1 -0
- package/dist/src/snapshot/heading-index.js +108 -0
- package/dist/src/snapshot/heading-index.js.map +1 -0
- package/dist/src/snapshot/index.d.ts +5 -3
- package/dist/src/snapshot/index.d.ts.map +1 -1
- package/dist/src/snapshot/index.js +3 -2
- package/dist/src/snapshot/index.js.map +1 -1
- package/dist/src/snapshot/kind-mapping.d.ts +30 -0
- package/dist/src/snapshot/kind-mapping.d.ts.map +1 -0
- package/dist/src/snapshot/kind-mapping.js +114 -0
- package/dist/src/snapshot/kind-mapping.js.map +1 -0
- package/dist/src/snapshot/node-filter.d.ts +31 -0
- package/dist/src/snapshot/node-filter.d.ts.map +1 -0
- package/dist/src/snapshot/node-filter.js +137 -0
- package/dist/src/snapshot/node-filter.js.map +1 -0
- package/dist/src/snapshot/node-synthesizer.d.ts +62 -0
- package/dist/src/snapshot/node-synthesizer.d.ts.map +1 -0
- package/dist/src/snapshot/node-synthesizer.js +185 -0
- package/dist/src/snapshot/node-synthesizer.js.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts +2 -36
- package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -1
- package/dist/src/snapshot/snapshot-compiler.js +25 -547
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
- package/dist/src/snapshot/snapshot.types.d.ts +7 -2
- package/dist/src/snapshot/snapshot.types.d.ts.map +1 -1
- package/dist/src/snapshot/snapshot.types.js +8 -0
- package/dist/src/snapshot/snapshot.types.js.map +1 -1
- package/dist/src/state/actionables-filter.d.ts +5 -0
- package/dist/src/state/actionables-filter.d.ts.map +1 -1
- package/dist/src/state/actionables-filter.js +21 -3
- package/dist/src/state/actionables-filter.js.map +1 -1
- package/dist/src/state/diff-engine.js +3 -3
- package/dist/src/state/diff-engine.js.map +1 -1
- package/dist/src/state/element-registry.d.ts.map +1 -1
- package/dist/src/state/element-registry.js +6 -4
- package/dist/src/state/element-registry.js.map +1 -1
- package/dist/src/state/hash-utils.d.ts +24 -0
- package/dist/src/state/hash-utils.d.ts.map +1 -0
- package/dist/src/state/hash-utils.js +41 -0
- package/dist/src/state/hash-utils.js.map +1 -0
- package/dist/src/state/layer-detector.d.ts.map +1 -1
- package/dist/src/state/layer-detector.js +15 -286
- package/dist/src/state/layer-detector.js.map +1 -1
- package/dist/src/state/layer-detectors/drawer-detector.d.ts +32 -0
- package/dist/src/state/layer-detectors/drawer-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/drawer-detector.js +96 -0
- package/dist/src/state/layer-detectors/drawer-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/index.d.ts +10 -0
- package/dist/src/state/layer-detectors/index.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/index.js +10 -0
- package/dist/src/state/layer-detectors/index.js.map +1 -0
- package/dist/src/state/layer-detectors/modal-detector.d.ts +30 -0
- package/dist/src/state/layer-detectors/modal-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/modal-detector.js +127 -0
- package/dist/src/state/layer-detectors/modal-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/popover-detector.d.ts +20 -0
- package/dist/src/state/layer-detectors/popover-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/popover-detector.js +76 -0
- package/dist/src/state/layer-detectors/popover-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/toast-detector.d.ts +24 -0
- package/dist/src/state/layer-detectors/toast-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/toast-detector.js +48 -0
- package/dist/src/state/layer-detectors/toast-detector.js.map +1 -0
- package/dist/src/state/region-mapping.d.ts +13 -0
- package/dist/src/state/region-mapping.d.ts.map +1 -0
- package/dist/src/state/region-mapping.js +25 -0
- package/dist/src/state/region-mapping.js.map +1 -0
- package/dist/src/state/state-manager.d.ts.map +1 -1
- package/dist/src/state/state-manager.js +8 -192
- package/dist/src/state/state-manager.js.map +1 -1
- package/dist/src/state/state-renderer.d.ts.map +1 -1
- package/dist/src/state/state-renderer.js +14 -2
- package/dist/src/state/state-renderer.js.map +1 -1
- package/dist/src/state/types.d.ts +8 -4
- package/dist/src/state/types.d.ts.map +1 -1
- package/dist/src/state/url-sanitization.d.ts +22 -0
- package/dist/src/state/url-sanitization.d.ts.map +1 -0
- package/dist/src/state/url-sanitization.js +60 -0
- package/dist/src/state/url-sanitization.js.map +1 -0
- package/dist/src/state/value-masking.d.ts +36 -0
- package/dist/src/state/value-masking.d.ts.map +1 -0
- package/dist/src/state/value-masking.js +86 -0
- package/dist/src/state/value-masking.js.map +1 -0
- package/dist/src/tools/action-context.d.ts +60 -0
- package/dist/src/tools/action-context.d.ts.map +1 -0
- package/dist/src/tools/action-context.js +78 -0
- package/dist/src/tools/action-context.js.map +1 -0
- package/dist/src/tools/action-stabilization.d.ts +48 -0
- package/dist/src/tools/action-stabilization.d.ts.map +1 -0
- package/dist/src/tools/action-stabilization.js +87 -0
- package/dist/src/tools/action-stabilization.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +8 -167
- package/dist/src/tools/browser-tools.d.ts.map +1 -1
- package/dist/src/tools/browser-tools.js +13 -651
- package/dist/src/tools/browser-tools.js.map +1 -1
- package/dist/src/tools/effect-tracker.d.ts +25 -0
- package/dist/src/tools/effect-tracker.d.ts.map +1 -0
- package/dist/src/tools/effect-tracker.js +69 -0
- package/dist/src/tools/effect-tracker.js.map +1 -0
- package/dist/src/tools/execute-action.d.ts +1 -31
- package/dist/src/tools/execute-action.d.ts.map +1 -1
- package/dist/src/tools/execute-action.js +7 -276
- package/dist/src/tools/execute-action.js.map +1 -1
- package/dist/src/tools/form-tools.d.ts +2 -2
- package/dist/src/tools/form-tools.js +4 -4
- package/dist/src/tools/form-tools.js.map +1 -1
- package/dist/src/tools/index.d.ts +2 -2
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +10 -8
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/interaction-tools.d.ts +46 -0
- package/dist/src/tools/interaction-tools.d.ts.map +1 -0
- package/dist/src/tools/interaction-tools.js +138 -0
- package/dist/src/tools/interaction-tools.js.map +1 -0
- package/dist/src/tools/navigation-detection.d.ts +31 -0
- package/dist/src/tools/navigation-detection.d.ts.map +1 -0
- package/dist/src/tools/navigation-detection.js +46 -0
- package/dist/src/tools/navigation-detection.js.map +1 -0
- package/dist/src/tools/navigation-tools.d.ts +57 -0
- package/dist/src/tools/navigation-tools.d.ts.map +1 -0
- package/dist/src/tools/navigation-tools.js +178 -0
- package/dist/src/tools/navigation-tools.js.map +1 -0
- package/dist/src/tools/observation-tools.d.ts +53 -0
- package/dist/src/tools/observation-tools.d.ts.map +1 -0
- package/dist/src/tools/observation-tools.js +247 -0
- package/dist/src/tools/observation-tools.js.map +1 -0
- package/dist/src/tools/response-builder.js +2 -2
- package/dist/src/tools/response-builder.js.map +1 -1
- package/dist/src/tools/stale-element-retry.d.ts +37 -0
- package/dist/src/tools/stale-element-retry.d.ts.map +1 -0
- package/dist/src/tools/stale-element-retry.js +68 -0
- package/dist/src/tools/stale-element-retry.js.map +1 -0
- package/dist/src/tools/state-manager-registry.d.ts +26 -0
- package/dist/src/tools/state-manager-registry.d.ts.map +1 -0
- package/dist/src/tools/state-manager-registry.js +39 -0
- package/dist/src/tools/state-manager-registry.js.map +1 -0
- package/dist/src/tools/tool-context.js +1 -1
- package/dist/src/tools/tool-context.js.map +1 -1
- package/dist/src/tools/tool-schemas.d.ts +106 -21
- package/dist/src/tools/tool-schemas.d.ts.map +1 -1
- package/dist/src/tools/tool-schemas.js +59 -18
- package/dist/src/tools/tool-schemas.js.map +1 -1
- package/dist/src/tools/viewport-tools.d.ts +36 -0
- package/dist/src/tools/viewport-tools.d.ts.map +1 -0
- package/dist/src/tools/viewport-tools.js +105 -0
- package/dist/src/tools/viewport-tools.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../../src/query/query-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../../src/query/query-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scoring
|
|
3
|
+
*
|
|
4
|
+
* Relevance scoring for query matches.
|
|
5
|
+
* Calculates how well a node matches the query request.
|
|
6
|
+
*/
|
|
7
|
+
import type { ReadableNode } from '../snapshot/snapshot.types.js';
|
|
8
|
+
import type { FindElementsRequest, MatchReason, LabelFilter, TextMatchMode } from './types/query.types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Scoring weights for relevance calculation.
|
|
11
|
+
* Values represent the maximum contribution each signal can add to the score.
|
|
12
|
+
*/
|
|
13
|
+
export declare const SCORING_WEIGHTS: {
|
|
14
|
+
readonly labelMatch: {
|
|
15
|
+
readonly exact: 0.4;
|
|
16
|
+
readonly contains: 0.3;
|
|
17
|
+
readonly fuzzy: 0.25;
|
|
18
|
+
};
|
|
19
|
+
readonly kindMatch: 0.15;
|
|
20
|
+
readonly regionMatch: 0.12;
|
|
21
|
+
readonly stateMatch: 0.03;
|
|
22
|
+
readonly groupMatch: 0.08;
|
|
23
|
+
readonly headingMatch: 0.08;
|
|
24
|
+
readonly visibility: 0.02;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Normalize a label filter to its constituent parts.
|
|
28
|
+
* Shared helper used by both scoring and the query engine.
|
|
29
|
+
*/
|
|
30
|
+
export declare function normalizeLabelFilter(filter: string | LabelFilter): {
|
|
31
|
+
text: string;
|
|
32
|
+
mode: TextMatchMode;
|
|
33
|
+
caseSensitive: boolean;
|
|
34
|
+
fuzzyOptions?: import('./types/query.types.js').FuzzyMatchOptions;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Calculate relevance score and match reasons for a node.
|
|
38
|
+
*
|
|
39
|
+
* @param node - The node to score
|
|
40
|
+
* @param request - The original query request
|
|
41
|
+
* @param labelMatchScore - Pre-computed label match score (for fuzzy matching)
|
|
42
|
+
* @returns Relevance score (0-1) and list of reasons
|
|
43
|
+
*/
|
|
44
|
+
export declare function scoreMatch(node: ReadableNode, request: FindElementsRequest, labelMatchScore?: number): {
|
|
45
|
+
relevance: number;
|
|
46
|
+
reasons: MatchReason[];
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Calculate the maximum possible score given the request filters.
|
|
50
|
+
*/
|
|
51
|
+
export declare function calculateMaxPossibleScore(request: FindElementsRequest): number;
|
|
52
|
+
//# sourceMappingURL=scoring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../../src/query/scoring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EAEX,aAAa,EACd,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;CAYlB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,wBAAwB,EAAE,iBAAiB,CAAC;CACnE,CAUA;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,mBAAmB,EAC5B,eAAe,CAAC,EAAE,MAAM,GACvB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CA+F/C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAmB9E"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scoring
|
|
3
|
+
*
|
|
4
|
+
* Relevance scoring for query matches.
|
|
5
|
+
* Calculates how well a node matches the query request.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Scoring weights for relevance calculation.
|
|
9
|
+
* Values represent the maximum contribution each signal can add to the score.
|
|
10
|
+
*/
|
|
11
|
+
export const SCORING_WEIGHTS = {
|
|
12
|
+
labelMatch: {
|
|
13
|
+
exact: 0.4,
|
|
14
|
+
contains: 0.3,
|
|
15
|
+
fuzzy: 0.25, // Base, multiplied by fuzzy match quality
|
|
16
|
+
},
|
|
17
|
+
kindMatch: 0.15,
|
|
18
|
+
regionMatch: 0.12,
|
|
19
|
+
stateMatch: 0.03, // Per matching state property (max ~0.27 for 9 props)
|
|
20
|
+
groupMatch: 0.08,
|
|
21
|
+
headingMatch: 0.08,
|
|
22
|
+
visibility: 0.02,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Normalize a label filter to its constituent parts.
|
|
26
|
+
* Shared helper used by both scoring and the query engine.
|
|
27
|
+
*/
|
|
28
|
+
export function normalizeLabelFilter(filter) {
|
|
29
|
+
if (typeof filter === 'string') {
|
|
30
|
+
return { text: filter, mode: 'contains', caseSensitive: false };
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
text: filter.text,
|
|
34
|
+
mode: filter.mode ?? 'contains',
|
|
35
|
+
caseSensitive: filter.caseSensitive ?? false,
|
|
36
|
+
fuzzyOptions: filter.fuzzyOptions,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Calculate relevance score and match reasons for a node.
|
|
41
|
+
*
|
|
42
|
+
* @param node - The node to score
|
|
43
|
+
* @param request - The original query request
|
|
44
|
+
* @param labelMatchScore - Pre-computed label match score (for fuzzy matching)
|
|
45
|
+
* @returns Relevance score (0-1) and list of reasons
|
|
46
|
+
*/
|
|
47
|
+
export function scoreMatch(node, request, labelMatchScore) {
|
|
48
|
+
let relevance = 0;
|
|
49
|
+
const reasons = [];
|
|
50
|
+
// Label scoring
|
|
51
|
+
if (request.label !== undefined) {
|
|
52
|
+
const { mode } = normalizeLabelFilter(request.label);
|
|
53
|
+
let labelContribution;
|
|
54
|
+
if (mode === 'fuzzy' && labelMatchScore !== undefined) {
|
|
55
|
+
// Fuzzy: base weight * match quality
|
|
56
|
+
labelContribution = SCORING_WEIGHTS.labelMatch.fuzzy * labelMatchScore;
|
|
57
|
+
}
|
|
58
|
+
else if (mode === 'exact') {
|
|
59
|
+
labelContribution = SCORING_WEIGHTS.labelMatch.exact;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
labelContribution = SCORING_WEIGHTS.labelMatch.contains;
|
|
63
|
+
}
|
|
64
|
+
relevance += labelContribution;
|
|
65
|
+
reasons.push({
|
|
66
|
+
type: 'label',
|
|
67
|
+
description: `Label "${truncateLabel(node.label)}" matches query`,
|
|
68
|
+
score_contribution: labelContribution,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// Kind scoring
|
|
72
|
+
if (request.kind !== undefined) {
|
|
73
|
+
relevance += SCORING_WEIGHTS.kindMatch;
|
|
74
|
+
reasons.push({
|
|
75
|
+
type: 'kind',
|
|
76
|
+
description: `Kind "${node.kind}" matches filter`,
|
|
77
|
+
score_contribution: SCORING_WEIGHTS.kindMatch,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// Region scoring
|
|
81
|
+
if (request.region !== undefined) {
|
|
82
|
+
relevance += SCORING_WEIGHTS.regionMatch;
|
|
83
|
+
reasons.push({
|
|
84
|
+
type: 'region',
|
|
85
|
+
description: `Region "${node.where.region}" matches filter`,
|
|
86
|
+
score_contribution: SCORING_WEIGHTS.regionMatch,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// State scoring (per matched property)
|
|
90
|
+
if (request.state !== undefined && node.state) {
|
|
91
|
+
const matchedStates = Object.keys(request.state).filter((k) => request.state[k] !== undefined &&
|
|
92
|
+
request.state[k] === node.state[k]);
|
|
93
|
+
const stateContribution = matchedStates.length * SCORING_WEIGHTS.stateMatch;
|
|
94
|
+
if (stateContribution > 0) {
|
|
95
|
+
relevance += stateContribution;
|
|
96
|
+
reasons.push({
|
|
97
|
+
type: 'state',
|
|
98
|
+
description: `States match: ${matchedStates.join(', ')}`,
|
|
99
|
+
score_contribution: stateContribution,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Group scoring
|
|
104
|
+
if (request.group_id !== undefined) {
|
|
105
|
+
relevance += SCORING_WEIGHTS.groupMatch;
|
|
106
|
+
reasons.push({
|
|
107
|
+
type: 'group',
|
|
108
|
+
description: `Group "${node.where.group_id}" matches`,
|
|
109
|
+
score_contribution: SCORING_WEIGHTS.groupMatch,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
// Heading context scoring
|
|
113
|
+
if (request.heading_context !== undefined) {
|
|
114
|
+
relevance += SCORING_WEIGHTS.headingMatch;
|
|
115
|
+
reasons.push({
|
|
116
|
+
type: 'heading',
|
|
117
|
+
description: `Heading context "${node.where.heading_context}" matches`,
|
|
118
|
+
score_contribution: SCORING_WEIGHTS.headingMatch,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// Visibility bonus (always applied if node is visible)
|
|
122
|
+
if (node.state?.visible) {
|
|
123
|
+
relevance += SCORING_WEIGHTS.visibility;
|
|
124
|
+
}
|
|
125
|
+
// Normalize to 0-1 range based on what was actually queried
|
|
126
|
+
// This gives higher scores when fewer filters are used but all match
|
|
127
|
+
const maxPossible = calculateMaxPossibleScore(request);
|
|
128
|
+
const normalizedRelevance = maxPossible > 0 ? Math.min(1, relevance / maxPossible) : 0;
|
|
129
|
+
return { relevance: normalizedRelevance, reasons };
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Calculate the maximum possible score given the request filters.
|
|
133
|
+
*/
|
|
134
|
+
export function calculateMaxPossibleScore(request) {
|
|
135
|
+
let max = SCORING_WEIGHTS.visibility; // Always possible
|
|
136
|
+
if (request.label !== undefined) {
|
|
137
|
+
const { mode } = normalizeLabelFilter(request.label);
|
|
138
|
+
max += SCORING_WEIGHTS.labelMatch[mode];
|
|
139
|
+
}
|
|
140
|
+
if (request.kind !== undefined)
|
|
141
|
+
max += SCORING_WEIGHTS.kindMatch;
|
|
142
|
+
if (request.region !== undefined)
|
|
143
|
+
max += SCORING_WEIGHTS.regionMatch;
|
|
144
|
+
if (request.state !== undefined) {
|
|
145
|
+
const stateCount = Object.keys(request.state).filter((k) => request.state[k] !== undefined).length;
|
|
146
|
+
max += stateCount * SCORING_WEIGHTS.stateMatch;
|
|
147
|
+
}
|
|
148
|
+
if (request.group_id !== undefined)
|
|
149
|
+
max += SCORING_WEIGHTS.groupMatch;
|
|
150
|
+
if (request.heading_context !== undefined)
|
|
151
|
+
max += SCORING_WEIGHTS.headingMatch;
|
|
152
|
+
return max;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Truncate a label for display in reasons.
|
|
156
|
+
*/
|
|
157
|
+
function truncateLabel(label, maxLength = 30) {
|
|
158
|
+
if (label.length <= maxLength)
|
|
159
|
+
return label;
|
|
160
|
+
return label.slice(0, maxLength - 1) + '…';
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=scoring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../../src/query/scoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
* Provides CDP-based clicking using backendNodeId for guaranteed uniqueness.
|
|
6
6
|
*/
|
|
7
7
|
import type { CdpClient } from '../cdp/cdp-client.interface.js';
|
|
8
|
+
/**
|
|
9
|
+
* CDP Input modifier bitmask values.
|
|
10
|
+
* These are ORed together for combined modifiers.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MODIFIER_ALT = 1;
|
|
13
|
+
export declare const MODIFIER_CTRL = 2;
|
|
14
|
+
export declare const MODIFIER_META = 4;
|
|
15
|
+
export declare const MODIFIER_SHIFT = 8;
|
|
8
16
|
/**
|
|
9
17
|
* Get the top-left viewport coordinates of an element.
|
|
10
18
|
* Scrolls element into view first.
|
|
@@ -19,24 +27,16 @@ export declare function getElementTopLeft(cdp: CdpClient, backendNodeId: number)
|
|
|
19
27
|
* Bypasses Playwright's locator system to avoid strict mode violations
|
|
20
28
|
* when multiple elements match the same selector.
|
|
21
29
|
*/
|
|
22
|
-
export declare function clickByBackendNodeId(cdp: CdpClient, backendNodeId: number): Promise<void>;
|
|
30
|
+
export declare function clickByBackendNodeId(cdp: CdpClient, backendNodeId: number, modifiers?: string[]): Promise<void>;
|
|
23
31
|
/**
|
|
24
32
|
* Click at absolute viewport coordinates using CDP.
|
|
25
33
|
*/
|
|
26
|
-
export declare function clickAtCoordinates(cdp: CdpClient, x: number, y: number): Promise<void>;
|
|
34
|
+
export declare function clickAtCoordinates(cdp: CdpClient, x: number, y: number, modifiers?: string[]): Promise<void>;
|
|
27
35
|
/**
|
|
28
36
|
* Click at an offset relative to an element's top-left corner.
|
|
29
37
|
* Scrolls element into view, computes absolute coordinates, then clicks.
|
|
30
38
|
*/
|
|
31
|
-
export declare function clickAtElementOffset(cdp: CdpClient, backendNodeId: number, offsetX: number, offsetY: number): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* CDP Input modifier bitmask values.
|
|
34
|
-
* These are ORed together for combined modifiers.
|
|
35
|
-
*/
|
|
36
|
-
export declare const MODIFIER_ALT = 1;
|
|
37
|
-
export declare const MODIFIER_CTRL = 2;
|
|
38
|
-
export declare const MODIFIER_META = 4;
|
|
39
|
-
export declare const MODIFIER_SHIFT = 8;
|
|
39
|
+
export declare function clickAtElementOffset(cdp: CdpClient, backendNodeId: number, offsetX: number, offsetY: number, modifiers?: string[]): Promise<void>;
|
|
40
40
|
/**
|
|
41
41
|
* Clear text in the currently focused element using Ctrl+A then Delete.
|
|
42
42
|
*
|
|
@@ -117,7 +117,18 @@ export declare function scrollPage(cdp: CdpClient, direction: 'up' | 'down', amo
|
|
|
117
117
|
* @param targetX - End X coordinate
|
|
118
118
|
* @param targetY - End Y coordinate
|
|
119
119
|
* @param steps - Number of intermediate mouseMoved events (default: 10)
|
|
120
|
-
* @
|
|
120
|
+
* @param modifiers - Optional modifier keys (e.g., ['Shift', 'Control'])
|
|
121
|
+
*/
|
|
122
|
+
export declare function dragBetweenCoordinates(cdp: CdpClient, sourceX: number, sourceY: number, targetX: number, targetY: number, steps?: number, modifiers?: string[]): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Dispatch a mouse wheel event at the given coordinates using CDP.
|
|
125
|
+
*
|
|
126
|
+
* @param cdp - CDP client instance
|
|
127
|
+
* @param x - X coordinate where the wheel event occurs
|
|
128
|
+
* @param y - Y coordinate where the wheel event occurs
|
|
129
|
+
* @param deltaX - Horizontal scroll delta (positive = right)
|
|
130
|
+
* @param deltaY - Vertical scroll delta (positive = down)
|
|
131
|
+
* @param modifiers - Optional modifier keys (e.g., ['Control'] for zoom)
|
|
121
132
|
*/
|
|
122
|
-
export declare function
|
|
133
|
+
export declare function dispatchWheelEvent(cdp: CdpClient, x: number, y: number, deltaX: number, deltaY: number, modifiers?: string[]): Promise<void>;
|
|
123
134
|
//# sourceMappingURL=element-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-resolver.d.ts","sourceRoot":"","sources":["../../../src/snapshot/element-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"element-resolver.d.ts","sourceRoot":"","sources":["../../../src/snapshot/element-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,68 @@
|
|
|
5
5
|
* Provides CDP-based clicking using backendNodeId for guaranteed uniqueness.
|
|
6
6
|
*/
|
|
7
7
|
// ============================================================================
|
|
8
|
+
// Modifier Bitmask Constants
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* CDP Input modifier bitmask values.
|
|
12
|
+
* These are ORed together for combined modifiers.
|
|
13
|
+
*/
|
|
14
|
+
export const MODIFIER_ALT = 1;
|
|
15
|
+
export const MODIFIER_CTRL = 2;
|
|
16
|
+
export const MODIFIER_META = 4;
|
|
17
|
+
export const MODIFIER_SHIFT = 8;
|
|
18
|
+
/**
|
|
19
|
+
* Convert modifier names to CDP modifier bitmask.
|
|
20
|
+
*/
|
|
21
|
+
function computeModifiers(modifiers) {
|
|
22
|
+
if (!modifiers)
|
|
23
|
+
return 0;
|
|
24
|
+
let bits = 0;
|
|
25
|
+
for (const mod of modifiers) {
|
|
26
|
+
switch (mod.toLowerCase()) {
|
|
27
|
+
case 'alt':
|
|
28
|
+
bits |= MODIFIER_ALT;
|
|
29
|
+
break;
|
|
30
|
+
case 'control':
|
|
31
|
+
case 'ctrl':
|
|
32
|
+
bits |= MODIFIER_CTRL;
|
|
33
|
+
break;
|
|
34
|
+
case 'meta':
|
|
35
|
+
case 'cmd':
|
|
36
|
+
case 'command':
|
|
37
|
+
bits |= MODIFIER_META;
|
|
38
|
+
break;
|
|
39
|
+
case 'shift':
|
|
40
|
+
bits |= MODIFIER_SHIFT;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return bits;
|
|
45
|
+
}
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Key Code Mapping
|
|
48
|
+
// ============================================================================
|
|
49
|
+
/**
|
|
50
|
+
* Maps key names to their DOM key codes.
|
|
51
|
+
* Used for Input.dispatchKeyEvent CDP commands.
|
|
52
|
+
*/
|
|
53
|
+
const KEY_DEFINITIONS = {
|
|
54
|
+
Enter: { code: 'Enter', keyCode: 13, key: 'Enter', text: '\r' },
|
|
55
|
+
Tab: { code: 'Tab', keyCode: 9, key: 'Tab' },
|
|
56
|
+
Escape: { code: 'Escape', keyCode: 27, key: 'Escape' },
|
|
57
|
+
Backspace: { code: 'Backspace', keyCode: 8, key: 'Backspace' },
|
|
58
|
+
Delete: { code: 'Delete', keyCode: 46, key: 'Delete' },
|
|
59
|
+
Space: { code: 'Space', keyCode: 32, key: ' ', text: ' ' },
|
|
60
|
+
ArrowUp: { code: 'ArrowUp', keyCode: 38, key: 'ArrowUp' },
|
|
61
|
+
ArrowDown: { code: 'ArrowDown', keyCode: 40, key: 'ArrowDown' },
|
|
62
|
+
ArrowLeft: { code: 'ArrowLeft', keyCode: 37, key: 'ArrowLeft' },
|
|
63
|
+
ArrowRight: { code: 'ArrowRight', keyCode: 39, key: 'ArrowRight' },
|
|
64
|
+
Home: { code: 'Home', keyCode: 36, key: 'Home' },
|
|
65
|
+
End: { code: 'End', keyCode: 35, key: 'End' },
|
|
66
|
+
PageUp: { code: 'PageUp', keyCode: 33, key: 'PageUp' },
|
|
67
|
+
PageDown: { code: 'PageDown', keyCode: 34, key: 'PageDown' },
|
|
68
|
+
};
|
|
69
|
+
// ============================================================================
|
|
8
70
|
// Element Box Model Helpers
|
|
9
71
|
// ============================================================================
|
|
10
72
|
/**
|
|
@@ -46,6 +108,21 @@ export async function getElementTopLeft(cdp, backendNodeId) {
|
|
|
46
108
|
const content = await scrollAndGetContentQuad(cdp, backendNodeId);
|
|
47
109
|
return { x: content[0], y: content[1] };
|
|
48
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the center coordinates of an element by its backendNodeId.
|
|
113
|
+
* Scrolls the element into view first.
|
|
114
|
+
*/
|
|
115
|
+
async function getElementCenter(cdp, backendNodeId) {
|
|
116
|
+
const content = await scrollAndGetContentQuad(cdp, backendNodeId);
|
|
117
|
+
const [x1, y1, x2, , , y3] = content;
|
|
118
|
+
const x = x1 + (x2 - x1) / 2;
|
|
119
|
+
const y = y1 + (y3 - y1) / 2;
|
|
120
|
+
if (x < 0 || y < 0 || !Number.isFinite(x) || !Number.isFinite(y)) {
|
|
121
|
+
throw new Error(`Invalid coordinates (x: ${x}, y: ${y}) for backendNodeId: ${backendNodeId}. ` +
|
|
122
|
+
`The element may be positioned off-screen.`);
|
|
123
|
+
}
|
|
124
|
+
return { x, y };
|
|
125
|
+
}
|
|
49
126
|
// ============================================================================
|
|
50
127
|
// Click Operations
|
|
51
128
|
// ============================================================================
|
|
@@ -55,23 +132,25 @@ export async function getElementTopLeft(cdp, backendNodeId) {
|
|
|
55
132
|
* Bypasses Playwright's locator system to avoid strict mode violations
|
|
56
133
|
* when multiple elements match the same selector.
|
|
57
134
|
*/
|
|
58
|
-
export async function clickByBackendNodeId(cdp, backendNodeId) {
|
|
135
|
+
export async function clickByBackendNodeId(cdp, backendNodeId, modifiers) {
|
|
59
136
|
const { x, y } = await getElementCenter(cdp, backendNodeId);
|
|
60
|
-
await clickAtCoordinates(cdp, x, y);
|
|
137
|
+
await clickAtCoordinates(cdp, x, y, modifiers);
|
|
61
138
|
}
|
|
62
139
|
/**
|
|
63
140
|
* Click at absolute viewport coordinates using CDP.
|
|
64
141
|
*/
|
|
65
|
-
export async function clickAtCoordinates(cdp, x, y) {
|
|
142
|
+
export async function clickAtCoordinates(cdp, x, y, modifiers) {
|
|
66
143
|
if (!Number.isFinite(x) || !Number.isFinite(y) || x < 0 || y < 0) {
|
|
67
144
|
throw new Error(`Invalid click coordinates (x: ${x}, y: ${y}). Coordinates must be non-negative finite numbers.`);
|
|
68
145
|
}
|
|
146
|
+
const modifierBits = computeModifiers(modifiers);
|
|
69
147
|
await cdp.send('Input.dispatchMouseEvent', {
|
|
70
148
|
type: 'mousePressed',
|
|
71
149
|
x,
|
|
72
150
|
y,
|
|
73
151
|
button: 'left',
|
|
74
152
|
clickCount: 1,
|
|
153
|
+
modifiers: modifierBits,
|
|
75
154
|
});
|
|
76
155
|
await cdp.send('Input.dispatchMouseEvent', {
|
|
77
156
|
type: 'mouseReleased',
|
|
@@ -79,95 +158,16 @@ export async function clickAtCoordinates(cdp, x, y) {
|
|
|
79
158
|
y,
|
|
80
159
|
button: 'left',
|
|
81
160
|
clickCount: 1,
|
|
161
|
+
modifiers: modifierBits,
|
|
82
162
|
});
|
|
83
163
|
}
|
|
84
164
|
/**
|
|
85
165
|
* Click at an offset relative to an element's top-left corner.
|
|
86
166
|
* Scrolls element into view, computes absolute coordinates, then clicks.
|
|
87
167
|
*/
|
|
88
|
-
export async function clickAtElementOffset(cdp, backendNodeId, offsetX, offsetY) {
|
|
168
|
+
export async function clickAtElementOffset(cdp, backendNodeId, offsetX, offsetY, modifiers) {
|
|
89
169
|
const { x, y } = await getElementTopLeft(cdp, backendNodeId);
|
|
90
|
-
await clickAtCoordinates(cdp, x + offsetX, y + offsetY);
|
|
91
|
-
}
|
|
92
|
-
// ============================================================================
|
|
93
|
-
// Modifier Bitmask Constants
|
|
94
|
-
// ============================================================================
|
|
95
|
-
/**
|
|
96
|
-
* CDP Input modifier bitmask values.
|
|
97
|
-
* These are ORed together for combined modifiers.
|
|
98
|
-
*/
|
|
99
|
-
export const MODIFIER_ALT = 1;
|
|
100
|
-
export const MODIFIER_CTRL = 2;
|
|
101
|
-
export const MODIFIER_META = 4;
|
|
102
|
-
export const MODIFIER_SHIFT = 8;
|
|
103
|
-
// ============================================================================
|
|
104
|
-
// Key Code Mapping
|
|
105
|
-
// ============================================================================
|
|
106
|
-
/**
|
|
107
|
-
* Maps key names to their DOM key codes.
|
|
108
|
-
* Used for Input.dispatchKeyEvent CDP commands.
|
|
109
|
-
*/
|
|
110
|
-
const KEY_DEFINITIONS = {
|
|
111
|
-
Enter: { code: 'Enter', keyCode: 13, key: 'Enter', text: '\r' },
|
|
112
|
-
Tab: { code: 'Tab', keyCode: 9, key: 'Tab' },
|
|
113
|
-
Escape: { code: 'Escape', keyCode: 27, key: 'Escape' },
|
|
114
|
-
Backspace: { code: 'Backspace', keyCode: 8, key: 'Backspace' },
|
|
115
|
-
Delete: { code: 'Delete', keyCode: 46, key: 'Delete' },
|
|
116
|
-
Space: { code: 'Space', keyCode: 32, key: ' ', text: ' ' },
|
|
117
|
-
ArrowUp: { code: 'ArrowUp', keyCode: 38, key: 'ArrowUp' },
|
|
118
|
-
ArrowDown: { code: 'ArrowDown', keyCode: 40, key: 'ArrowDown' },
|
|
119
|
-
ArrowLeft: { code: 'ArrowLeft', keyCode: 37, key: 'ArrowLeft' },
|
|
120
|
-
ArrowRight: { code: 'ArrowRight', keyCode: 39, key: 'ArrowRight' },
|
|
121
|
-
Home: { code: 'Home', keyCode: 36, key: 'Home' },
|
|
122
|
-
End: { code: 'End', keyCode: 35, key: 'End' },
|
|
123
|
-
PageUp: { code: 'PageUp', keyCode: 33, key: 'PageUp' },
|
|
124
|
-
PageDown: { code: 'PageDown', keyCode: 34, key: 'PageDown' },
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* Convert modifier names to CDP modifier bitmask.
|
|
128
|
-
*/
|
|
129
|
-
function computeModifiers(modifiers) {
|
|
130
|
-
if (!modifiers)
|
|
131
|
-
return 0;
|
|
132
|
-
let bits = 0;
|
|
133
|
-
for (const mod of modifiers) {
|
|
134
|
-
switch (mod.toLowerCase()) {
|
|
135
|
-
case 'alt':
|
|
136
|
-
bits |= MODIFIER_ALT;
|
|
137
|
-
break;
|
|
138
|
-
case 'control':
|
|
139
|
-
case 'ctrl':
|
|
140
|
-
bits |= MODIFIER_CTRL;
|
|
141
|
-
break;
|
|
142
|
-
case 'meta':
|
|
143
|
-
case 'cmd':
|
|
144
|
-
case 'command':
|
|
145
|
-
bits |= MODIFIER_META;
|
|
146
|
-
break;
|
|
147
|
-
case 'shift':
|
|
148
|
-
bits |= MODIFIER_SHIFT;
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return bits;
|
|
153
|
-
}
|
|
154
|
-
// ============================================================================
|
|
155
|
-
// Helper: Get Element Center Coordinates
|
|
156
|
-
// ============================================================================
|
|
157
|
-
/**
|
|
158
|
-
* Get the center coordinates of an element by its backendNodeId.
|
|
159
|
-
* Scrolls the element into view first.
|
|
160
|
-
*/
|
|
161
|
-
async function getElementCenter(cdp, backendNodeId) {
|
|
162
|
-
const content = await scrollAndGetContentQuad(cdp, backendNodeId);
|
|
163
|
-
const [x1, y1, x2, , , y3] = content;
|
|
164
|
-
const x = x1 + (x2 - x1) / 2;
|
|
165
|
-
const y = y1 + (y3 - y1) / 2;
|
|
166
|
-
if (x < 0 || y < 0 || !Number.isFinite(x) || !Number.isFinite(y)) {
|
|
167
|
-
throw new Error(`Invalid coordinates (x: ${x}, y: ${y}) for backendNodeId: ${backendNodeId}. ` +
|
|
168
|
-
`The element may be positioned off-screen.`);
|
|
169
|
-
}
|
|
170
|
-
return { x, y };
|
|
170
|
+
await clickAtCoordinates(cdp, x + offsetX, y + offsetY, modifiers);
|
|
171
171
|
}
|
|
172
172
|
// ============================================================================
|
|
173
173
|
// Clear Text Helper
|
|
@@ -382,9 +382,9 @@ export async function scrollPage(cdp, direction, amount = 500) {
|
|
|
382
382
|
* @param targetX - End X coordinate
|
|
383
383
|
* @param targetY - End Y coordinate
|
|
384
384
|
* @param steps - Number of intermediate mouseMoved events (default: 10)
|
|
385
|
-
* @
|
|
385
|
+
* @param modifiers - Optional modifier keys (e.g., ['Shift', 'Control'])
|
|
386
386
|
*/
|
|
387
|
-
export async function dragBetweenCoordinates(cdp, sourceX, sourceY, targetX, targetY, steps = 10) {
|
|
387
|
+
export async function dragBetweenCoordinates(cdp, sourceX, sourceY, targetX, targetY, steps = 10, modifiers) {
|
|
388
388
|
// Validate all coordinates
|
|
389
389
|
for (const [name, val] of [
|
|
390
390
|
['sourceX', sourceX],
|
|
@@ -396,6 +396,7 @@ export async function dragBetweenCoordinates(cdp, sourceX, sourceY, targetX, tar
|
|
|
396
396
|
throw new Error(`Invalid drag coordinate ${name}: ${val}. Coordinates must be non-negative finite numbers.`);
|
|
397
397
|
}
|
|
398
398
|
}
|
|
399
|
+
const modifierBits = computeModifiers(modifiers);
|
|
399
400
|
// Mouse down at source
|
|
400
401
|
await cdp.send('Input.dispatchMouseEvent', {
|
|
401
402
|
type: 'mousePressed',
|
|
@@ -403,6 +404,7 @@ export async function dragBetweenCoordinates(cdp, sourceX, sourceY, targetX, tar
|
|
|
403
404
|
y: sourceY,
|
|
404
405
|
button: 'left',
|
|
405
406
|
clickCount: 1,
|
|
407
|
+
modifiers: modifierBits,
|
|
406
408
|
});
|
|
407
409
|
// Interpolate mouse moves from source to target
|
|
408
410
|
for (let i = 1; i <= steps; i++) {
|
|
@@ -414,6 +416,7 @@ export async function dragBetweenCoordinates(cdp, sourceX, sourceY, targetX, tar
|
|
|
414
416
|
x,
|
|
415
417
|
y,
|
|
416
418
|
button: 'left',
|
|
419
|
+
modifiers: modifierBits,
|
|
417
420
|
});
|
|
418
421
|
}
|
|
419
422
|
// Mouse up at target
|
|
@@ -423,6 +426,33 @@ export async function dragBetweenCoordinates(cdp, sourceX, sourceY, targetX, tar
|
|
|
423
426
|
y: targetY,
|
|
424
427
|
button: 'left',
|
|
425
428
|
clickCount: 1,
|
|
429
|
+
modifiers: modifierBits,
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
// ============================================================================
|
|
433
|
+
// Wheel Event
|
|
434
|
+
// ============================================================================
|
|
435
|
+
/**
|
|
436
|
+
* Dispatch a mouse wheel event at the given coordinates using CDP.
|
|
437
|
+
*
|
|
438
|
+
* @param cdp - CDP client instance
|
|
439
|
+
* @param x - X coordinate where the wheel event occurs
|
|
440
|
+
* @param y - Y coordinate where the wheel event occurs
|
|
441
|
+
* @param deltaX - Horizontal scroll delta (positive = right)
|
|
442
|
+
* @param deltaY - Vertical scroll delta (positive = down)
|
|
443
|
+
* @param modifiers - Optional modifier keys (e.g., ['Control'] for zoom)
|
|
444
|
+
*/
|
|
445
|
+
export async function dispatchWheelEvent(cdp, x, y, deltaX, deltaY, modifiers) {
|
|
446
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || x < 0 || y < 0) {
|
|
447
|
+
throw new Error(`Invalid wheel coordinates (x: ${x}, y: ${y}). Coordinates must be non-negative finite numbers.`);
|
|
448
|
+
}
|
|
449
|
+
await cdp.send('Input.dispatchMouseEvent', {
|
|
450
|
+
type: 'mouseWheel',
|
|
451
|
+
x,
|
|
452
|
+
y,
|
|
453
|
+
deltaX,
|
|
454
|
+
deltaY,
|
|
455
|
+
modifiers: computeModifiers(modifiers),
|
|
426
456
|
});
|
|
427
457
|
}
|
|
428
458
|
//# sourceMappingURL=element-resolver.js.map
|