agent-web-interface 4.3.0 → 4.5.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/browser-session-config.d.ts +33 -0
- package/dist/src/browser/browser-session-config.d.ts.map +1 -0
- package/dist/src/browser/browser-session-config.js +24 -0
- package/dist/src/browser/browser-session-config.js.map +1 -0
- 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/ensure-browser.d.ts +12 -27
- package/dist/src/browser/ensure-browser.d.ts.map +1 -1
- package/dist/src/browser/ensure-browser.js +104 -37
- package/dist/src/browser/ensure-browser.js.map +1 -1
- package/dist/src/browser/index.d.ts +4 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +3 -1
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/browser/session-manager.d.ts +21 -89
- package/dist/src/browser/session-manager.d.ts.map +1 -1
- package/dist/src/browser/session-manager.js +122 -132
- package/dist/src/browser/session-manager.js.map +1 -1
- package/dist/src/browser/session-manager.types.d.ts +102 -0
- package/dist/src/browser/session-manager.types.d.ts.map +1 -0
- package/dist/src/browser/session-manager.types.js +11 -0
- package/dist/src/browser/session-manager.types.js.map +1 -0
- package/dist/src/cli/args.d.ts +12 -18
- package/dist/src/cli/args.d.ts.map +1 -1
- package/dist/src/cli/args.js +35 -40
- package/dist/src/cli/args.js.map +1 -1
- package/dist/src/form/constraint-extraction.d.ts +36 -0
- package/dist/src/form/constraint-extraction.d.ts.map +1 -0
- package/dist/src/form/constraint-extraction.js +117 -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 +16 -450
- 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/form-state.d.ts.map +1 -1
- package/dist/src/form/form-state.js +16 -4
- package/dist/src/form/form-state.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/gateway/http-gateway.d.ts +56 -0
- package/dist/src/gateway/http-gateway.d.ts.map +1 -0
- package/dist/src/gateway/http-gateway.js +229 -0
- package/dist/src/gateway/http-gateway.js.map +1 -0
- package/dist/src/gateway/json-rpc-errors.d.ts +6 -0
- package/dist/src/gateway/json-rpc-errors.d.ts.map +1 -0
- package/dist/src/gateway/json-rpc-errors.js +11 -0
- package/dist/src/gateway/json-rpc-errors.js.map +1 -0
- package/dist/src/gateway/session-router.d.ts +80 -0
- package/dist/src/gateway/session-router.d.ts.map +1 -0
- package/dist/src/gateway/session-router.js +177 -0
- package/dist/src/gateway/session-router.js.map +1 -0
- package/dist/src/http-entry.d.ts +20 -0
- package/dist/src/http-entry.d.ts.map +1 -0
- package/dist/src/http-entry.js +112 -0
- package/dist/src/http-entry.js.map +1 -0
- package/dist/src/index.d.ts +1 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -227
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/text-utils.d.ts +0 -24
- package/dist/src/lib/text-utils.d.ts.map +1 -1
- package/dist/src/lib/text-utils.js +2 -38
- package/dist/src/lib/text-utils.js.map +1 -1
- package/dist/src/observation/eid-linker.d.ts.map +1 -1
- package/dist/src/observation/eid-linker.js +1 -21
- package/dist/src/observation/eid-linker.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/server/index.d.ts +0 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +0 -1
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/mcp-server.d.ts +6 -2
- package/dist/src/server/mcp-server.d.ts.map +1 -1
- package/dist/src/server/mcp-server.js +3 -91
- package/dist/src/server/mcp-server.js.map +1 -1
- package/dist/src/server/server-config.d.ts +4 -20
- package/dist/src/server/server-config.d.ts.map +1 -1
- package/dist/src/server/server-config.js +6 -50
- package/dist/src/server/server-config.js.map +1 -1
- package/dist/src/server/tool-registrar.types.d.ts +25 -0
- package/dist/src/server/tool-registrar.types.d.ts.map +1 -0
- package/dist/src/server/tool-registrar.types.js +10 -0
- package/dist/src/server/tool-registrar.types.js.map +1 -0
- package/dist/src/server/tool-result-handler.d.ts +61 -0
- package/dist/src/server/tool-result-handler.d.ts.map +1 -0
- package/dist/src/server/tool-result-handler.js +137 -0
- package/dist/src/server/tool-result-handler.js.map +1 -0
- package/dist/src/session/session-controller.d.ts +123 -0
- package/dist/src/session/session-controller.d.ts.map +1 -0
- package/dist/src/session/session-controller.js +273 -0
- package/dist/src/session/session-controller.js.map +1 -0
- package/dist/src/shared/services/index.d.ts +0 -2
- package/dist/src/shared/services/index.d.ts.map +1 -1
- package/dist/src/shared/services/index.js +0 -2
- package/dist/src/shared/services/index.js.map +1 -1
- package/dist/src/shared/version.d.ts +10 -0
- package/dist/src/shared/version.d.ts.map +1 -0
- package/dist/src/shared/version.js +32 -0
- package/dist/src/shared/version.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +27 -15
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/element-resolver.js +196 -91
- package/dist/src/snapshot/element-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/attribute-extractor.js +4 -0
- package/dist/src/snapshot/extractors/attribute-extractor.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/layout-extractor.d.ts +9 -7
- package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/layout-extractor.js +34 -19
- package/dist/src/snapshot/extractors/layout-extractor.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/state-extractor.d.ts +2 -2
- package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/state-extractor.js +22 -2
- package/dist/src/snapshot/extractors/state-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/types.d.ts +14 -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 +40 -549
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
- package/dist/src/snapshot/snapshot.types.d.ts +17 -3
- 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 +28 -6
- package/dist/src/state/actionables-filter.js.map +1 -1
- package/dist/src/state/atoms-extractor.d.ts.map +1 -1
- package/dist/src/state/atoms-extractor.js +3 -23
- package/dist/src/state/atoms-extractor.js.map +1 -1
- package/dist/src/state/diff-engine.d.ts.map +1 -1
- package/dist/src/state/diff-engine.js +9 -36
- package/dist/src/state/diff-engine.js.map +1 -1
- package/dist/src/state/element-identity.d.ts +3 -6
- package/dist/src/state/element-identity.d.ts.map +1 -1
- package/dist/src/state/element-identity.js +10 -7
- package/dist/src/state/element-identity.js.map +1 -1
- package/dist/src/state/element-ref.types.d.ts +5 -27
- package/dist/src/state/element-ref.types.d.ts.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 +11 -193
- 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 +17 -3
- package/dist/src/state/state-renderer.js.map +1 -1
- package/dist/src/state/types.d.ts +10 -5
- 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 +76 -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 +55 -0
- package/dist/src/tools/action-context.d.ts.map +1 -0
- package/dist/src/tools/action-context.js +69 -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 +93 -0
- package/dist/src/tools/action-stabilization.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +9 -167
- package/dist/src/tools/browser-tools.d.ts.map +1 -1
- package/dist/src/tools/browser-tools.js +15 -651
- package/dist/src/tools/browser-tools.js.map +1 -1
- package/dist/src/tools/canvas-tools.d.ts +2 -1
- package/dist/src/tools/canvas-tools.d.ts.map +1 -1
- package/dist/src/tools/canvas-tools.js +5 -7
- package/dist/src/tools/canvas-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/errors.d.ts +2 -34
- package/dist/src/tools/errors.d.ts.map +1 -1
- package/dist/src/tools/errors.js +1 -44
- package/dist/src/tools/errors.js.map +1 -1
- package/dist/src/tools/execute-action.d.ts +5 -34
- package/dist/src/tools/execute-action.d.ts.map +1 -1
- package/dist/src/tools/execute-action.js +37 -297
- package/dist/src/tools/execute-action.js.map +1 -1
- package/dist/src/tools/form-tools.d.ts +5 -10
- package/dist/src/tools/form-tools.d.ts.map +1 -1
- package/dist/src/tools/form-tools.js +42 -22
- package/dist/src/tools/form-tools.js.map +1 -1
- package/dist/src/tools/index.d.ts +6 -6
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +16 -17
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/interaction-tools.d.ts +47 -0
- package/dist/src/tools/interaction-tools.d.ts.map +1 -0
- package/dist/src/tools/interaction-tools.js +135 -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 +51 -0
- package/dist/src/tools/navigation-tools.d.ts.map +1 -0
- package/dist/src/tools/navigation-tools.js +171 -0
- package/dist/src/tools/navigation-tools.js.map +1 -0
- package/dist/src/tools/observation-tools.d.ts +54 -0
- package/dist/src/tools/observation-tools.d.ts.map +1 -0
- package/dist/src/tools/observation-tools.js +243 -0
- package/dist/src/tools/observation-tools.js.map +1 -0
- package/dist/src/tools/readability-tools.d.ts +16 -0
- package/dist/src/tools/readability-tools.d.ts.map +1 -0
- package/dist/src/tools/readability-tools.js +45 -0
- package/dist/src/tools/readability-tools.js.map +1 -0
- package/dist/src/tools/response-builder.d.ts +20 -32
- package/dist/src/tools/response-builder.d.ts.map +1 -1
- package/dist/src/tools/response-builder.js +32 -48
- 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 +103 -0
- package/dist/src/tools/stale-element-retry.js.map +1 -0
- package/dist/src/tools/tool-context.d.ts +4 -36
- package/dist/src/tools/tool-context.d.ts.map +1 -1
- package/dist/src/tools/tool-context.js +6 -75
- package/dist/src/tools/tool-context.js.map +1 -1
- package/dist/src/tools/tool-context.types.d.ts +141 -0
- package/dist/src/tools/tool-context.types.d.ts.map +1 -0
- package/dist/src/tools/tool-context.types.js +11 -0
- package/dist/src/tools/tool-context.types.js.map +1 -0
- package/dist/src/tools/tool-registration.d.ts +25 -0
- package/dist/src/tools/tool-registration.d.ts.map +1 -0
- package/dist/src/tools/tool-registration.js +180 -0
- package/dist/src/tools/tool-registration.js.map +1 -0
- package/dist/src/tools/tool-schemas.d.ts +176 -1950
- package/dist/src/tools/tool-schemas.d.ts.map +1 -1
- package/dist/src/tools/tool-schemas.js +80 -320
- package/dist/src/tools/tool-schemas.js.map +1 -1
- package/dist/src/tools/viewport-tools.d.ts +37 -0
- package/dist/src/tools/viewport-tools.d.ts.map +1 -0
- package/dist/src/tools/viewport-tools.js +101 -0
- package/dist/src/tools/viewport-tools.js.map +1 -0
- package/dist/src/worker/chrome-worker-process.d.ts +4 -0
- package/dist/src/worker/chrome-worker-process.d.ts.map +1 -1
- package/dist/src/worker/chrome-worker-process.js +1 -1
- package/dist/src/worker/chrome-worker-process.js.map +1 -1
- package/package.json +7 -3
- package/dist/src/factpack/action-selector.d.ts +0 -36
- package/dist/src/factpack/action-selector.d.ts.map +0 -1
- package/dist/src/factpack/action-selector.js +0 -367
- package/dist/src/factpack/action-selector.js.map +0 -1
- package/dist/src/factpack/dialog-detector.d.ts +0 -19
- package/dist/src/factpack/dialog-detector.d.ts.map +0 -1
- package/dist/src/factpack/dialog-detector.js +0 -354
- package/dist/src/factpack/dialog-detector.js.map +0 -1
- package/dist/src/factpack/form-detector.d.ts +0 -28
- package/dist/src/factpack/form-detector.d.ts.map +0 -1
- package/dist/src/factpack/form-detector.js +0 -555
- package/dist/src/factpack/form-detector.js.map +0 -1
- package/dist/src/factpack/index.d.ts +0 -32
- package/dist/src/factpack/index.d.ts.map +0 -1
- package/dist/src/factpack/index.js +0 -73
- package/dist/src/factpack/index.js.map +0 -1
- package/dist/src/factpack/page-classifier.d.ts +0 -22
- package/dist/src/factpack/page-classifier.d.ts.map +0 -1
- package/dist/src/factpack/page-classifier.js +0 -526
- package/dist/src/factpack/page-classifier.js.map +0 -1
- package/dist/src/factpack/types.d.ts +0 -307
- package/dist/src/factpack/types.d.ts.map +0 -1
- package/dist/src/factpack/types.js +0 -12
- package/dist/src/factpack/types.js.map +0 -1
- package/dist/src/lib/constants.d.ts +0 -27
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -63
- package/dist/src/lib/constants.js.map +0 -1
- package/dist/src/lib/index.d.ts +0 -12
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -17
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/lib/regions.d.ts +0 -29
- package/dist/src/lib/regions.d.ts.map +0 -1
- package/dist/src/lib/regions.js +0 -93
- package/dist/src/lib/regions.js.map +0 -1
- package/dist/src/lib/scoring.d.ts +0 -47
- package/dist/src/lib/scoring.d.ts.map +0 -1
- package/dist/src/lib/scoring.js +0 -79
- package/dist/src/lib/scoring.js.map +0 -1
- package/dist/src/lib/selectors.d.ts +0 -42
- package/dist/src/lib/selectors.d.ts.map +0 -1
- package/dist/src/lib/selectors.js +0 -138
- package/dist/src/lib/selectors.js.map +0 -1
- package/dist/src/renderer/budget-manager.d.ts +0 -46
- package/dist/src/renderer/budget-manager.d.ts.map +0 -1
- package/dist/src/renderer/budget-manager.js +0 -133
- package/dist/src/renderer/budget-manager.js.map +0 -1
- package/dist/src/renderer/constants.d.ts +0 -38
- package/dist/src/renderer/constants.d.ts.map +0 -1
- package/dist/src/renderer/constants.js +0 -29
- package/dist/src/renderer/constants.js.map +0 -1
- package/dist/src/renderer/index.d.ts +0 -12
- package/dist/src/renderer/index.d.ts.map +0 -1
- package/dist/src/renderer/index.js +0 -16
- package/dist/src/renderer/index.js.map +0 -1
- package/dist/src/renderer/section-renderers.d.ts +0 -42
- package/dist/src/renderer/section-renderers.d.ts.map +0 -1
- package/dist/src/renderer/section-renderers.js +0 -252
- package/dist/src/renderer/section-renderers.js.map +0 -1
- package/dist/src/renderer/token-counter.d.ts +0 -45
- package/dist/src/renderer/token-counter.d.ts.map +0 -1
- package/dist/src/renderer/token-counter.js +0 -65
- package/dist/src/renderer/token-counter.js.map +0 -1
- package/dist/src/renderer/types.d.ts +0 -71
- package/dist/src/renderer/types.d.ts.map +0 -1
- package/dist/src/renderer/types.js +0 -7
- package/dist/src/renderer/types.js.map +0 -1
- package/dist/src/renderer/xml-renderer.d.ts +0 -42
- package/dist/src/renderer/xml-renderer.d.ts.map +0 -1
- package/dist/src/renderer/xml-renderer.js +0 -103
- package/dist/src/renderer/xml-renderer.js.map +0 -1
- package/dist/src/server/session-store.d.ts +0 -163
- package/dist/src/server/session-store.d.ts.map +0 -1
- package/dist/src/server/session-store.js +0 -248
- package/dist/src/server/session-store.js.map +0 -1
- package/dist/src/session/session-worker-binding.d.ts +0 -57
- package/dist/src/session/session-worker-binding.d.ts.map +0 -1
- package/dist/src/session/session-worker-binding.js +0 -109
- package/dist/src/session/session-worker-binding.js.map +0 -1
- package/dist/src/shared/services/dom-transformer.service.d.ts +0 -71
- package/dist/src/shared/services/dom-transformer.service.d.ts.map +0 -1
- package/dist/src/shared/services/dom-transformer.service.js +0 -190
- package/dist/src/shared/services/dom-transformer.service.js.map +0 -1
- package/dist/src/shared/services/selector-builder.service.d.ts +0 -53
- package/dist/src/shared/services/selector-builder.service.d.ts.map +0 -1
- package/dist/src/shared/services/selector-builder.service.js +0 -240
- package/dist/src/shared/services/selector-builder.service.js.map +0 -1
- package/dist/src/state/constants.d.ts +0 -125
- package/dist/src/state/constants.d.ts.map +0 -1
- package/dist/src/state/constants.js +0 -131
- package/dist/src/state/constants.js.map +0 -1
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DOM Transformer Service
|
|
3
|
-
*
|
|
4
|
-
* Transforms CDP DOM.getDocument responses into our DomTreeNode format
|
|
5
|
-
*
|
|
6
|
-
* FIXES: The stub implementation in browser-automation-mcp-server.ts:731-736
|
|
7
|
-
* that returned { nodes: [] } without transforming the CDP response
|
|
8
|
-
*/
|
|
9
|
-
export class DomTransformerService {
|
|
10
|
-
/**
|
|
11
|
-
* Transform CDP DOM.getDocument response into our DomTreeNode format
|
|
12
|
-
*/
|
|
13
|
-
transform(cdpResponse, params) {
|
|
14
|
-
const nodes = [];
|
|
15
|
-
const maxDepth = params.depth ?? -1; // -1 means infinite depth
|
|
16
|
-
this.transformNode(cdpResponse.root, 0, maxDepth, nodes, params.visibleOnly ?? false);
|
|
17
|
-
return { nodes };
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Recursively transform a CDP node and its children
|
|
21
|
-
*/
|
|
22
|
-
transformNode(cdpNode, currentDepth, maxDepth, nodes, visibleOnly) {
|
|
23
|
-
// For document nodes (nodeType === 9), just process children
|
|
24
|
-
if (cdpNode.nodeType === 9) {
|
|
25
|
-
if (cdpNode.children && cdpNode.children.length > 0) {
|
|
26
|
-
for (const child of cdpNode.children) {
|
|
27
|
-
this.transformNode(child, currentDepth, maxDepth, nodes, visibleOnly);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
// Skip non-element nodes unless they're text nodes
|
|
33
|
-
if (cdpNode.nodeType !== 1 && cdpNode.nodeType !== 3) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
// Check depth limit
|
|
37
|
-
if (maxDepth >= 0 && currentDepth > maxDepth) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
// For element nodes (nodeType === 1)
|
|
41
|
-
if (cdpNode.nodeType === 1) {
|
|
42
|
-
const attributesArray = cdpNode.attributes ?? [];
|
|
43
|
-
const attributesMap = this.parseAttributes(attributesArray);
|
|
44
|
-
// Skip if visibleOnly is true and element has display:none or visibility:hidden
|
|
45
|
-
if (visibleOnly && this.isHiddenByStyle(attributesMap)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const node = {
|
|
49
|
-
id: `node-${cdpNode.nodeId}`,
|
|
50
|
-
nodeId: cdpNode.nodeId,
|
|
51
|
-
tag: cdpNode.localName && cdpNode.localName.length > 0
|
|
52
|
-
? cdpNode.localName
|
|
53
|
-
: cdpNode.nodeName.toLowerCase(),
|
|
54
|
-
attrs: attributesArray,
|
|
55
|
-
children: [],
|
|
56
|
-
};
|
|
57
|
-
// Add text content if this is a leaf node with text
|
|
58
|
-
const textContent = this.extractTextContent(cdpNode);
|
|
59
|
-
if (textContent) {
|
|
60
|
-
node.text = textContent;
|
|
61
|
-
}
|
|
62
|
-
// Recursively process children
|
|
63
|
-
if (cdpNode.children && cdpNode.children.length > 0) {
|
|
64
|
-
for (const child of cdpNode.children) {
|
|
65
|
-
const childNodes = [];
|
|
66
|
-
this.transformNode(child, currentDepth + 1, maxDepth, childNodes, visibleOnly);
|
|
67
|
-
if (node.children) {
|
|
68
|
-
node.children.push(...childNodes);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
nodes.push(node);
|
|
73
|
-
}
|
|
74
|
-
// For text nodes (nodeType === 3)
|
|
75
|
-
else if (cdpNode.nodeType === 3 && cdpNode.nodeValue) {
|
|
76
|
-
const trimmedText = cdpNode.nodeValue.trim();
|
|
77
|
-
if (trimmedText) {
|
|
78
|
-
// Text nodes are represented as special nodes
|
|
79
|
-
const textNode = {
|
|
80
|
-
id: `text-${cdpNode.nodeId}`,
|
|
81
|
-
tag: '#text',
|
|
82
|
-
attrs: [],
|
|
83
|
-
text: trimmedText,
|
|
84
|
-
children: [],
|
|
85
|
-
};
|
|
86
|
-
nodes.push(textNode);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Parse CDP attributes array [key1, value1, key2, value2, ...] to object
|
|
92
|
-
*/
|
|
93
|
-
parseAttributes(attrs) {
|
|
94
|
-
const result = {};
|
|
95
|
-
for (let i = 0; i < attrs.length; i += 2) {
|
|
96
|
-
result[attrs[i]] = attrs[i + 1];
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Check if element is hidden by inline style
|
|
102
|
-
*/
|
|
103
|
-
isHiddenByStyle(attributes) {
|
|
104
|
-
const style = attributes.style || '';
|
|
105
|
-
return (style.includes('display:none') ||
|
|
106
|
-
style.includes('display: none') ||
|
|
107
|
-
style.includes('visibility:hidden') ||
|
|
108
|
-
style.includes('visibility: hidden'));
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Extract text content from immediate text children
|
|
112
|
-
*/
|
|
113
|
-
extractTextContent(cdpNode) {
|
|
114
|
-
if (!cdpNode.children || cdpNode.children.length === 0) {
|
|
115
|
-
return undefined;
|
|
116
|
-
}
|
|
117
|
-
const textParts = [];
|
|
118
|
-
for (const child of cdpNode.children) {
|
|
119
|
-
if (child.nodeType === 3 && child.nodeValue) {
|
|
120
|
-
const trimmed = child.nodeValue.trim();
|
|
121
|
-
if (trimmed) {
|
|
122
|
-
textParts.push(trimmed);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (textParts.length === 0) {
|
|
127
|
-
return undefined;
|
|
128
|
-
}
|
|
129
|
-
return textParts.join(' ');
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Flatten tree structure into array (breadth-first traversal)
|
|
133
|
-
*/
|
|
134
|
-
flattenTree(nodes) {
|
|
135
|
-
const flattened = [];
|
|
136
|
-
const queue = [...nodes];
|
|
137
|
-
while (queue.length > 0) {
|
|
138
|
-
const node = queue.shift();
|
|
139
|
-
flattened.push(node);
|
|
140
|
-
if (node.children && node.children.length > 0) {
|
|
141
|
-
queue.push(...node.children);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return flattened;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Filter nodes by tag name
|
|
148
|
-
*/
|
|
149
|
-
filterByTag(nodes, tag) {
|
|
150
|
-
const results = [];
|
|
151
|
-
for (const node of nodes) {
|
|
152
|
-
if (node.tag === tag) {
|
|
153
|
-
results.push(node);
|
|
154
|
-
}
|
|
155
|
-
if (node.children && node.children.length > 0) {
|
|
156
|
-
results.push(...this.filterByTag(node.children, tag));
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return results;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Find nodes by attribute
|
|
163
|
-
*/
|
|
164
|
-
findByAttribute(nodes, attrName, attrValue) {
|
|
165
|
-
const results = [];
|
|
166
|
-
for (const node of nodes) {
|
|
167
|
-
// attrs is an array like [key1, value1, key2, value2, ...]
|
|
168
|
-
if (node.attrs) {
|
|
169
|
-
const index = node.attrs.indexOf(attrName);
|
|
170
|
-
if (index !== -1) {
|
|
171
|
-
if (attrValue !== undefined) {
|
|
172
|
-
// Check if the value matches
|
|
173
|
-
if (index + 1 < node.attrs.length && node.attrs[index + 1] === attrValue) {
|
|
174
|
-
results.push(node);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
// Just checking if attribute exists
|
|
179
|
-
results.push(node);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
if (node.children && node.children.length > 0) {
|
|
184
|
-
results.push(...this.findByAttribute(node.children, attrName, attrValue));
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return results;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=dom-transformer.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dom-transformer.service.js","sourceRoot":"","sources":["../../../../src/shared/services/dom-transformer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Selector Builder Service
|
|
3
|
-
*
|
|
4
|
-
* Generates CSS, XPath, and accessibility selectors for DOM elements
|
|
5
|
-
*/
|
|
6
|
-
import type { CdpClient } from '../../cdp/cdp-client.interface.js';
|
|
7
|
-
import type { Selectors } from '../types/index.js';
|
|
8
|
-
export declare class SelectorBuilderService {
|
|
9
|
-
private readonly cdpClient;
|
|
10
|
-
constructor(cdpClient: CdpClient);
|
|
11
|
-
/**
|
|
12
|
-
* Build comprehensive selectors for a given node
|
|
13
|
-
*/
|
|
14
|
-
buildSelectors(nodeId: number, _frameId: string): Promise<Selectors>;
|
|
15
|
-
/**
|
|
16
|
-
* Build a CSS selector for an element
|
|
17
|
-
* Strategy: Use ID if available, otherwise build a path using classes/nth-child
|
|
18
|
-
*/
|
|
19
|
-
private buildCssSelector;
|
|
20
|
-
/**
|
|
21
|
-
* Build a CSS path using tag names and nth-child
|
|
22
|
-
*/
|
|
23
|
-
private buildCssPath;
|
|
24
|
-
/**
|
|
25
|
-
* Build an XPath selector for an element
|
|
26
|
-
*/
|
|
27
|
-
private buildXPathSelector;
|
|
28
|
-
/**
|
|
29
|
-
* Build an accessibility selector (role-based)
|
|
30
|
-
*/
|
|
31
|
-
private buildAccessibilitySelector;
|
|
32
|
-
/**
|
|
33
|
-
* Get node description from CDP
|
|
34
|
-
*/
|
|
35
|
-
private getNodeDescription;
|
|
36
|
-
/**
|
|
37
|
-
* Get parent node ID
|
|
38
|
-
*/
|
|
39
|
-
private getParentNode;
|
|
40
|
-
/**
|
|
41
|
-
* Get the nth-child position of a node among its siblings
|
|
42
|
-
*/
|
|
43
|
-
private getNthChildPosition;
|
|
44
|
-
/**
|
|
45
|
-
* Check if a CSS selector uniquely identifies a single element
|
|
46
|
-
*/
|
|
47
|
-
private isSelectorUnique;
|
|
48
|
-
/**
|
|
49
|
-
* Parse CDP attributes array to key-value pairs
|
|
50
|
-
*/
|
|
51
|
-
private parseAttributes;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=selector-builder.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selector-builder.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/services/selector-builder.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAWnD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAEjD;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAU1E;;;OAGG;YACW,gBAAgB;IA8B9B;;OAEG;YACW,YAAY;IAmC1B;;OAEG;YACW,kBAAkB;IAsChC;;OAEG;YACW,0BAA0B;IAyBxC;;OAEG;YACW,kBAAkB;IAMhC;;OAEG;YACW,aAAa;IAmC3B;;OAEG;YACW,mBAAmB;IAiCjC;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACH,OAAO,CAAC,eAAe;CAOxB"}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Selector Builder Service
|
|
3
|
-
*
|
|
4
|
-
* Generates CSS, XPath, and accessibility selectors for DOM elements
|
|
5
|
-
*/
|
|
6
|
-
export class SelectorBuilderService {
|
|
7
|
-
cdpClient;
|
|
8
|
-
constructor(cdpClient) {
|
|
9
|
-
this.cdpClient = cdpClient;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Build comprehensive selectors for a given node
|
|
13
|
-
*/
|
|
14
|
-
async buildSelectors(nodeId, _frameId) {
|
|
15
|
-
const [css, xpath, ax] = await Promise.all([
|
|
16
|
-
this.buildCssSelector(nodeId),
|
|
17
|
-
this.buildXPathSelector(nodeId),
|
|
18
|
-
this.buildAccessibilitySelector(nodeId),
|
|
19
|
-
]);
|
|
20
|
-
return { css, xpath, ax };
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Build a CSS selector for an element
|
|
24
|
-
* Strategy: Use ID if available, otherwise build a path using classes/nth-child
|
|
25
|
-
*/
|
|
26
|
-
async buildCssSelector(nodeId) {
|
|
27
|
-
try {
|
|
28
|
-
const nodeInfo = await this.getNodeDescription(nodeId);
|
|
29
|
-
const attributes = this.parseAttributes(nodeInfo.node.attributes ?? []);
|
|
30
|
-
// Strategy 1: Use ID (most specific)
|
|
31
|
-
if (attributes.id) {
|
|
32
|
-
return `#${attributes.id}`;
|
|
33
|
-
}
|
|
34
|
-
// Strategy 2: Use unique class combination
|
|
35
|
-
if (attributes.class) {
|
|
36
|
-
const classes = attributes.class.split(/\s+/).filter(Boolean);
|
|
37
|
-
if (classes.length > 0) {
|
|
38
|
-
const classSelector = `.${classes.join('.')}`;
|
|
39
|
-
const isUnique = await this.isSelectorUnique(classSelector);
|
|
40
|
-
if (isUnique) {
|
|
41
|
-
return classSelector;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Strategy 3: Build a path using tag names and nth-child
|
|
46
|
-
const path = await this.buildCssPath(nodeId);
|
|
47
|
-
return path;
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Build a CSS path using tag names and nth-child
|
|
55
|
-
*/
|
|
56
|
-
async buildCssPath(nodeId) {
|
|
57
|
-
const segments = [];
|
|
58
|
-
let currentNodeId = nodeId;
|
|
59
|
-
try {
|
|
60
|
-
while (currentNodeId) {
|
|
61
|
-
const nodeInfo = await this.getNodeDescription(currentNodeId);
|
|
62
|
-
const tagName = nodeInfo.node.localName.toLowerCase();
|
|
63
|
-
// Get the nth-child position
|
|
64
|
-
const position = await this.getNthChildPosition(currentNodeId);
|
|
65
|
-
if (tagName === 'html') {
|
|
66
|
-
segments.unshift('html');
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
if (position > 1) {
|
|
70
|
-
segments.unshift(`${tagName}:nth-child(${position})`);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
segments.unshift(tagName);
|
|
74
|
-
}
|
|
75
|
-
// Get parent node
|
|
76
|
-
const parent = await this.getParentNode(currentNodeId);
|
|
77
|
-
if (!parent)
|
|
78
|
-
break;
|
|
79
|
-
currentNodeId = parent;
|
|
80
|
-
}
|
|
81
|
-
return segments.join(' > ');
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return 'body';
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Build an XPath selector for an element
|
|
89
|
-
*/
|
|
90
|
-
async buildXPathSelector(nodeId) {
|
|
91
|
-
try {
|
|
92
|
-
const segments = [];
|
|
93
|
-
let currentNodeId = nodeId;
|
|
94
|
-
while (currentNodeId) {
|
|
95
|
-
const nodeInfo = await this.getNodeDescription(currentNodeId);
|
|
96
|
-
const tagName = nodeInfo.node.localName.toLowerCase();
|
|
97
|
-
const attributes = this.parseAttributes(nodeInfo.node.attributes ?? []);
|
|
98
|
-
// Use ID if available
|
|
99
|
-
if (attributes.id) {
|
|
100
|
-
segments.unshift(`//*[@id="${attributes.id}"]`);
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
// Get position among siblings
|
|
104
|
-
const position = await this.getNthChildPosition(currentNodeId);
|
|
105
|
-
if (tagName === 'html') {
|
|
106
|
-
segments.unshift('/html');
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
segments.unshift(`/${tagName}[${position}]`);
|
|
110
|
-
// Get parent node
|
|
111
|
-
const parent = await this.getParentNode(currentNodeId);
|
|
112
|
-
if (!parent)
|
|
113
|
-
break;
|
|
114
|
-
currentNodeId = parent;
|
|
115
|
-
}
|
|
116
|
-
return segments.join('');
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Build an accessibility selector (role-based)
|
|
124
|
-
*/
|
|
125
|
-
async buildAccessibilitySelector(nodeId) {
|
|
126
|
-
try {
|
|
127
|
-
const nodeInfo = await this.getNodeDescription(nodeId);
|
|
128
|
-
const attributes = this.parseAttributes(nodeInfo.node.attributes ?? []);
|
|
129
|
-
const role = attributes.role ?? attributes['aria-role'];
|
|
130
|
-
const label = attributes['aria-label'];
|
|
131
|
-
const name = attributes.name;
|
|
132
|
-
if (role && label) {
|
|
133
|
-
return `role=${role}[label="${label}"]`;
|
|
134
|
-
}
|
|
135
|
-
if (role && name) {
|
|
136
|
-
return `role=${role}[name="${name}"]`;
|
|
137
|
-
}
|
|
138
|
-
if (role) {
|
|
139
|
-
return `role=${role}`;
|
|
140
|
-
}
|
|
141
|
-
return undefined;
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
return undefined;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Get node description from CDP
|
|
149
|
-
*/
|
|
150
|
-
async getNodeDescription(nodeId) {
|
|
151
|
-
return this.cdpClient.send('DOM.describeNode', {
|
|
152
|
-
nodeId,
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Get parent node ID
|
|
157
|
-
*/
|
|
158
|
-
async getParentNode(nodeId) {
|
|
159
|
-
try {
|
|
160
|
-
const resolved = await this.cdpClient.send('DOM.resolveNode', { nodeId });
|
|
161
|
-
const objectId = resolved.object?.objectId;
|
|
162
|
-
if (!objectId) {
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
const parentResult = await this.cdpClient.send('Runtime.callFunctionOn', {
|
|
166
|
-
objectId,
|
|
167
|
-
functionDeclaration: 'function() { return this.parentElement; }',
|
|
168
|
-
returnByValue: false,
|
|
169
|
-
});
|
|
170
|
-
const parentObjectId = parentResult.result.objectId;
|
|
171
|
-
if (!parentObjectId) {
|
|
172
|
-
return null;
|
|
173
|
-
}
|
|
174
|
-
const parentNode = await this.cdpClient.send('DOM.describeNode', {
|
|
175
|
-
objectId: parentObjectId,
|
|
176
|
-
});
|
|
177
|
-
return parentNode.node.nodeId;
|
|
178
|
-
}
|
|
179
|
-
catch {
|
|
180
|
-
return null;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get the nth-child position of a node among its siblings
|
|
185
|
-
*/
|
|
186
|
-
async getNthChildPosition(nodeId) {
|
|
187
|
-
try {
|
|
188
|
-
const resolved = await this.cdpClient.send('DOM.resolveNode', { nodeId });
|
|
189
|
-
const objectId = resolved.object?.objectId;
|
|
190
|
-
if (!objectId)
|
|
191
|
-
return 1;
|
|
192
|
-
const result = await this.cdpClient.send('Runtime.callFunctionOn', {
|
|
193
|
-
objectId,
|
|
194
|
-
functionDeclaration: `
|
|
195
|
-
function() {
|
|
196
|
-
if (!this.parentElement) {
|
|
197
|
-
return 1;
|
|
198
|
-
}
|
|
199
|
-
const siblings = Array.from(this.parentElement.children).filter(
|
|
200
|
-
(child) => child.tagName === this.tagName
|
|
201
|
-
);
|
|
202
|
-
const index = siblings.indexOf(this);
|
|
203
|
-
return index === -1 ? 1 : index + 1;
|
|
204
|
-
}
|
|
205
|
-
`,
|
|
206
|
-
returnByValue: true,
|
|
207
|
-
});
|
|
208
|
-
return result.result.value ?? 1;
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
return 1;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Check if a CSS selector uniquely identifies a single element
|
|
216
|
-
*/
|
|
217
|
-
async isSelectorUnique(selector) {
|
|
218
|
-
try {
|
|
219
|
-
const result = await this.cdpClient.send('Runtime.evaluate', {
|
|
220
|
-
expression: `document.querySelectorAll(${JSON.stringify(selector)}).length`,
|
|
221
|
-
returnByValue: true,
|
|
222
|
-
});
|
|
223
|
-
return result.result.value === 1;
|
|
224
|
-
}
|
|
225
|
-
catch {
|
|
226
|
-
return false;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Parse CDP attributes array to key-value pairs
|
|
231
|
-
*/
|
|
232
|
-
parseAttributes(attrs) {
|
|
233
|
-
const result = {};
|
|
234
|
-
for (let i = 0; i < attrs.length; i += 2) {
|
|
235
|
-
result[attrs[i]] = attrs[i + 1];
|
|
236
|
-
}
|
|
237
|
-
return result;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=selector-builder.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selector-builder.service.js","sourceRoot":"","sources":["../../../../src/shared/services/selector-builder.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State System Constants
|
|
3
|
-
*
|
|
4
|
-
* Centralized configuration for magic numbers used across the state system.
|
|
5
|
-
* Each constant includes rationale for its value.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Viewport thresholds for quadrant computation.
|
|
9
|
-
* Used to compute coarse position hints for element disambiguation.
|
|
10
|
-
*/
|
|
11
|
-
export declare const VIEWPORT: {
|
|
12
|
-
/**
|
|
13
|
-
* Horizontal midpoint for quadrant detection.
|
|
14
|
-
* Assumes common viewport width ~1000px (iPad, small desktop).
|
|
15
|
-
* Elements left of this are 'L', right are 'R'.
|
|
16
|
-
*/
|
|
17
|
-
readonly MIDPOINT_X: 500;
|
|
18
|
-
/**
|
|
19
|
-
* Vertical midpoint for quadrant detection.
|
|
20
|
-
* Assumes common viewport height ~800px or fold line at 50%.
|
|
21
|
-
* Elements above this are 'T', below are 'B'.
|
|
22
|
-
*/
|
|
23
|
-
readonly MIDPOINT_Y: 400;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Accessible name normalization limits.
|
|
27
|
-
*/
|
|
28
|
-
export declare const ACCESSIBLE_NAME: {
|
|
29
|
-
/**
|
|
30
|
-
* Maximum length for normalized accessible names.
|
|
31
|
-
* Truncated to prevent excessively long EID inputs.
|
|
32
|
-
*/
|
|
33
|
-
readonly MAX_LENGTH: 100;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Layer detection confidence thresholds.
|
|
37
|
-
*/
|
|
38
|
-
export declare const LAYER_CONFIDENCE: {
|
|
39
|
-
/**
|
|
40
|
-
* Minimum confidence score to include layer in stack.
|
|
41
|
-
* Candidates below this are filtered out.
|
|
42
|
-
* Value chosen empirically: modal detection is high confidence (0.95+),
|
|
43
|
-
* while class-based detection is lower (0.65-0.75).
|
|
44
|
-
* 0.6 threshold excludes weak class matches while keeping strong patterns.
|
|
45
|
-
*/
|
|
46
|
-
readonly MIN_THRESHOLD: 0.6;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Z-index thresholds for layer type detection.
|
|
50
|
-
* Modern UI libraries typically use z-index ranges:
|
|
51
|
-
* - Base content: 0-50
|
|
52
|
-
* - Fixed headers/footers: 50-100
|
|
53
|
-
* - Drawers/sidebars: 100-500
|
|
54
|
-
* - Modals: 500-1000+
|
|
55
|
-
* - Tooltips/popovers: 100-500
|
|
56
|
-
*/
|
|
57
|
-
export declare const Z_INDEX: {
|
|
58
|
-
/**
|
|
59
|
-
* Z-index threshold for high-confidence modal detection.
|
|
60
|
-
* Dialogs with z-index > 1000 are almost certainly modals.
|
|
61
|
-
*/
|
|
62
|
-
readonly MODAL_HIGH: 1000;
|
|
63
|
-
/**
|
|
64
|
-
* Minimum z-index for portal container detection.
|
|
65
|
-
* React/Vue portals typically render at z-index >= 100.
|
|
66
|
-
*/
|
|
67
|
-
readonly PORTAL_MIN: 100;
|
|
68
|
-
/**
|
|
69
|
-
* Z-index threshold for portal area coverage check.
|
|
70
|
-
* Large elements at this z-index likely cover significant viewport.
|
|
71
|
-
*/
|
|
72
|
-
readonly PORTAL_HIGH: 500;
|
|
73
|
-
/**
|
|
74
|
-
* Minimum z-index for drawer overlay detection.
|
|
75
|
-
* Below this, element is likely inline nav, not overlay drawer.
|
|
76
|
-
*/
|
|
77
|
-
readonly DRAWER_MIN: 50;
|
|
78
|
-
/**
|
|
79
|
-
* Z-index threshold for confident drawer detection.
|
|
80
|
-
* Drawers with z-index > 100 are likely overlay panels.
|
|
81
|
-
*/
|
|
82
|
-
readonly DRAWER_HIGH: 100;
|
|
83
|
-
/**
|
|
84
|
-
* Minimum z-index for popover detection.
|
|
85
|
-
* Standard popovers (menus, tooltips) render above this.
|
|
86
|
-
*/
|
|
87
|
-
readonly POPOVER_MIN: 100;
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* Size thresholds for element detection.
|
|
91
|
-
*/
|
|
92
|
-
export declare const ELEMENT_SIZE: {
|
|
93
|
-
/**
|
|
94
|
-
* Minimum width for portal container detection.
|
|
95
|
-
* Portals typically have meaningful content size.
|
|
96
|
-
*/
|
|
97
|
-
readonly PORTAL_MIN_WIDTH: 200;
|
|
98
|
-
/**
|
|
99
|
-
* Minimum height for portal container detection.
|
|
100
|
-
*/
|
|
101
|
-
readonly PORTAL_MIN_HEIGHT: 200;
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Edge position detection thresholds.
|
|
105
|
-
* Used to identify drawers positioned at viewport edges.
|
|
106
|
-
*/
|
|
107
|
-
export declare const EDGE_DETECTION: {
|
|
108
|
-
/**
|
|
109
|
-
* Maximum x-coordinate for left edge detection.
|
|
110
|
-
* Elements with x < 10 are considered left-edge positioned.
|
|
111
|
-
*/
|
|
112
|
-
readonly LEFT_MAX_X: 10;
|
|
113
|
-
/**
|
|
114
|
-
* Minimum right edge position.
|
|
115
|
-
* rightEdge (x + width) must exceed this to be right-edge positioned.
|
|
116
|
-
* Assumes typical viewport width ~1366px (common laptop).
|
|
117
|
-
*/
|
|
118
|
-
readonly RIGHT_MIN: 1200;
|
|
119
|
-
/**
|
|
120
|
-
* Minimum x-coordinate for right edge detection.
|
|
121
|
-
* Prevents false positives from wide centered elements.
|
|
122
|
-
*/
|
|
123
|
-
readonly RIGHT_MIN_X: 800;
|
|
124
|
-
};
|
|
125
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/state/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB;;;;OAIG;;IAGH;;;;OAIG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;;OAGG;;CAEK,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;CAEK,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO;IAClB;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;;OAGG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB;;;OAGG;;IAGH;;;;OAIG;;IAGH;;;OAGG;;CAEK,CAAC"}
|