chrometools-mcp 3.1.7 → 3.2.6
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/CHANGELOG.md +118 -0
- package/README.md +183 -117
- package/README.ru.md +352 -0
- package/chrome-extension.zip +0 -0
- package/docs/extension-developer-mode.png +0 -0
- package/docs/extension-installed.png +0 -0
- package/index.js +93 -90
- package/package.json +1 -1
- package/pom/apom-tree-converter.js +330 -46
- package/publish_output.txt +0 -0
- package/server/tool-definitions.js +24 -41
- package/server/tool-groups.js +0 -1
- package/server/tool-schemas.js +6 -11
- package/test-interactivity.html +178 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,124 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [3.2.6] - 2026-01-28
|
|
6
|
+
|
|
7
|
+
### Removed
|
|
8
|
+
- **getAllInteractiveElements tool** — Removed redundant tool, fully replaced by analyzePage (54 → 53 tools)
|
|
9
|
+
- `analyzePage` provides superior functionality: hierarchical tree, element registration, APOM IDs, metadata
|
|
10
|
+
- `getAllInteractiveElements` only returned flat list with CSS selectors
|
|
11
|
+
- Affected files: `index.js`, `server/tool-definitions.js`, `server/tool-schemas.js`, `server/tool-groups.js`, `README.md`
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- **analyzePage visibility detection** — Fixed critical bug where analyzePage returned tree: null with interactiveCount: 0 on Angular Material pages
|
|
15
|
+
- Changed `isVisible()` check from `offsetParent` to `offsetWidth/offsetHeight > 0`
|
|
16
|
+
- Now correctly detects elements inside `position: fixed` containers (Angular Material overlays, dialogs, selects)
|
|
17
|
+
- Handles `position: sticky` elements properly
|
|
18
|
+
- Testing on my-autotests.segmento.ru: interactiveCount increased from 0 → 329 elements
|
|
19
|
+
- Affected file: `pom/apom-tree-converter.js`
|
|
20
|
+
- **type() text corruption** — Fixed text input corruption (duplicated/swapped characters)
|
|
21
|
+
- Changed default keystroke delay from 0ms to 30ms
|
|
22
|
+
- Prevents character corruption on fast-reacting inputs (Google Search, autocomplete fields)
|
|
23
|
+
- Example: "puppeteer automation" no longer becomes "ppuuppppeetteeeerr baruotwosmeart"
|
|
24
|
+
- Affected file: `index.js:454`
|
|
25
|
+
|
|
26
|
+
## [3.2.5] - 2026-01-28
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- **CSS selector validation** — Fixed analyzePage crash when elements have numeric IDs
|
|
30
|
+
- Added validation to skip IDs starting with digits (e.g., `id="301178"`)
|
|
31
|
+
- CSS selectors don't support IDs starting with numbers (per CSS specification)
|
|
32
|
+
- Added try-catch for invalid selector edge cases
|
|
33
|
+
- Affected file: `pom/apom-tree-converter.js`
|
|
34
|
+
|
|
35
|
+
## [3.2.4] - 2026-01-27
|
|
36
|
+
|
|
37
|
+
### Performance
|
|
38
|
+
- **Compact APOM format** — Reduced analyzePage output size by ~70%
|
|
39
|
+
- Containers now use `"tag_id": [children]` format (instead of `{id, tag, selector, children}`)
|
|
40
|
+
- Selectors removed from output (registered internally for getElementDetails/click/type)
|
|
41
|
+
- Bottom-up pruning removes container branches without interactive elements
|
|
42
|
+
- Example: Google Search reduced from ~33K tokens (281 elements) to ~10K tokens (~80 elements)
|
|
43
|
+
- `includeAll: true` retains full format with selectors for debugging
|
|
44
|
+
|
|
45
|
+
### Removed
|
|
46
|
+
- **getElement tool** — Redundant tool replaced by analyzePage (55 → 54 tools)
|
|
47
|
+
|
|
48
|
+
## [3.2.3] - 2026-01-27
|
|
49
|
+
|
|
50
|
+
### Removed
|
|
51
|
+
- **Reverted experimental features** — Removed `resolveComponentPaths` and `detectFrameworks` due to technical limitations
|
|
52
|
+
- Component path resolution was unreliable across different build configurations
|
|
53
|
+
- Framework detection removed from analyzePage tool
|
|
54
|
+
- Simplified codebase and improved performance
|
|
55
|
+
|
|
56
|
+
## [3.2.2] - 2026-01-27
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
- **APOM ID resolution** — Fixed element ID lookup in `click` and `type` tools
|
|
60
|
+
- Added CSS selector generation to APOM tree elements
|
|
61
|
+
- Both interactive and container elements now include `selector` field
|
|
62
|
+
- APOM IDs (e.g., `textarea_25`, `button_45`) now work correctly with click/type tools
|
|
63
|
+
- **Improved click reliability** — Enhanced click method with fallback strategies
|
|
64
|
+
- Primary method: standard Puppeteer click
|
|
65
|
+
- Fallback 1: scroll element into view and retry click
|
|
66
|
+
- Fallback 2: JavaScript click for hidden/overlapping elements
|
|
67
|
+
- Fixes issues with Google Search button and similar elements
|
|
68
|
+
|
|
69
|
+
## [3.2.1] - 2026-01-27
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
- **Unified element analysis tools** — Merged `analyzeElementById` into `getElementDetails`
|
|
73
|
+
- `getElementDetails` now has optional `analyzeChildren` parameter
|
|
74
|
+
- Set `analyzeChildren: true` to get children tree structure
|
|
75
|
+
- Simplified API reduces tool count and improves consistency
|
|
76
|
+
- Children analysis includes same `includeAll` and `refresh` options
|
|
77
|
+
|
|
78
|
+
### Removed
|
|
79
|
+
- **`getElementByApomId`** — Removed deprecated method (use `getElementDetails` instead)
|
|
80
|
+
- **`analyzeElementById`** — Merged into `getElementDetails` with `analyzeChildren` parameter
|
|
81
|
+
|
|
82
|
+
## [3.2.0] - 2026-01-27
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- **New tool: `getElementDetails`** — Get comprehensive details about element by APOM ID
|
|
86
|
+
- Returns bounds, CSS selector, position, attributes, computed styles
|
|
87
|
+
- Use when `analyzePage` output is simplified and full element info is needed
|
|
88
|
+
- **New tool: `analyzeElementById`** — Analyze children elements starting from specific APOM ID
|
|
89
|
+
- Useful for analyzing specific page sections without re-analyzing entire page
|
|
90
|
+
- Supports `includeAll` and `refresh` parameters
|
|
91
|
+
|
|
92
|
+
### Changed
|
|
93
|
+
- **Optimized `analyzePage` output** — Significantly reduced token usage
|
|
94
|
+
- Parent/container elements now show only `tag` and `id` (minimal info)
|
|
95
|
+
- Interactive elements no longer include `bounds` and `selector` in main output
|
|
96
|
+
- Use `getElementDetails` to get full information when needed
|
|
97
|
+
- ~50-70% reduction in output size for typical pages
|
|
98
|
+
- **Improved cursor:pointer detection** — Only detects explicitly set cursor, not inherited
|
|
99
|
+
- Filters out inherited `cursor:pointer` from parent elements
|
|
100
|
+
- Reduces false positives in interactive element detection
|
|
101
|
+
- More accurate identification of clickable elements
|
|
102
|
+
|
|
103
|
+
### Deprecated
|
|
104
|
+
- **`getElementByApomId`** — Use `getElementDetails` instead (same functionality, clearer name)
|
|
105
|
+
- Filters out Angular dynamic classes (e.g., `_ng*`)
|
|
106
|
+
- Prefers stable class names for more reliable selectors across page loads
|
|
107
|
+
|
|
108
|
+
## [3.1.8] - 2026-01-27
|
|
109
|
+
|
|
110
|
+
### Changed
|
|
111
|
+
- **Enhanced interactivity detection in analyzePage** — Improved detection of JavaScript-enabled interactive elements
|
|
112
|
+
- Added detection of elements with `cursor: pointer` CSS property
|
|
113
|
+
- Added detection of elements with JavaScript `addEventListener('click')`
|
|
114
|
+
- Added detection of elements with `onclick` property set via JavaScript
|
|
115
|
+
- DIV and SPAN elements with click handlers now correctly detected as interactive
|
|
116
|
+
- Added `interactivityReason` metadata field showing why element was marked interactive
|
|
117
|
+
- Reasons: `native-html`, `aria-role`, `onclick-attr`, `onclick-prop`, `cursor-pointer`, `event-listener`, `tabindex`, `contenteditable`
|
|
118
|
+
|
|
119
|
+
### Performance
|
|
120
|
+
- Optimized `markInteractiveElements` to skip event listener checks during bulk scan (performance)
|
|
121
|
+
- Event listener detection only runs for individual element type determination
|
|
122
|
+
|
|
5
123
|
## [3.1.7] - 2026-01-27
|
|
6
124
|
|
|
7
125
|
### Fixed
|