chrometools-mcp 3.5.4 → 3.5.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 +25 -0
- package/COMPONENT_MAPPING_SPEC.md +1217 -1217
- package/README.md +13 -4
- package/SPEC-swagger-api-tools.md +3101 -3101
- package/browser/page-manager.js +7 -0
- package/index.js +199 -14
- package/models/DATEPICKER_IMPLEMENTATION.md +543 -543
- package/models/ModelRegistry.js +115 -115
- package/package.json +1 -1
- package/pom/apom-tree-converter.js +56 -1
- package/server/tool-definitions.js +10 -5
- package/server/tool-schemas.js +10 -5
- package/specs/SEGM-537-UNBLOCKERS_PROGRESS.md +94 -0
- package/specs/SEGM-537-UNBLOCKERS_SPEC.md +187 -0
- package/utils/actions/click-action.js +76 -8
- package/SPEC-IMPROVEMENTS.md +0 -173
- package/SPEC-pom-integration.md +0 -227
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [3.5.6] - 2026-05-28
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **`analyzePage({ includePortals, portalSelectors })`** — Generic React Portal scan beyond framework modals. Default selectors `['#modal-root', '#menu-popup-root', '#tooltip-root', '#popover-root', '[data-portal]']`, opt-out via `includePortals: false`. Without this, action menus / tooltips / popovers rendered outside `#root` are invisible to APOM
|
|
9
|
+
- **In-tree popup detection** — `analyzePage` now also force-includes Popper/Tippy/FloatingUI-style popups: positioned (absolute/fixed) descendants inside a 0-height inline wrapper. Same opt-out flag (`includePortals`). Covers custom contextMenu implementations that don't use real React Portals
|
|
10
|
+
- **`click({ waitForSelector, waitTimeoutMs })`** — Atomic click + wait. After click, waits for a CSS selector to appear (visible). On timeout the click still succeeds but the result text reports `⚠️ WAIT_TIMEOUT`. Designed for dropdowns/popups that race against the next MCP call
|
|
11
|
+
- **`click({ autoAnalyzeAfter })`** — After click, diffs APOM state and appends `+N appeared: id:"text"` / `-N disappeared` delta. New element ids are pre-registered for follow-up `click`/`type` calls — opens a dropdown and clicks one of its items in two MCP calls instead of three
|
|
12
|
+
- **`screenshot()` viewport mode** — Both `id` and `selector` are now optional; without either, captures the viewport (same compression pipeline as element screenshots)
|
|
13
|
+
- **`executeScript` auto-IIFE** — Snippets starting with `return ...` are now auto-wrapped in `(async () => { ... })()`. Skipped when the snippet declares a `function`, to preserve implicit-return behavior
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **`ModelRegistry is not defined` after navigation** — Root cause: `quickRegisterElements` (called from `resolveSelector` auto-refresh) didn't inject models code, so `buildAPOMTree` inside it failed with `ReferenceError` when the browser context had been wiped. Models are now always re-injected. If the error still surfaces, it's mapped to a clear `APOM registry stale, call analyzePage()` message instead of leaking the raw ReferenceError
|
|
17
|
+
|
|
18
|
+
## [3.5.5] - 2026-03-27
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- **getNetworkRequest responseBody** — Response body now included via CDP `Network.getResponseBody` using the same session that captured the request. JSON auto-minified, large bodies truncated at 50KB
|
|
22
|
+
- **analyzePage non-HTML support** — JSON, XML, and plain text pages now return `rawContent` field instead of an empty APOM tree. Detects `document.contentType` and extracts text content
|
|
23
|
+
- **async executeScript** — Async IIFEs and Promises are now automatically awaited. Previously returned `{}`, now returns actual resolved values
|
|
24
|
+
- **Click diagnostics** — Click tool output now shows which method was used (`[cdp-coordinates]`, `[dom-sequence-intercepted]`, `[dom-sequence-fallback]`) for non-default click paths
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- **Click fallback event sequence** — Path A (intercepted) and Tier 3 (last resort) now dispatch full `pointerdown → mousedown → focus → pointerup → mouseup → click` sequence instead of bare `el.click()`. Improves compatibility with UI Kit components using Pointer Events API
|
|
28
|
+
- **executeScript description** — Added `scrollTo`, `listNetworkRequests`, `getNetworkRequest` to the "don't use for" guidance
|
|
29
|
+
|
|
5
30
|
## [3.5.4] - 2026-02-16
|
|
6
31
|
|
|
7
32
|
### Fixed
|