agent-web-interface 4.0.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/LICENSE +21 -0
- package/README.md +226 -0
- package/dist/src/browser/ensure-browser.d.ts +39 -0
- package/dist/src/browser/ensure-browser.d.ts.map +1 -0
- package/dist/src/browser/ensure-browser.js +65 -0
- package/dist/src/browser/ensure-browser.js.map +1 -0
- package/dist/src/browser/index.d.ts +8 -0
- package/dist/src/browser/index.d.ts.map +1 -0
- package/dist/src/browser/index.js +8 -0
- package/dist/src/browser/index.js.map +1 -0
- package/dist/src/browser/page-network-tracker.d.ts +96 -0
- package/dist/src/browser/page-network-tracker.d.ts.map +1 -0
- package/dist/src/browser/page-network-tracker.js +235 -0
- package/dist/src/browser/page-network-tracker.js.map +1 -0
- package/dist/src/browser/page-registry.d.ts +137 -0
- package/dist/src/browser/page-registry.d.ts.map +1 -0
- package/dist/src/browser/page-registry.js +194 -0
- package/dist/src/browser/page-registry.js.map +1 -0
- package/dist/src/browser/page-stabilization.d.ts +35 -0
- package/dist/src/browser/page-stabilization.d.ts.map +1 -0
- package/dist/src/browser/page-stabilization.js +42 -0
- package/dist/src/browser/page-stabilization.js.map +1 -0
- package/dist/src/browser/session-manager.d.ts +336 -0
- package/dist/src/browser/session-manager.d.ts.map +1 -0
- package/dist/src/browser/session-manager.js +964 -0
- package/dist/src/browser/session-manager.js.map +1 -0
- package/dist/src/cdp/cdp-client.interface.d.ts +193 -0
- package/dist/src/cdp/cdp-client.interface.d.ts.map +1 -0
- package/dist/src/cdp/cdp-client.interface.js +9 -0
- package/dist/src/cdp/cdp-client.interface.js.map +1 -0
- package/dist/src/cdp/index.d.ts +9 -0
- package/dist/src/cdp/index.d.ts.map +1 -0
- package/dist/src/cdp/index.js +8 -0
- package/dist/src/cdp/index.js.map +1 -0
- package/dist/src/cdp/puppeteer-cdp-client.d.ts +97 -0
- package/dist/src/cdp/puppeteer-cdp-client.d.ts.map +1 -0
- package/dist/src/cdp/puppeteer-cdp-client.js +273 -0
- package/dist/src/cdp/puppeteer-cdp-client.js.map +1 -0
- package/dist/src/cli/args.d.ts +35 -0
- package/dist/src/cli/args.d.ts.map +1 -0
- package/dist/src/cli/args.js +76 -0
- package/dist/src/cli/args.js.map +1 -0
- package/dist/src/delta/dom-stabilizer.d.ts +46 -0
- package/dist/src/delta/dom-stabilizer.d.ts.map +1 -0
- package/dist/src/delta/dom-stabilizer.js +121 -0
- package/dist/src/delta/dom-stabilizer.js.map +1 -0
- package/dist/src/delta/index.d.ts +8 -0
- package/dist/src/delta/index.d.ts.map +1 -0
- package/dist/src/delta/index.js +7 -0
- package/dist/src/delta/index.js.map +1 -0
- package/dist/src/factpack/action-selector.d.ts +36 -0
- package/dist/src/factpack/action-selector.d.ts.map +1 -0
- package/dist/src/factpack/action-selector.js +367 -0
- package/dist/src/factpack/action-selector.js.map +1 -0
- package/dist/src/factpack/dialog-detector.d.ts +19 -0
- package/dist/src/factpack/dialog-detector.d.ts.map +1 -0
- package/dist/src/factpack/dialog-detector.js +354 -0
- package/dist/src/factpack/dialog-detector.js.map +1 -0
- package/dist/src/factpack/form-detector.d.ts +28 -0
- package/dist/src/factpack/form-detector.d.ts.map +1 -0
- package/dist/src/factpack/form-detector.js +555 -0
- package/dist/src/factpack/form-detector.js.map +1 -0
- package/dist/src/factpack/index.d.ts +32 -0
- package/dist/src/factpack/index.d.ts.map +1 -0
- package/dist/src/factpack/index.js +73 -0
- package/dist/src/factpack/index.js.map +1 -0
- package/dist/src/factpack/page-classifier.d.ts +22 -0
- package/dist/src/factpack/page-classifier.d.ts.map +1 -0
- package/dist/src/factpack/page-classifier.js +526 -0
- package/dist/src/factpack/page-classifier.js.map +1 -0
- package/dist/src/factpack/types.d.ts +307 -0
- package/dist/src/factpack/types.d.ts.map +1 -0
- package/dist/src/factpack/types.js +12 -0
- package/dist/src/factpack/types.js.map +1 -0
- package/dist/src/form/dependency-tracker.d.ts +108 -0
- package/dist/src/form/dependency-tracker.d.ts.map +1 -0
- package/dist/src/form/dependency-tracker.js +298 -0
- package/dist/src/form/dependency-tracker.js.map +1 -0
- package/dist/src/form/field-extractor.d.ts +32 -0
- package/dist/src/form/field-extractor.d.ts.map +1 -0
- package/dist/src/form/field-extractor.js +544 -0
- package/dist/src/form/field-extractor.js.map +1 -0
- package/dist/src/form/form-detector.d.ts +103 -0
- package/dist/src/form/form-detector.d.ts.map +1 -0
- package/dist/src/form/form-detector.js +704 -0
- package/dist/src/form/form-detector.js.map +1 -0
- package/dist/src/form/form-state.d.ts +23 -0
- package/dist/src/form/form-state.d.ts.map +1 -0
- package/dist/src/form/form-state.js +39 -0
- package/dist/src/form/form-state.js.map +1 -0
- package/dist/src/form/index.d.ts +23 -0
- package/dist/src/form/index.d.ts.map +1 -0
- package/dist/src/form/index.js +27 -0
- package/dist/src/form/index.js.map +1 -0
- package/dist/src/form/runtime-value-reader.d.ts +72 -0
- package/dist/src/form/runtime-value-reader.d.ts.map +1 -0
- package/dist/src/form/runtime-value-reader.js +232 -0
- package/dist/src/form/runtime-value-reader.js.map +1 -0
- package/dist/src/form/types.d.ts +384 -0
- package/dist/src/form/types.d.ts.map +1 -0
- package/dist/src/form/types.js +17 -0
- package/dist/src/form/types.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +212 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/constants.d.ts +27 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +63 -0
- package/dist/src/lib/constants.js.map +1 -0
- package/dist/src/lib/index.d.ts +12 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +17 -0
- package/dist/src/lib/index.js.map +1 -0
- package/dist/src/lib/regions.d.ts +29 -0
- package/dist/src/lib/regions.d.ts.map +1 -0
- package/dist/src/lib/regions.js +93 -0
- package/dist/src/lib/regions.js.map +1 -0
- package/dist/src/lib/scoring.d.ts +47 -0
- package/dist/src/lib/scoring.d.ts.map +1 -0
- package/dist/src/lib/scoring.js +79 -0
- package/dist/src/lib/scoring.js.map +1 -0
- package/dist/src/lib/selectors.d.ts +42 -0
- package/dist/src/lib/selectors.d.ts.map +1 -0
- package/dist/src/lib/selectors.js +138 -0
- package/dist/src/lib/selectors.js.map +1 -0
- package/dist/src/lib/text-utils.d.ts +155 -0
- package/dist/src/lib/text-utils.d.ts.map +1 -0
- package/dist/src/lib/text-utils.js +391 -0
- package/dist/src/lib/text-utils.js.map +1 -0
- package/dist/src/observation/eid-linker.d.ts +104 -0
- package/dist/src/observation/eid-linker.d.ts.map +1 -0
- package/dist/src/observation/eid-linker.js +403 -0
- package/dist/src/observation/eid-linker.js.map +1 -0
- package/dist/src/observation/index.d.ts +12 -0
- package/dist/src/observation/index.d.ts.map +1 -0
- package/dist/src/observation/index.js +15 -0
- package/dist/src/observation/index.js.map +1 -0
- package/dist/src/observation/observation-accumulator.d.ts +58 -0
- package/dist/src/observation/observation-accumulator.d.ts.map +1 -0
- package/dist/src/observation/observation-accumulator.js +213 -0
- package/dist/src/observation/observation-accumulator.js.map +1 -0
- package/dist/src/observation/observation.types.d.ts +139 -0
- package/dist/src/observation/observation.types.d.ts.map +1 -0
- package/dist/src/observation/observation.types.js +59 -0
- package/dist/src/observation/observation.types.js.map +1 -0
- package/dist/src/observation/observer-script.d.ts +19 -0
- package/dist/src/observation/observer-script.d.ts.map +1 -0
- package/dist/src/observation/observer-script.js +569 -0
- package/dist/src/observation/observer-script.js.map +1 -0
- package/dist/src/query/index.d.ts +9 -0
- package/dist/src/query/index.d.ts.map +1 -0
- package/dist/src/query/index.js +10 -0
- package/dist/src/query/index.js.map +1 -0
- package/dist/src/query/query-engine.d.ts +111 -0
- package/dist/src/query/query-engine.d.ts.map +1 -0
- package/dist/src/query/query-engine.js +509 -0
- package/dist/src/query/query-engine.js.map +1 -0
- package/dist/src/query/types/index.d.ts +5 -0
- package/dist/src/query/types/index.d.ts.map +1 -0
- package/dist/src/query/types/index.js +5 -0
- package/dist/src/query/types/index.js.map +1 -0
- package/dist/src/query/types/query.types.d.ts +141 -0
- package/dist/src/query/types/query.types.d.ts.map +1 -0
- package/dist/src/query/types/query.types.js +19 -0
- package/dist/src/query/types/query.types.js.map +1 -0
- package/dist/src/renderer/budget-manager.d.ts +46 -0
- package/dist/src/renderer/budget-manager.d.ts.map +1 -0
- package/dist/src/renderer/budget-manager.js +133 -0
- package/dist/src/renderer/budget-manager.js.map +1 -0
- package/dist/src/renderer/constants.d.ts +38 -0
- package/dist/src/renderer/constants.d.ts.map +1 -0
- package/dist/src/renderer/constants.js +29 -0
- package/dist/src/renderer/constants.js.map +1 -0
- package/dist/src/renderer/index.d.ts +12 -0
- package/dist/src/renderer/index.d.ts.map +1 -0
- package/dist/src/renderer/index.js +16 -0
- package/dist/src/renderer/index.js.map +1 -0
- package/dist/src/renderer/section-renderers.d.ts +42 -0
- package/dist/src/renderer/section-renderers.d.ts.map +1 -0
- package/dist/src/renderer/section-renderers.js +252 -0
- package/dist/src/renderer/section-renderers.js.map +1 -0
- package/dist/src/renderer/token-counter.d.ts +45 -0
- package/dist/src/renderer/token-counter.d.ts.map +1 -0
- package/dist/src/renderer/token-counter.js +65 -0
- package/dist/src/renderer/token-counter.js.map +1 -0
- package/dist/src/renderer/types.d.ts +71 -0
- package/dist/src/renderer/types.d.ts.map +1 -0
- package/dist/src/renderer/types.js +7 -0
- package/dist/src/renderer/types.js.map +1 -0
- package/dist/src/renderer/xml-renderer.d.ts +42 -0
- package/dist/src/renderer/xml-renderer.d.ts.map +1 -0
- package/dist/src/renderer/xml-renderer.js +103 -0
- package/dist/src/renderer/xml-renderer.js.map +1 -0
- package/dist/src/server/index.d.ts +8 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +8 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/server/mcp-server.d.ts +59 -0
- package/dist/src/server/mcp-server.d.ts.map +1 -0
- package/dist/src/server/mcp-server.js +140 -0
- package/dist/src/server/mcp-server.js.map +1 -0
- package/dist/src/server/server-config.d.ts +41 -0
- package/dist/src/server/server-config.d.ts.map +1 -0
- package/dist/src/server/server-config.js +80 -0
- package/dist/src/server/server-config.js.map +1 -0
- package/dist/src/server/session-store.d.ts +148 -0
- package/dist/src/server/session-store.d.ts.map +1 -0
- package/dist/src/server/session-store.js +224 -0
- package/dist/src/server/session-store.js.map +1 -0
- package/dist/src/shared/errors/browser-session.error.d.ts +102 -0
- package/dist/src/shared/errors/browser-session.error.d.ts.map +1 -0
- package/dist/src/shared/errors/browser-session.error.js +153 -0
- package/dist/src/shared/errors/browser-session.error.js.map +1 -0
- package/dist/src/shared/errors/index.d.ts +5 -0
- package/dist/src/shared/errors/index.d.ts.map +1 -0
- package/dist/src/shared/errors/index.js +5 -0
- package/dist/src/shared/errors/index.js.map +1 -0
- package/dist/src/shared/services/dom-transformer.service.d.ts +71 -0
- package/dist/src/shared/services/dom-transformer.service.d.ts.map +1 -0
- package/dist/src/shared/services/dom-transformer.service.js +190 -0
- package/dist/src/shared/services/dom-transformer.service.js.map +1 -0
- package/dist/src/shared/services/index.d.ts +7 -0
- package/dist/src/shared/services/index.d.ts.map +1 -0
- package/dist/src/shared/services/index.js +7 -0
- package/dist/src/shared/services/index.js.map +1 -0
- package/dist/src/shared/services/logging.service.d.ts +154 -0
- package/dist/src/shared/services/logging.service.d.ts.map +1 -0
- package/dist/src/shared/services/logging.service.js +267 -0
- package/dist/src/shared/services/logging.service.js.map +1 -0
- package/dist/src/shared/services/selector-builder.service.d.ts +53 -0
- package/dist/src/shared/services/selector-builder.service.d.ts.map +1 -0
- package/dist/src/shared/services/selector-builder.service.js +240 -0
- package/dist/src/shared/services/selector-builder.service.js.map +1 -0
- package/dist/src/shared/types/base.types.d.ts +45 -0
- package/dist/src/shared/types/base.types.d.ts.map +1 -0
- package/dist/src/shared/types/base.types.js +8 -0
- package/dist/src/shared/types/base.types.js.map +1 -0
- package/dist/src/shared/types/index.d.ts +5 -0
- package/dist/src/shared/types/index.d.ts.map +1 -0
- package/dist/src/shared/types/index.js +5 -0
- package/dist/src/shared/types/index.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +102 -0
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/element-resolver.js +379 -0
- package/dist/src/snapshot/element-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts +40 -0
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/attribute-extractor.js +237 -0
- package/dist/src/snapshot/extractors/attribute-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/ax-extractor.d.ts +36 -0
- package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/ax-extractor.js +144 -0
- package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/dom-extractor.d.ts +21 -0
- package/dist/src/snapshot/extractors/dom-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/dom-extractor.js +137 -0
- package/dist/src/snapshot/extractors/dom-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/grouping-resolver.d.ts +39 -0
- package/dist/src/snapshot/extractors/grouping-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/grouping-resolver.js +260 -0
- package/dist/src/snapshot/extractors/grouping-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/index.d.ts +19 -0
- package/dist/src/snapshot/extractors/index.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/index.js +27 -0
- package/dist/src/snapshot/extractors/index.js.map +1 -0
- package/dist/src/snapshot/extractors/label-resolver.d.ts +44 -0
- package/dist/src/snapshot/extractors/label-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/label-resolver.js +173 -0
- package/dist/src/snapshot/extractors/label-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/layout-extractor.d.ts +52 -0
- package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/layout-extractor.js +382 -0
- package/dist/src/snapshot/extractors/layout-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/locator-builder.d.ts +27 -0
- package/dist/src/snapshot/extractors/locator-builder.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/locator-builder.js +223 -0
- package/dist/src/snapshot/extractors/locator-builder.js.map +1 -0
- package/dist/src/snapshot/extractors/region-resolver.d.ts +31 -0
- package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/region-resolver.js +168 -0
- package/dist/src/snapshot/extractors/region-resolver.js.map +1 -0
- package/dist/src/snapshot/extractors/state-extractor.d.ts +30 -0
- package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/state-extractor.js +181 -0
- package/dist/src/snapshot/extractors/state-extractor.js.map +1 -0
- package/dist/src/snapshot/extractors/types.d.ts +213 -0
- package/dist/src/snapshot/extractors/types.d.ts.map +1 -0
- package/dist/src/snapshot/extractors/types.js +145 -0
- package/dist/src/snapshot/extractors/types.js.map +1 -0
- package/dist/src/snapshot/index.d.ts +14 -0
- package/dist/src/snapshot/index.d.ts.map +1 -0
- package/dist/src/snapshot/index.js +18 -0
- package/dist/src/snapshot/index.js.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts +73 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.js +763 -0
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -0
- package/dist/src/snapshot/snapshot-health.d.ts +97 -0
- package/dist/src/snapshot/snapshot-health.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot-health.js +214 -0
- package/dist/src/snapshot/snapshot-health.js.map +1 -0
- package/dist/src/snapshot/snapshot-store.d.ts +137 -0
- package/dist/src/snapshot/snapshot-store.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot-store.js +202 -0
- package/dist/src/snapshot/snapshot-store.js.map +1 -0
- package/dist/src/snapshot/snapshot.types.d.ts +250 -0
- package/dist/src/snapshot/snapshot.types.d.ts.map +1 -0
- package/dist/src/snapshot/snapshot.types.js +54 -0
- package/dist/src/snapshot/snapshot.types.js.map +1 -0
- package/dist/src/state/actionables-filter.d.ts +47 -0
- package/dist/src/state/actionables-filter.d.ts.map +1 -0
- package/dist/src/state/actionables-filter.js +173 -0
- package/dist/src/state/actionables-filter.js.map +1 -0
- package/dist/src/state/atoms-extractor.d.ts +23 -0
- package/dist/src/state/atoms-extractor.d.ts.map +1 -0
- package/dist/src/state/atoms-extractor.js +160 -0
- package/dist/src/state/atoms-extractor.js.map +1 -0
- package/dist/src/state/constants.d.ts +125 -0
- package/dist/src/state/constants.d.ts.map +1 -0
- package/dist/src/state/constants.js +131 -0
- package/dist/src/state/constants.js.map +1 -0
- package/dist/src/state/diff-engine.d.ts +23 -0
- package/dist/src/state/diff-engine.d.ts.map +1 -0
- package/dist/src/state/diff-engine.js +475 -0
- package/dist/src/state/diff-engine.js.map +1 -0
- package/dist/src/state/element-identity.d.ts +75 -0
- package/dist/src/state/element-identity.d.ts.map +1 -0
- package/dist/src/state/element-identity.js +129 -0
- package/dist/src/state/element-identity.js.map +1 -0
- package/dist/src/state/element-ref.types.d.ts +135 -0
- package/dist/src/state/element-ref.types.d.ts.map +1 -0
- package/dist/src/state/element-ref.types.js +13 -0
- package/dist/src/state/element-ref.types.js.map +1 -0
- package/dist/src/state/element-registry.d.ts +118 -0
- package/dist/src/state/element-registry.d.ts.map +1 -0
- package/dist/src/state/element-registry.js +222 -0
- package/dist/src/state/element-registry.js.map +1 -0
- package/dist/src/state/health.types.d.ts +93 -0
- package/dist/src/state/health.types.d.ts.map +1 -0
- package/dist/src/state/health.types.js +56 -0
- package/dist/src/state/health.types.js.map +1 -0
- package/dist/src/state/layer-detector.d.ts +23 -0
- package/dist/src/state/layer-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detector.js +368 -0
- package/dist/src/state/layer-detector.js.map +1 -0
- package/dist/src/state/locator-generator.d.ts +21 -0
- package/dist/src/state/locator-generator.d.ts.map +1 -0
- package/dist/src/state/locator-generator.js +137 -0
- package/dist/src/state/locator-generator.js.map +1 -0
- package/dist/src/state/state-manager.d.ts +104 -0
- package/dist/src/state/state-manager.d.ts.map +1 -0
- package/dist/src/state/state-manager.js +618 -0
- package/dist/src/state/state-manager.js.map +1 -0
- package/dist/src/state/state-renderer.d.ts +63 -0
- package/dist/src/state/state-renderer.d.ts.map +1 -0
- package/dist/src/state/state-renderer.js +340 -0
- package/dist/src/state/state-renderer.js.map +1 -0
- package/dist/src/state/types.d.ts +353 -0
- package/dist/src/state/types.d.ts.map +1 -0
- package/dist/src/state/types.js +8 -0
- package/dist/src/state/types.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +140 -0
- package/dist/src/tools/browser-tools.d.ts.map +1 -0
- package/dist/src/tools/browser-tools.js +657 -0
- package/dist/src/tools/browser-tools.js.map +1 -0
- package/dist/src/tools/errors.d.ts +63 -0
- package/dist/src/tools/errors.d.ts.map +1 -0
- package/dist/src/tools/errors.js +86 -0
- package/dist/src/tools/errors.js.map +1 -0
- package/dist/src/tools/execute-action.d.ts +135 -0
- package/dist/src/tools/execute-action.d.ts.map +1 -0
- package/dist/src/tools/execute-action.js +579 -0
- package/dist/src/tools/execute-action.js.map +1 -0
- package/dist/src/tools/form-tools.d.ts +109 -0
- package/dist/src/tools/form-tools.d.ts.map +1 -0
- package/dist/src/tools/form-tools.js +434 -0
- package/dist/src/tools/form-tools.js.map +1 -0
- package/dist/src/tools/index.d.ts +11 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +49 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/response-builder.d.ts +98 -0
- package/dist/src/tools/response-builder.d.ts.map +1 -0
- package/dist/src/tools/response-builder.js +219 -0
- package/dist/src/tools/response-builder.js.map +1 -0
- package/dist/src/tools/tool-schemas.d.ts +2482 -0
- package/dist/src/tools/tool-schemas.d.ts.map +1 -0
- package/dist/src/tools/tool-schemas.js +606 -0
- package/dist/src/tools/tool-schemas.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Region Resolver
|
|
3
|
+
*
|
|
4
|
+
* Determines semantic page region for each node.
|
|
5
|
+
*
|
|
6
|
+
* @module snapshot/extractors/region-resolver
|
|
7
|
+
*
|
|
8
|
+
* Sources:
|
|
9
|
+
* - ARIA landmark roles (banner, navigation, main, contentinfo)
|
|
10
|
+
* - HTML5 sectioning elements (header, nav, main, footer, aside)
|
|
11
|
+
* - Ancestor traversal for inherited region
|
|
12
|
+
*/
|
|
13
|
+
import type { SemanticRegion } from '../snapshot.types.js';
|
|
14
|
+
import type { RawDomNode, RawAxNode } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Resolve semantic region for a node.
|
|
17
|
+
*
|
|
18
|
+
* Priority:
|
|
19
|
+
* 1. AX role (most reliable)
|
|
20
|
+
* 2. DOM role attribute
|
|
21
|
+
* 3. HTML5 tag name
|
|
22
|
+
* 4. Ancestor traversal (checks DOM tags, DOM role attrs, AND AX roles)
|
|
23
|
+
*
|
|
24
|
+
* @param domNode - Raw DOM node data (optional)
|
|
25
|
+
* @param axNode - Raw AX node data (optional)
|
|
26
|
+
* @param domTree - Full DOM tree for ancestor lookup
|
|
27
|
+
* @param axTree - Full AX tree for ancestor AX role lookup (optional)
|
|
28
|
+
* @returns SemanticRegion
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveRegion(domNode: RawDomNode | undefined, axNode: RawAxNode | undefined, domTree: Map<number, RawDomNode>, axTree?: Map<number, RawAxNode>): SemanticRegion;
|
|
31
|
+
//# sourceMappingURL=region-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-resolver.d.ts","sourceRoot":"","sources":["../../../../src/snapshot/extractors/region-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAmExD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAC9B,cAAc,CA4BhB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Region Resolver
|
|
3
|
+
*
|
|
4
|
+
* Determines semantic page region for each node.
|
|
5
|
+
*
|
|
6
|
+
* @module snapshot/extractors/region-resolver
|
|
7
|
+
*
|
|
8
|
+
* Sources:
|
|
9
|
+
* - ARIA landmark roles (banner, navigation, main, contentinfo)
|
|
10
|
+
* - HTML5 sectioning elements (header, nav, main, footer, aside)
|
|
11
|
+
* - Ancestor traversal for inherited region
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Mapping of ARIA roles to semantic regions
|
|
15
|
+
*/
|
|
16
|
+
const ROLE_TO_REGION = {
|
|
17
|
+
banner: 'header',
|
|
18
|
+
navigation: 'nav',
|
|
19
|
+
main: 'main',
|
|
20
|
+
complementary: 'aside',
|
|
21
|
+
contentinfo: 'footer',
|
|
22
|
+
dialog: 'dialog',
|
|
23
|
+
alertdialog: 'dialog',
|
|
24
|
+
search: 'search',
|
|
25
|
+
form: 'form',
|
|
26
|
+
region: 'unknown', // Generic region
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Mapping of HTML5 sectioning tags to semantic regions
|
|
30
|
+
*/
|
|
31
|
+
const TAG_TO_REGION = {
|
|
32
|
+
HEADER: 'header',
|
|
33
|
+
NAV: 'nav',
|
|
34
|
+
MAIN: 'main',
|
|
35
|
+
ASIDE: 'aside',
|
|
36
|
+
FOOTER: 'footer',
|
|
37
|
+
DIALOG: 'dialog',
|
|
38
|
+
FORM: 'form',
|
|
39
|
+
SEARCH: 'search',
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Get region from AX role.
|
|
43
|
+
*
|
|
44
|
+
* @param role - AX role string
|
|
45
|
+
* @returns SemanticRegion or undefined
|
|
46
|
+
*/
|
|
47
|
+
function getRegionFromRole(role) {
|
|
48
|
+
if (!role)
|
|
49
|
+
return undefined;
|
|
50
|
+
return ROLE_TO_REGION[role.toLowerCase()];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get region from DOM tag name.
|
|
54
|
+
*
|
|
55
|
+
* @param tagName - DOM tag name
|
|
56
|
+
* @returns SemanticRegion or undefined
|
|
57
|
+
*/
|
|
58
|
+
function getRegionFromTag(tagName) {
|
|
59
|
+
if (!tagName)
|
|
60
|
+
return undefined;
|
|
61
|
+
return TAG_TO_REGION[tagName.toUpperCase()];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get region from DOM role attribute.
|
|
65
|
+
*
|
|
66
|
+
* @param attributes - DOM attributes
|
|
67
|
+
* @returns SemanticRegion or undefined
|
|
68
|
+
*/
|
|
69
|
+
function getRegionFromDomRole(attributes) {
|
|
70
|
+
if (!attributes?.role)
|
|
71
|
+
return undefined;
|
|
72
|
+
return ROLE_TO_REGION[attributes.role.toLowerCase()];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Resolve semantic region for a node.
|
|
76
|
+
*
|
|
77
|
+
* Priority:
|
|
78
|
+
* 1. AX role (most reliable)
|
|
79
|
+
* 2. DOM role attribute
|
|
80
|
+
* 3. HTML5 tag name
|
|
81
|
+
* 4. Ancestor traversal (checks DOM tags, DOM role attrs, AND AX roles)
|
|
82
|
+
*
|
|
83
|
+
* @param domNode - Raw DOM node data (optional)
|
|
84
|
+
* @param axNode - Raw AX node data (optional)
|
|
85
|
+
* @param domTree - Full DOM tree for ancestor lookup
|
|
86
|
+
* @param axTree - Full AX tree for ancestor AX role lookup (optional)
|
|
87
|
+
* @returns SemanticRegion
|
|
88
|
+
*/
|
|
89
|
+
export function resolveRegion(domNode, axNode, domTree, axTree) {
|
|
90
|
+
// 1. Check AX role (highest priority)
|
|
91
|
+
const axRegion = getRegionFromRole(axNode?.role);
|
|
92
|
+
if (axRegion && axRegion !== 'unknown') {
|
|
93
|
+
return axRegion;
|
|
94
|
+
}
|
|
95
|
+
// 2. Check DOM role attribute
|
|
96
|
+
const domRoleRegion = getRegionFromDomRole(domNode?.attributes);
|
|
97
|
+
if (domRoleRegion && domRoleRegion !== 'unknown') {
|
|
98
|
+
return domRoleRegion;
|
|
99
|
+
}
|
|
100
|
+
// 3. Check current node's tag
|
|
101
|
+
const tagRegion = getRegionFromTag(domNode?.nodeName);
|
|
102
|
+
if (tagRegion && tagRegion !== 'unknown') {
|
|
103
|
+
return tagRegion;
|
|
104
|
+
}
|
|
105
|
+
// 4. Traverse ancestors to find containing landmark
|
|
106
|
+
if (domNode && domTree.size > 0) {
|
|
107
|
+
const ancestorRegion = findAncestorRegion(domNode, domTree, axTree);
|
|
108
|
+
if (ancestorRegion && ancestorRegion !== 'unknown') {
|
|
109
|
+
return ancestorRegion;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return 'unknown';
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Find region by traversing DOM ancestors.
|
|
116
|
+
*
|
|
117
|
+
* Checks (in priority order):
|
|
118
|
+
* 1. Parent's AX role (if axTree provided)
|
|
119
|
+
* 2. Parent's DOM tag name
|
|
120
|
+
* 3. Parent's DOM role attribute
|
|
121
|
+
*
|
|
122
|
+
* @param node - Starting node
|
|
123
|
+
* @param domTree - Full DOM tree
|
|
124
|
+
* @param axTree - Full AX tree (optional)
|
|
125
|
+
* @returns SemanticRegion from nearest ancestor landmark, or undefined
|
|
126
|
+
*/
|
|
127
|
+
function findAncestorRegion(node, domTree, axTree) {
|
|
128
|
+
let currentId = node.parentId;
|
|
129
|
+
const visited = new Set();
|
|
130
|
+
// Traverse up to 50 levels (prevent infinite loops)
|
|
131
|
+
let depth = 0;
|
|
132
|
+
const maxDepth = 50;
|
|
133
|
+
while (currentId !== undefined && depth < maxDepth) {
|
|
134
|
+
if (visited.has(currentId)) {
|
|
135
|
+
// Cycle detected
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
visited.add(currentId);
|
|
139
|
+
const parentNode = domTree.get(currentId);
|
|
140
|
+
if (!parentNode) {
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
// Check parent's AX role (highest priority if available)
|
|
144
|
+
if (axTree) {
|
|
145
|
+
const parentAx = axTree.get(currentId);
|
|
146
|
+
if (parentAx?.role) {
|
|
147
|
+
const axRoleRegion = getRegionFromRole(parentAx.role);
|
|
148
|
+
if (axRoleRegion && axRoleRegion !== 'unknown') {
|
|
149
|
+
return axRoleRegion;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Check parent's tag for landmark
|
|
154
|
+
const tagRegion = getRegionFromTag(parentNode.nodeName);
|
|
155
|
+
if (tagRegion && tagRegion !== 'unknown') {
|
|
156
|
+
return tagRegion;
|
|
157
|
+
}
|
|
158
|
+
// Check parent's role attribute
|
|
159
|
+
const roleRegion = getRegionFromDomRole(parentNode.attributes);
|
|
160
|
+
if (roleRegion && roleRegion !== 'unknown') {
|
|
161
|
+
return roleRegion;
|
|
162
|
+
}
|
|
163
|
+
currentId = parentNode.parentId;
|
|
164
|
+
depth++;
|
|
165
|
+
}
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=region-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-resolver.js","sourceRoot":"","sources":["../../../../src/snapshot/extractors/region-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Extractor
|
|
3
|
+
*
|
|
4
|
+
* Extracts interactive element state (visible, enabled, checked, etc.)
|
|
5
|
+
* by merging data from AX tree properties, DOM attributes, and layout.
|
|
6
|
+
*
|
|
7
|
+
* @module snapshot/extractors/state-extractor
|
|
8
|
+
*
|
|
9
|
+
* Sources (priority order):
|
|
10
|
+
* 1. AX tree properties (checked, expanded, selected, disabled)
|
|
11
|
+
* 2. DOM attributes (disabled, readonly, required)
|
|
12
|
+
* 3. Computed visibility from layout
|
|
13
|
+
*/
|
|
14
|
+
import type { NodeState } from '../snapshot.types.js';
|
|
15
|
+
import type { RawDomNode, RawAxNode, NodeLayoutInfo } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Extract state for an interactive element.
|
|
18
|
+
*
|
|
19
|
+
* Merges state from multiple sources:
|
|
20
|
+
* - AX properties (primary source)
|
|
21
|
+
* - DOM attributes (fallback)
|
|
22
|
+
* - Layout information (visibility)
|
|
23
|
+
*
|
|
24
|
+
* @param domNode - Raw DOM node data (optional)
|
|
25
|
+
* @param axNode - Raw AX node data (optional)
|
|
26
|
+
* @param layout - Node layout info (optional)
|
|
27
|
+
* @returns NodeState object
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractState(domNode: RawDomNode | undefined, axNode: RawAxNode | undefined, layout: NodeLayoutInfo | undefined): NodeState;
|
|
30
|
+
//# sourceMappingURL=state-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-extractor.d.ts","sourceRoot":"","sources":["../../../../src/snapshot/extractors/state-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAuEpF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,MAAM,EAAE,cAAc,GAAG,SAAS,GACjC,SAAS,CAyFX"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Extractor
|
|
3
|
+
*
|
|
4
|
+
* Extracts interactive element state (visible, enabled, checked, etc.)
|
|
5
|
+
* by merging data from AX tree properties, DOM attributes, and layout.
|
|
6
|
+
*
|
|
7
|
+
* @module snapshot/extractors/state-extractor
|
|
8
|
+
*
|
|
9
|
+
* Sources (priority order):
|
|
10
|
+
* 1. AX tree properties (checked, expanded, selected, disabled)
|
|
11
|
+
* 2. DOM attributes (disabled, readonly, required)
|
|
12
|
+
* 3. Computed visibility from layout
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Get AX property value by name.
|
|
16
|
+
*
|
|
17
|
+
* @param properties - Array of AX properties
|
|
18
|
+
* @param name - Property name to find
|
|
19
|
+
* @returns Property value or undefined
|
|
20
|
+
*/
|
|
21
|
+
function getAxProperty(properties, name) {
|
|
22
|
+
if (!properties)
|
|
23
|
+
return undefined;
|
|
24
|
+
const prop = properties.find((p) => p.name === name);
|
|
25
|
+
return prop?.value?.value;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if DOM node has a boolean attribute (present = true).
|
|
29
|
+
*
|
|
30
|
+
* @param attributes - DOM attributes record
|
|
31
|
+
* @param name - Attribute name
|
|
32
|
+
* @returns true if attribute is present
|
|
33
|
+
*/
|
|
34
|
+
function hasBooleanAttribute(attributes, name) {
|
|
35
|
+
if (!attributes)
|
|
36
|
+
return false;
|
|
37
|
+
return name in attributes;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get ARIA attribute value from DOM.
|
|
41
|
+
*
|
|
42
|
+
* @param attributes - DOM attributes record
|
|
43
|
+
* @param name - ARIA attribute name (e.g., 'aria-disabled')
|
|
44
|
+
* @returns Attribute value or undefined
|
|
45
|
+
*/
|
|
46
|
+
function getAriaAttribute(attributes, name) {
|
|
47
|
+
if (!attributes)
|
|
48
|
+
return undefined;
|
|
49
|
+
return attributes[name];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parse checked state from AX property value.
|
|
53
|
+
* AX uses tristate: 'true', 'false', 'mixed'
|
|
54
|
+
*
|
|
55
|
+
* @param value - AX property value
|
|
56
|
+
* @returns boolean for true/false, undefined for mixed or unset
|
|
57
|
+
*/
|
|
58
|
+
function parseCheckedState(value) {
|
|
59
|
+
if (value === true || value === 'true')
|
|
60
|
+
return true;
|
|
61
|
+
if (value === false || value === 'false')
|
|
62
|
+
return false;
|
|
63
|
+
// 'mixed' or undefined results in undefined
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse boolean state from various value types.
|
|
68
|
+
*
|
|
69
|
+
* @param value - Value to parse
|
|
70
|
+
* @returns boolean or undefined
|
|
71
|
+
*/
|
|
72
|
+
function parseBooleanState(value) {
|
|
73
|
+
if (value === true || value === 'true')
|
|
74
|
+
return true;
|
|
75
|
+
if (value === false || value === 'false')
|
|
76
|
+
return false;
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Extract state for an interactive element.
|
|
81
|
+
*
|
|
82
|
+
* Merges state from multiple sources:
|
|
83
|
+
* - AX properties (primary source)
|
|
84
|
+
* - DOM attributes (fallback)
|
|
85
|
+
* - Layout information (visibility)
|
|
86
|
+
*
|
|
87
|
+
* @param domNode - Raw DOM node data (optional)
|
|
88
|
+
* @param axNode - Raw AX node data (optional)
|
|
89
|
+
* @param layout - Node layout info (optional)
|
|
90
|
+
* @returns NodeState object
|
|
91
|
+
*/
|
|
92
|
+
export function extractState(domNode, axNode, layout) {
|
|
93
|
+
const attributes = domNode?.attributes;
|
|
94
|
+
const properties = axNode?.properties;
|
|
95
|
+
// === Visibility ===
|
|
96
|
+
// Primary: layout.isVisible
|
|
97
|
+
// Default: true (assume visible if no layout info)
|
|
98
|
+
const visible = layout?.isVisible ?? true;
|
|
99
|
+
// === Enabled ===
|
|
100
|
+
// Priority: AX disabled > DOM disabled > aria-disabled
|
|
101
|
+
let enabled = true;
|
|
102
|
+
// Check AX disabled property
|
|
103
|
+
const axDisabled = getAxProperty(properties, 'disabled');
|
|
104
|
+
if (axDisabled !== undefined) {
|
|
105
|
+
enabled = !parseBooleanState(axDisabled);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// Fallback to DOM attributes
|
|
109
|
+
if (hasBooleanAttribute(attributes, 'disabled')) {
|
|
110
|
+
enabled = false;
|
|
111
|
+
}
|
|
112
|
+
else if (getAriaAttribute(attributes, 'aria-disabled') === 'true') {
|
|
113
|
+
enabled = false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// === Checked (checkboxes, radios, switches) ===
|
|
117
|
+
const axChecked = getAxProperty(properties, 'checked');
|
|
118
|
+
const checked = parseCheckedState(axChecked);
|
|
119
|
+
// === Expanded (accordions, dropdowns) ===
|
|
120
|
+
const axExpanded = getAxProperty(properties, 'expanded');
|
|
121
|
+
const expanded = parseBooleanState(axExpanded);
|
|
122
|
+
// === Selected (tabs, options) ===
|
|
123
|
+
const axSelected = getAxProperty(properties, 'selected');
|
|
124
|
+
const selected = parseBooleanState(axSelected);
|
|
125
|
+
// === Focused ===
|
|
126
|
+
const axFocused = getAxProperty(properties, 'focused');
|
|
127
|
+
const focused = parseBooleanState(axFocused);
|
|
128
|
+
// === Required ===
|
|
129
|
+
// Check DOM required attribute or aria-required
|
|
130
|
+
let required;
|
|
131
|
+
if (hasBooleanAttribute(attributes, 'required')) {
|
|
132
|
+
required = true;
|
|
133
|
+
}
|
|
134
|
+
else if (getAriaAttribute(attributes, 'aria-required') === 'true') {
|
|
135
|
+
required = true;
|
|
136
|
+
}
|
|
137
|
+
// === Invalid ===
|
|
138
|
+
// Check AX invalid or aria-invalid
|
|
139
|
+
const axInvalid = getAxProperty(properties, 'invalid');
|
|
140
|
+
let invalid;
|
|
141
|
+
if (axInvalid !== undefined) {
|
|
142
|
+
// AX invalid can be 'true', 'false', 'grammar', 'spelling'
|
|
143
|
+
invalid =
|
|
144
|
+
axInvalid === true ||
|
|
145
|
+
axInvalid === 'true' ||
|
|
146
|
+
(typeof axInvalid === 'string' && axInvalid !== 'false');
|
|
147
|
+
}
|
|
148
|
+
else if (getAriaAttribute(attributes, 'aria-invalid') === 'true') {
|
|
149
|
+
invalid = true;
|
|
150
|
+
}
|
|
151
|
+
// === Readonly ===
|
|
152
|
+
// Check DOM readonly attribute or aria-readonly
|
|
153
|
+
let readonly;
|
|
154
|
+
if (hasBooleanAttribute(attributes, 'readonly')) {
|
|
155
|
+
readonly = true;
|
|
156
|
+
}
|
|
157
|
+
else if (getAriaAttribute(attributes, 'aria-readonly') === 'true') {
|
|
158
|
+
readonly = true;
|
|
159
|
+
}
|
|
160
|
+
// Build state object, omitting undefined values
|
|
161
|
+
const state = {
|
|
162
|
+
visible,
|
|
163
|
+
enabled,
|
|
164
|
+
};
|
|
165
|
+
if (checked !== undefined)
|
|
166
|
+
state.checked = checked;
|
|
167
|
+
if (expanded !== undefined)
|
|
168
|
+
state.expanded = expanded;
|
|
169
|
+
if (selected !== undefined)
|
|
170
|
+
state.selected = selected;
|
|
171
|
+
if (focused !== undefined)
|
|
172
|
+
state.focused = focused;
|
|
173
|
+
if (required !== undefined)
|
|
174
|
+
state.required = required;
|
|
175
|
+
if (invalid !== undefined)
|
|
176
|
+
state.invalid = invalid;
|
|
177
|
+
if (readonly !== undefined)
|
|
178
|
+
state.readonly = readonly;
|
|
179
|
+
return state;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=state-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-extractor.js","sourceRoot":"","sources":["../../../../src/snapshot/extractors/state-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extractor Types
|
|
3
|
+
*
|
|
4
|
+
* Shared types for all extractors to ensure consistent data flow.
|
|
5
|
+
* These types represent the raw CDP data structures and intermediate
|
|
6
|
+
* representations used during snapshot compilation.
|
|
7
|
+
*
|
|
8
|
+
* @module snapshot/extractors/types
|
|
9
|
+
*
|
|
10
|
+
* CDP Domains:
|
|
11
|
+
* - DOM: getDocument, describeNode, requestChildNodes
|
|
12
|
+
* - Accessibility: getFullAXTree
|
|
13
|
+
* - CSS: getComputedStyleForNode
|
|
14
|
+
*/
|
|
15
|
+
import type { CdpClient } from '../../cdp/cdp-client.interface.js';
|
|
16
|
+
import type { BBox, Viewport, ScreenZone, SnapshotOptions } from '../snapshot.types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Raw DOM node data from CDP DOM.getDocument / DOM.describeNode
|
|
19
|
+
*/
|
|
20
|
+
export interface RawDomNode {
|
|
21
|
+
/** CDP node ID (ephemeral, changes between calls) */
|
|
22
|
+
nodeId: number;
|
|
23
|
+
/** Backend node ID (stable within session) */
|
|
24
|
+
backendNodeId: number;
|
|
25
|
+
/** Node name (uppercase tag or #text, #comment, etc.) */
|
|
26
|
+
nodeName: string;
|
|
27
|
+
/** DOM node type (1=Element, 3=Text, etc.) */
|
|
28
|
+
nodeType: number;
|
|
29
|
+
/** Node attributes as key-value pairs */
|
|
30
|
+
attributes?: Record<string, string>;
|
|
31
|
+
/** Child node IDs (backendNodeIds) */
|
|
32
|
+
childNodeIds?: number[];
|
|
33
|
+
/** Shadow root type if this node hosts a shadow root */
|
|
34
|
+
shadowRootType?: 'open' | 'closed';
|
|
35
|
+
/** Frame ID if this node is an iframe content document */
|
|
36
|
+
frameId?: string;
|
|
37
|
+
/** Loader ID from the frame at extraction time.
|
|
38
|
+
* Changes on frame navigation. Used for delta computation. */
|
|
39
|
+
loaderId?: string;
|
|
40
|
+
/** Parent node's backendNodeId */
|
|
41
|
+
parentId?: number;
|
|
42
|
+
/** Text content for text nodes */
|
|
43
|
+
nodeValue?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Frame path - backendNodeIds of iframe ancestors (outermost first).
|
|
46
|
+
* Used to scope selectors to the correct frame context.
|
|
47
|
+
*/
|
|
48
|
+
framePath?: number[];
|
|
49
|
+
/**
|
|
50
|
+
* Shadow path - backendNodeIds of shadow host ancestors (outermost first).
|
|
51
|
+
* Used to pierce shadow boundaries when finding elements.
|
|
52
|
+
*/
|
|
53
|
+
shadowPath?: number[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* AX property value structure from CDP
|
|
57
|
+
*/
|
|
58
|
+
export interface AxPropertyValue {
|
|
59
|
+
type: string;
|
|
60
|
+
value?: unknown;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* AX property structure from CDP
|
|
64
|
+
*/
|
|
65
|
+
export interface AxProperty {
|
|
66
|
+
name: string;
|
|
67
|
+
value: AxPropertyValue;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Raw accessibility node data from CDP Accessibility.getFullAXTree
|
|
71
|
+
*/
|
|
72
|
+
export interface RawAxNode {
|
|
73
|
+
/** AX tree node ID */
|
|
74
|
+
nodeId: string;
|
|
75
|
+
/** Corresponding DOM backend node ID (for correlation) */
|
|
76
|
+
backendDOMNodeId?: number;
|
|
77
|
+
/** ARIA role (button, link, textbox, etc.) */
|
|
78
|
+
role?: string;
|
|
79
|
+
/** Computed accessible name */
|
|
80
|
+
name?: string;
|
|
81
|
+
/** AX properties (focusable, checked, expanded, etc.) */
|
|
82
|
+
properties?: AxProperty[];
|
|
83
|
+
/** Whether this node is ignored in the AX tree */
|
|
84
|
+
ignored?: boolean;
|
|
85
|
+
/** Child AX node IDs */
|
|
86
|
+
childIds?: string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Layout and positioning information for a node
|
|
90
|
+
*/
|
|
91
|
+
export interface NodeLayoutInfo {
|
|
92
|
+
/** Bounding box in viewport coordinates */
|
|
93
|
+
bbox: BBox;
|
|
94
|
+
/** CSS display value */
|
|
95
|
+
display?: string;
|
|
96
|
+
/** CSS visibility value */
|
|
97
|
+
visibility?: string;
|
|
98
|
+
/** Whether the element is visible (computed from display, visibility, size) */
|
|
99
|
+
isVisible: boolean;
|
|
100
|
+
/** Coarse screen position (above/below fold, quadrant) */
|
|
101
|
+
screenZone?: ScreenZone;
|
|
102
|
+
/** CSS z-index value (used for overlay detection) */
|
|
103
|
+
zIndex?: number;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Combined raw data for a single node from all extraction phases
|
|
107
|
+
*/
|
|
108
|
+
export interface RawNodeData {
|
|
109
|
+
/** Raw DOM node data */
|
|
110
|
+
domNode?: RawDomNode;
|
|
111
|
+
/** Raw AX node data */
|
|
112
|
+
axNode?: RawAxNode;
|
|
113
|
+
/** Layout information */
|
|
114
|
+
layout?: NodeLayoutInfo;
|
|
115
|
+
/** Backend node ID (primary key for correlation) */
|
|
116
|
+
backendNodeId: number;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Context passed to all extractors for accessing CDP and configuration
|
|
120
|
+
*/
|
|
121
|
+
export interface ExtractorContext {
|
|
122
|
+
/** CDP client for making protocol calls */
|
|
123
|
+
cdp: CdpClient;
|
|
124
|
+
/** Viewport dimensions */
|
|
125
|
+
viewport: Viewport;
|
|
126
|
+
/** Snapshot options */
|
|
127
|
+
options: Partial<SnapshotOptions>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Create an extractor context.
|
|
131
|
+
*
|
|
132
|
+
* @param cdp - CDP client instance
|
|
133
|
+
* @param viewport - Viewport dimensions
|
|
134
|
+
* @param options - Snapshot capture options
|
|
135
|
+
* @returns ExtractorContext
|
|
136
|
+
*/
|
|
137
|
+
export declare function createExtractorContext(cdp: CdpClient, viewport: Viewport, options?: Partial<SnapshotOptions>): ExtractorContext;
|
|
138
|
+
/**
|
|
139
|
+
* Result from DOM extractor
|
|
140
|
+
*/
|
|
141
|
+
export interface DomExtractionResult {
|
|
142
|
+
/** Map of backendNodeId -> RawDomNode */
|
|
143
|
+
nodes: Map<number, RawDomNode>;
|
|
144
|
+
/** Root document backendNodeId */
|
|
145
|
+
rootId: number;
|
|
146
|
+
/** Frame IDs found during extraction */
|
|
147
|
+
frameIds: string[];
|
|
148
|
+
/** BackendNodeIds of shadow roots */
|
|
149
|
+
shadowRoots: number[];
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Result from AX extractor
|
|
153
|
+
*/
|
|
154
|
+
export interface AxExtractionResult {
|
|
155
|
+
/** Map of backendDOMNodeId -> RawAxNode */
|
|
156
|
+
nodes: Map<number, RawAxNode>;
|
|
157
|
+
/** BackendDOMNodeIds of interactive elements */
|
|
158
|
+
interactiveIds: Set<number>;
|
|
159
|
+
/** BackendDOMNodeIds of readable content elements */
|
|
160
|
+
readableIds: Set<number>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Result from layout extractor
|
|
164
|
+
*/
|
|
165
|
+
export interface LayoutExtractionResult {
|
|
166
|
+
/** Map of backendNodeId -> NodeLayoutInfo */
|
|
167
|
+
layouts: Map<number, NodeLayoutInfo>;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Validate that an object is a valid RawDomNode.
|
|
171
|
+
*
|
|
172
|
+
* @param node - Object to validate
|
|
173
|
+
* @returns true if valid RawDomNode
|
|
174
|
+
*/
|
|
175
|
+
export declare function isValidRawDomNode(node: RawDomNode): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Validate that an object is a valid RawAxNode.
|
|
178
|
+
*
|
|
179
|
+
* @param node - Object to validate
|
|
180
|
+
* @returns true if valid RawAxNode
|
|
181
|
+
*/
|
|
182
|
+
export declare function isValidRawAxNode(node: RawAxNode): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Validate that an object is a valid NodeLayoutInfo.
|
|
185
|
+
*
|
|
186
|
+
* @param layout - Object to validate
|
|
187
|
+
* @returns true if valid NodeLayoutInfo
|
|
188
|
+
*/
|
|
189
|
+
export declare function isValidNodeLayoutInfo(layout: NodeLayoutInfo): boolean;
|
|
190
|
+
/**
|
|
191
|
+
* DOM node types (subset relevant to extraction)
|
|
192
|
+
*/
|
|
193
|
+
export declare const DOM_NODE_TYPES: {
|
|
194
|
+
readonly ELEMENT_NODE: 1;
|
|
195
|
+
readonly TEXT_NODE: 3;
|
|
196
|
+
readonly COMMENT_NODE: 8;
|
|
197
|
+
readonly DOCUMENT_NODE: 9;
|
|
198
|
+
readonly DOCUMENT_TYPE_NODE: 10;
|
|
199
|
+
readonly DOCUMENT_FRAGMENT_NODE: 11;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* AX roles that indicate interactive elements
|
|
203
|
+
*/
|
|
204
|
+
export declare const INTERACTIVE_AX_ROLES: Set<string>;
|
|
205
|
+
/**
|
|
206
|
+
* AX roles that indicate readable content
|
|
207
|
+
*/
|
|
208
|
+
export declare const READABLE_AX_ROLES: Set<string>;
|
|
209
|
+
/**
|
|
210
|
+
* AX roles that indicate structural/landmark elements
|
|
211
|
+
*/
|
|
212
|
+
export declare const STRUCTURAL_AX_ROLES: Set<string>;
|
|
213
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/snapshot/extractors/types.ts"],"names":[],"mappings":"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"}
|