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,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EID Linker
|
|
3
|
+
*
|
|
4
|
+
* Links DOM observations to snapshot nodes by semantic matching.
|
|
5
|
+
* Since observations are captured in browser context (no access to CDP backend_node_id),
|
|
6
|
+
* we perform post-hoc matching after snapshot capture using semantic signals:
|
|
7
|
+
* - Tag → Kind mapping
|
|
8
|
+
* - Role matching
|
|
9
|
+
* - Label/text fuzzy matching
|
|
10
|
+
*/
|
|
11
|
+
import { fuzzyTokensMatch, tokenizeForMatching } from '../lib/text-utils.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Scoring Constants
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/** Score contribution for tag/kind match (required for any match) */
|
|
16
|
+
const SCORE_TAG_MATCH = 0.3;
|
|
17
|
+
/** Score contribution for ARIA role match */
|
|
18
|
+
const SCORE_ROLE_MATCH = 0.25;
|
|
19
|
+
/** Score contribution for text/label match */
|
|
20
|
+
const SCORE_TEXT_MATCH = 0.3;
|
|
21
|
+
/** Score contribution for dialog context match */
|
|
22
|
+
const SCORE_DIALOG_CONTEXT = 0.15;
|
|
23
|
+
/**
|
|
24
|
+
* Estimated delay in ms for elements that appeared after initial page load.
|
|
25
|
+
* Used when appearedAfterDelay signal is true but exact timing is unavailable.
|
|
26
|
+
* Based on typical async content loading patterns (API responses, lazy loading).
|
|
27
|
+
*/
|
|
28
|
+
const ESTIMATED_DELAY_MS = 200;
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// Tag to Kind Mapping
|
|
31
|
+
// ============================================================================
|
|
32
|
+
/**
|
|
33
|
+
* Map HTML tags from observations to possible NodeKind values in snapshots.
|
|
34
|
+
* A tag can map to multiple kinds since role can change the semantic meaning.
|
|
35
|
+
*/
|
|
36
|
+
const TAG_TO_KINDS = {
|
|
37
|
+
// Links
|
|
38
|
+
a: ['link'],
|
|
39
|
+
// Buttons
|
|
40
|
+
button: ['button'],
|
|
41
|
+
// Inputs
|
|
42
|
+
input: ['input', 'checkbox', 'radio', 'switch', 'slider'],
|
|
43
|
+
textarea: ['textarea'],
|
|
44
|
+
select: ['select', 'combobox'],
|
|
45
|
+
// Structural with role variants
|
|
46
|
+
div: ['generic', 'dialog', 'section', 'button', 'link'],
|
|
47
|
+
span: ['generic', 'text'],
|
|
48
|
+
section: ['section', 'generic'],
|
|
49
|
+
// Dialog-specific
|
|
50
|
+
dialog: ['dialog'],
|
|
51
|
+
// Navigation
|
|
52
|
+
nav: ['navigation'],
|
|
53
|
+
form: ['form'],
|
|
54
|
+
// Content
|
|
55
|
+
h1: ['heading'],
|
|
56
|
+
h2: ['heading'],
|
|
57
|
+
h3: ['heading'],
|
|
58
|
+
h4: ['heading'],
|
|
59
|
+
h5: ['heading'],
|
|
60
|
+
h6: ['heading'],
|
|
61
|
+
p: ['paragraph', 'text'],
|
|
62
|
+
img: ['image'],
|
|
63
|
+
// Lists
|
|
64
|
+
ul: ['list'],
|
|
65
|
+
ol: ['list'],
|
|
66
|
+
li: ['listitem'],
|
|
67
|
+
// Media
|
|
68
|
+
video: ['media'],
|
|
69
|
+
audio: ['media'],
|
|
70
|
+
// Table
|
|
71
|
+
table: ['table'],
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Role to Kind mapping - when observation has explicit ARIA role.
|
|
75
|
+
*/
|
|
76
|
+
const ROLE_TO_KIND = {
|
|
77
|
+
alert: 'generic', // alerts are typically generic divs with role
|
|
78
|
+
alertdialog: 'dialog',
|
|
79
|
+
dialog: 'dialog',
|
|
80
|
+
button: 'button',
|
|
81
|
+
link: 'link',
|
|
82
|
+
textbox: 'input',
|
|
83
|
+
checkbox: 'checkbox',
|
|
84
|
+
radio: 'radio',
|
|
85
|
+
combobox: 'combobox',
|
|
86
|
+
listbox: 'combobox',
|
|
87
|
+
menu: 'navigation',
|
|
88
|
+
menuitem: 'menuitem',
|
|
89
|
+
tab: 'tab',
|
|
90
|
+
tabpanel: 'section',
|
|
91
|
+
navigation: 'navigation',
|
|
92
|
+
form: 'form',
|
|
93
|
+
search: 'form',
|
|
94
|
+
};
|
|
95
|
+
// ============================================================================
|
|
96
|
+
// Core Functions
|
|
97
|
+
// ============================================================================
|
|
98
|
+
/**
|
|
99
|
+
* Link observations to snapshot nodes by computing eids.
|
|
100
|
+
*
|
|
101
|
+
* Mutates observations in-place, setting the `eid` field for matched observations.
|
|
102
|
+
* Only processes 'appeared' observations (disappeared elements don't exist in snapshot).
|
|
103
|
+
*
|
|
104
|
+
* @param observations - Observation groups to link
|
|
105
|
+
* @param snapshot - Current snapshot to match against
|
|
106
|
+
* @param registry - Element registry for eid lookup
|
|
107
|
+
* @param options - Matching configuration
|
|
108
|
+
* @returns Statistics about linking operation
|
|
109
|
+
*/
|
|
110
|
+
export function linkObservationsToSnapshot(observations, snapshot, registry, options = {}) {
|
|
111
|
+
// Build index once for efficient lookup
|
|
112
|
+
const nodeIndex = buildNodeIndex(snapshot);
|
|
113
|
+
// Pre-filter interactive nodes once (O(n)) instead of per-observation (O(m*n))
|
|
114
|
+
const interactiveNodes = buildInteractiveNodeList(snapshot);
|
|
115
|
+
let linked = 0;
|
|
116
|
+
let unlinked = 0;
|
|
117
|
+
// Collect all appeared observations from both groups
|
|
118
|
+
const toProcess = [
|
|
119
|
+
...observations.duringAction.filter((o) => o.type === 'appeared'),
|
|
120
|
+
...observations.sincePrevious.filter((o) => o.type === 'appeared'),
|
|
121
|
+
];
|
|
122
|
+
for (const observation of toProcess) {
|
|
123
|
+
const match = findBestMatch(observation, nodeIndex, options);
|
|
124
|
+
if (match) {
|
|
125
|
+
// Look up eid from registry using backend_node_id
|
|
126
|
+
const eid = registry.getEidByBackendNodeId(match.backend_node_id);
|
|
127
|
+
if (eid) {
|
|
128
|
+
observation.eid = eid;
|
|
129
|
+
// Extract children from the matched container using pre-filtered list
|
|
130
|
+
const children = extractObservationChildren(match, interactiveNodes, registry);
|
|
131
|
+
if (children.length > 0) {
|
|
132
|
+
observation.children = children;
|
|
133
|
+
}
|
|
134
|
+
// Extract delay from appearedAfterDelay signal
|
|
135
|
+
if (observation.signals.appearedAfterDelay) {
|
|
136
|
+
observation.delayMs = ESTIMATED_DELAY_MS;
|
|
137
|
+
}
|
|
138
|
+
linked++;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
unlinked++;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
unlinked++;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
linked,
|
|
150
|
+
unlinked,
|
|
151
|
+
total: toProcess.length,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Build an index of snapshot nodes by kind for efficient lookup.
|
|
156
|
+
*
|
|
157
|
+
* @param snapshot - Snapshot to index
|
|
158
|
+
* @returns Map from NodeKind to array of nodes
|
|
159
|
+
*/
|
|
160
|
+
export function buildNodeIndex(snapshot) {
|
|
161
|
+
const index = new Map();
|
|
162
|
+
for (const node of snapshot.nodes) {
|
|
163
|
+
const kind = node.kind;
|
|
164
|
+
const nodes = index.get(kind) ?? [];
|
|
165
|
+
nodes.push(node);
|
|
166
|
+
index.set(kind, nodes);
|
|
167
|
+
}
|
|
168
|
+
return index;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Find the best matching node for an observation.
|
|
172
|
+
*
|
|
173
|
+
* @param observation - The observation to match
|
|
174
|
+
* @param nodeIndex - Pre-built index of nodes by kind
|
|
175
|
+
* @param options - Matching options
|
|
176
|
+
* @returns Best matching node or undefined if no match meets threshold
|
|
177
|
+
*/
|
|
178
|
+
export function findBestMatch(observation, nodeIndex, options = {}) {
|
|
179
|
+
const { minMatchScore = 0.5 } = options;
|
|
180
|
+
// Get candidate kinds based on tag and role
|
|
181
|
+
const candidateKinds = getCandidateKinds(observation);
|
|
182
|
+
// Collect all candidate nodes
|
|
183
|
+
const candidates = [];
|
|
184
|
+
for (const kind of candidateKinds) {
|
|
185
|
+
const nodesOfKind = nodeIndex.get(kind);
|
|
186
|
+
if (nodesOfKind) {
|
|
187
|
+
candidates.push(...nodesOfKind);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (candidates.length === 0) {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
// Score each candidate and find best match
|
|
194
|
+
let bestMatch;
|
|
195
|
+
let bestScore = minMatchScore; // Must exceed threshold
|
|
196
|
+
for (const node of candidates) {
|
|
197
|
+
const score = computeMatchScore(observation, node, options);
|
|
198
|
+
if (score > bestScore) {
|
|
199
|
+
bestScore = score;
|
|
200
|
+
bestMatch = node;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return bestMatch;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get candidate NodeKind values for an observation based on tag and role.
|
|
207
|
+
*/
|
|
208
|
+
export function getCandidateKinds(observation) {
|
|
209
|
+
const tag = observation.content.tag.toLowerCase();
|
|
210
|
+
const role = observation.content.role?.toLowerCase();
|
|
211
|
+
const kinds = new Set();
|
|
212
|
+
// Add kinds from tag mapping
|
|
213
|
+
const tagKinds = TAG_TO_KINDS[tag];
|
|
214
|
+
if (tagKinds) {
|
|
215
|
+
for (const kind of tagKinds) {
|
|
216
|
+
kinds.add(kind);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// Add kind from role mapping (higher priority when present)
|
|
220
|
+
if (role && role in ROLE_TO_KIND) {
|
|
221
|
+
kinds.add(ROLE_TO_KIND[role]);
|
|
222
|
+
}
|
|
223
|
+
// Fallback to generic if nothing matched
|
|
224
|
+
if (kinds.size === 0) {
|
|
225
|
+
kinds.add('generic');
|
|
226
|
+
}
|
|
227
|
+
return Array.from(kinds);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Compute match score between an observation and a snapshot node.
|
|
231
|
+
*
|
|
232
|
+
* Scoring breakdown:
|
|
233
|
+
* - Tag/Kind match: 0.3 (required - if no match, return 0)
|
|
234
|
+
* - Role match: 0.25
|
|
235
|
+
* - Label fuzzy match: 0.3
|
|
236
|
+
* - Dialog context match: 0.15
|
|
237
|
+
*
|
|
238
|
+
* @param observation - DOM observation
|
|
239
|
+
* @param node - Snapshot node
|
|
240
|
+
* @param options - Matching options
|
|
241
|
+
* @returns Score from 0-1 (0 = no match, 1 = perfect match)
|
|
242
|
+
*/
|
|
243
|
+
export function computeMatchScore(observation, node, options = {}) {
|
|
244
|
+
const { fuzzyTextMatch = true, minTokenOverlap = 0.5 } = options;
|
|
245
|
+
const content = observation.content;
|
|
246
|
+
let score = 0;
|
|
247
|
+
// Tag/Kind match check (required)
|
|
248
|
+
const candidateKinds = getCandidateKinds(observation);
|
|
249
|
+
if (!candidateKinds.includes(node.kind)) {
|
|
250
|
+
return 0; // No match possible
|
|
251
|
+
}
|
|
252
|
+
score += SCORE_TAG_MATCH;
|
|
253
|
+
// Role match (when observation has explicit role that matches node kind)
|
|
254
|
+
const role = content.role?.toLowerCase();
|
|
255
|
+
if (role &&
|
|
256
|
+
role in ROLE_TO_KIND &&
|
|
257
|
+
ROLE_TO_KIND[role] === node.kind) {
|
|
258
|
+
score += SCORE_ROLE_MATCH;
|
|
259
|
+
}
|
|
260
|
+
// Label/text matching
|
|
261
|
+
if (content.text && node.label) {
|
|
262
|
+
const normalizedObsText = content.text.toLowerCase().trim();
|
|
263
|
+
const normalizedNodeLabel = node.label.toLowerCase().trim();
|
|
264
|
+
// Exact match
|
|
265
|
+
if (normalizedObsText === normalizedNodeLabel) {
|
|
266
|
+
score += SCORE_TEXT_MATCH;
|
|
267
|
+
}
|
|
268
|
+
else if (fuzzyTextMatch) {
|
|
269
|
+
// Fuzzy match
|
|
270
|
+
const obsTokens = tokenizeForMatching(normalizedObsText, 10, 2);
|
|
271
|
+
const nodeTokens = tokenizeForMatching(normalizedNodeLabel, 10, 2);
|
|
272
|
+
const result = fuzzyTokensMatch(nodeTokens, obsTokens, { minTokenOverlap });
|
|
273
|
+
if (result.isMatch) {
|
|
274
|
+
score += SCORE_TEXT_MATCH * result.score;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Dialog context bonus - if observation is dialog and node is in dialog region
|
|
279
|
+
if (observation.signals.isDialog && node.where.region === 'dialog') {
|
|
280
|
+
score += SCORE_DIALOG_CONTEXT;
|
|
281
|
+
}
|
|
282
|
+
// Cap at 1.0
|
|
283
|
+
return Math.min(score, 1.0);
|
|
284
|
+
}
|
|
285
|
+
// ============================================================================
|
|
286
|
+
// Child Extraction
|
|
287
|
+
// ============================================================================
|
|
288
|
+
/** Maximum number of children to extract per observation */
|
|
289
|
+
const MAX_OBSERVATION_CHILDREN = 5;
|
|
290
|
+
/** Interactive node kinds that qualify as observation children */
|
|
291
|
+
const INTERACTIVE_KINDS = [
|
|
292
|
+
'button',
|
|
293
|
+
'link',
|
|
294
|
+
'input',
|
|
295
|
+
'textarea',
|
|
296
|
+
'select',
|
|
297
|
+
'combobox',
|
|
298
|
+
'checkbox',
|
|
299
|
+
'radio',
|
|
300
|
+
'switch',
|
|
301
|
+
'slider',
|
|
302
|
+
'tab',
|
|
303
|
+
'menuitem',
|
|
304
|
+
];
|
|
305
|
+
/**
|
|
306
|
+
* Check if a node kind is interactive (actionable).
|
|
307
|
+
*/
|
|
308
|
+
function isInteractiveKind(kind) {
|
|
309
|
+
return INTERACTIVE_KINDS.includes(kind);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Check if a node qualifies as an extractable child (interactive or heading with label).
|
|
313
|
+
*/
|
|
314
|
+
function isExtractableChild(node) {
|
|
315
|
+
// Must have a visible label
|
|
316
|
+
if (!node.label || node.label.trim() === '')
|
|
317
|
+
return false;
|
|
318
|
+
// Must be interactive or a heading
|
|
319
|
+
return isInteractiveKind(node.kind) || node.kind === 'heading';
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Build a pre-filtered list of interactive nodes for child extraction.
|
|
323
|
+
* This is O(n) and done once per snapshot, avoiding O(m*n) when processing m observations.
|
|
324
|
+
*
|
|
325
|
+
* @param snapshot - Snapshot to filter
|
|
326
|
+
* @returns Array of nodes that qualify as observation children
|
|
327
|
+
*/
|
|
328
|
+
export function buildInteractiveNodeList(snapshot) {
|
|
329
|
+
return snapshot.nodes.filter(isExtractableChild);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Check if a bounding box is contained within another.
|
|
333
|
+
*/
|
|
334
|
+
function isNodeInsideContainer(nodeBbox, containerBbox) {
|
|
335
|
+
return (nodeBbox.x >= containerBbox.x &&
|
|
336
|
+
nodeBbox.y >= containerBbox.y &&
|
|
337
|
+
nodeBbox.x + nodeBbox.w <= containerBbox.x + containerBbox.w &&
|
|
338
|
+
nodeBbox.y + nodeBbox.h <= containerBbox.y + containerBbox.h);
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Map NodeKind to child tag name for XML output.
|
|
342
|
+
*/
|
|
343
|
+
function mapKindToChildTag(kind) {
|
|
344
|
+
switch (kind) {
|
|
345
|
+
case 'button':
|
|
346
|
+
return 'button';
|
|
347
|
+
case 'link':
|
|
348
|
+
return 'link';
|
|
349
|
+
case 'heading':
|
|
350
|
+
return 'heading';
|
|
351
|
+
case 'input':
|
|
352
|
+
case 'textarea':
|
|
353
|
+
return 'input';
|
|
354
|
+
case 'select':
|
|
355
|
+
case 'combobox':
|
|
356
|
+
return 'select';
|
|
357
|
+
case 'checkbox':
|
|
358
|
+
case 'radio':
|
|
359
|
+
case 'switch':
|
|
360
|
+
return 'checkbox';
|
|
361
|
+
case 'slider':
|
|
362
|
+
return 'slider';
|
|
363
|
+
case 'tab':
|
|
364
|
+
case 'menuitem':
|
|
365
|
+
return 'tab';
|
|
366
|
+
default:
|
|
367
|
+
return 'text';
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Extract notable children from an observation's matched node.
|
|
372
|
+
*
|
|
373
|
+
* Finds interactive elements and headings that are visually contained within
|
|
374
|
+
* the observation container, up to MAX_OBSERVATION_CHILDREN limit.
|
|
375
|
+
*
|
|
376
|
+
* @param matchedNode - The snapshot node that matched the observation
|
|
377
|
+
* @param interactiveNodes - Pre-filtered list of interactive nodes (from buildInteractiveNodeList)
|
|
378
|
+
* @param registry - Element registry for eid lookup
|
|
379
|
+
* @returns Array of observation children (interactive elements and headings)
|
|
380
|
+
*/
|
|
381
|
+
export function extractObservationChildren(matchedNode, interactiveNodes, registry) {
|
|
382
|
+
const children = [];
|
|
383
|
+
const containerBbox = matchedNode.layout.bbox;
|
|
384
|
+
for (const node of interactiveNodes) {
|
|
385
|
+
// Skip the container itself
|
|
386
|
+
if (node.backend_node_id === matchedNode.backend_node_id)
|
|
387
|
+
continue;
|
|
388
|
+
// Skip nodes not inside the container
|
|
389
|
+
if (!isNodeInsideContainer(node.layout.bbox, containerBbox))
|
|
390
|
+
continue;
|
|
391
|
+
const eid = registry.getEidByBackendNodeId(node.backend_node_id);
|
|
392
|
+
children.push({
|
|
393
|
+
tag: mapKindToChildTag(node.kind),
|
|
394
|
+
eid: eid,
|
|
395
|
+
text: node.label,
|
|
396
|
+
});
|
|
397
|
+
// Limit children to prevent bloat
|
|
398
|
+
if (children.length >= MAX_OBSERVATION_CHILDREN)
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
return children;
|
|
402
|
+
}
|
|
403
|
+
//# sourceMappingURL=eid-linker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eid-linker.js","sourceRoot":"","sources":["../../../src/observation/eid-linker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAkC7E,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,qEAAqE;AACrE,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,6CAA6C;AAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,8CAA8C;AAC9C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,kDAAkD;AAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,YAAY,GAA+B;IAC/C,QAAQ;IACR,CAAC,EAAE,CAAC,MAAM,CAAC;IAEX,UAAU;IACV,MAAM,EAAE,CAAC,QAAQ,CAAC;IAElB,SAAS;IACT,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACzD,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAE9B,gCAAgC;IAChC,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;IACvD,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAE/B,kBAAkB;IAClB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAElB,aAAa;IACb,GAAG,EAAE,CAAC,YAAY,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IAEd,UAAU;IACV,EAAE,EAAE,CAAC,SAAS,CAAC;IACf,EAAE,EAAE,CAAC,SAAS,CAAC;IACf,EAAE,EAAE,CAAC,SAAS,CAAC;IACf,EAAE,EAAE,CAAC,SAAS,CAAC;IACf,EAAE,EAAE,CAAC,SAAS,CAAC;IACf,EAAE,EAAE,CAAC,SAAS,CAAC;IACf,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,CAAC,OAAO,CAAC;IAEd,QAAQ;IACR,EAAE,EAAE,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,CAAC,UAAU,CAAC;IAEhB,QAAQ;IACR,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,KAAK,EAAE,CAAC,OAAO,CAAC;IAEhB,QAAQ;IACR,KAAK,EAAE,CAAC,OAAO,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,SAAS,EAAE,8CAA8C;IAChE,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;CAC6B,CAAC;AAE9C,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAA+B,EAC/B,QAAsB,EACtB,QAAyB,EACzB,UAA4B,EAAE;IAE9B,wCAAwC;IACxC,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3C,+EAA+E;IAC/E,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAE5D,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,qDAAqD;IACrD,MAAM,SAAS,GAAG;QAChB,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QACjE,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;KACnE,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE7D,IAAI,KAAK,EAAE,CAAC;YACV,kDAAkD;YAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAClE,IAAI,GAAG,EAAE,CAAC;gBACR,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;gBAEtB,sEAAsE;gBACtE,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBAC/E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAClC,CAAC;gBAED,+CAA+C;gBAC/C,IAAI,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC3C,WAAW,CAAC,OAAO,GAAG,kBAAkB,CAAC;gBAC3C,CAAC;gBAED,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,KAAK,EAAE,SAAS,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAsB;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,WAA2B,EAC3B,SAAwC,EACxC,UAA4B,EAAE;IAE9B,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAExC,4CAA4C;IAC5C,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAEtD,8BAA8B;IAC9B,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2CAA2C;IAC3C,IAAI,SAAmC,CAAC;IACxC,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,wBAAwB;IAEvD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA2B;IAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAErD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAY,CAAC;IAElC,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAiC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,yCAAyC;IACzC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAA2B,EAC3B,IAAkB,EAClB,UAA4B,EAAE;IAE9B,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,eAAe,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAEjE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,kCAAkC;IAClC,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,CAAC,oBAAoB;IAChC,CAAC;IACD,KAAK,IAAI,eAAe,CAAC;IAEzB,yEAAyE;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IACzC,IACE,IAAI;QACJ,IAAI,IAAI,YAAY;QACpB,YAAY,CAAC,IAAiC,CAAC,KAAK,IAAI,CAAC,IAAI,EAC7D,CAAC;QACD,KAAK,IAAI,gBAAgB,CAAC;IAC5B,CAAC;IAED,sBAAsB;IACtB,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAE5D,cAAc;QACd,IAAI,iBAAiB,KAAK,mBAAmB,EAAE,CAAC;YAC9C,KAAK,IAAI,gBAAgB,CAAC;QAC5B,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,cAAc;YACd,MAAM,SAAS,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAEnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;YAC5E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,KAAK,IAAI,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnE,KAAK,IAAI,oBAAoB,CAAC;IAChC,CAAC;IAED,aAAa;IACb,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,4DAA4D;AAC5D,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC,kEAAkE;AAClE,MAAM,iBAAiB,GAAe;IACpC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAc;IACvC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAkB;IAC5C,4BAA4B;IAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC1D,mCAAmC;IACnC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAsB;IAC7D,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,QAAwD,EACxD,aAA6D;IAE7D,OAAO,CACL,QAAQ,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;QAC7B,QAAQ,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;QAC7B,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;QAC5D,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAc;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,OAAO,KAAK,CAAC;QACf;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAyB,EACzB,gBAAgC,EAChC,QAAyB;IAEzB,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,4BAA4B;QAC5B,IAAI,IAAI,CAAC,eAAe,KAAK,WAAW,CAAC,eAAe;YAAE,SAAS;QAEnE,sCAAsC;QACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;YAAE,SAAS;QAEtE,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,QAAQ,CAAC,MAAM,IAAI,wBAAwB;YAAE,MAAM;IACzD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM Observation module.
|
|
3
|
+
*
|
|
4
|
+
* Captures significant DOM mutations (toasts, dialogs, banners, overlays)
|
|
5
|
+
* that appear during or between actions.
|
|
6
|
+
*/
|
|
7
|
+
export type { SignificanceSignals, ObservedContent, DOMObservation, RawMutationEntry, ObservationGroups, } from './observation.types.js';
|
|
8
|
+
export { SIGNIFICANCE_WEIGHTS, SIGNIFICANCE_THRESHOLD, computeSignificance, } from './observation.types.js';
|
|
9
|
+
export { ObservationAccumulator, observationAccumulator } from './observation-accumulator.js';
|
|
10
|
+
export { OBSERVATION_OBSERVER_SCRIPT } from './observer-script.js';
|
|
11
|
+
export { linkObservationsToSnapshot, type EidLinkerOptions, type EidLinkingResult, } from './eid-linker.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/observation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EACL,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM Observation module.
|
|
3
|
+
*
|
|
4
|
+
* Captures significant DOM mutations (toasts, dialogs, banners, overlays)
|
|
5
|
+
* that appear during or between actions.
|
|
6
|
+
*/
|
|
7
|
+
// Constants and functions
|
|
8
|
+
export { SIGNIFICANCE_WEIGHTS, SIGNIFICANCE_THRESHOLD, computeSignificance, } from './observation.types.js';
|
|
9
|
+
// Accumulator
|
|
10
|
+
export { ObservationAccumulator, observationAccumulator } from './observation-accumulator.js';
|
|
11
|
+
// Browser script
|
|
12
|
+
export { OBSERVATION_OBSERVER_SCRIPT } from './observer-script.js';
|
|
13
|
+
// EID Linker
|
|
14
|
+
export { linkObservationsToSnapshot, } from './eid-linker.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/observation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,0BAA0B;AAC1B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE9F,iBAAiB;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,aAAa;AACb,OAAO,EACL,0BAA0B,GAG3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages persistent DOM observation for a page.
|
|
3
|
+
*
|
|
4
|
+
* Lifecycle:
|
|
5
|
+
* - inject() on page creation
|
|
6
|
+
* - ensureInjected() after navigation (document context changes)
|
|
7
|
+
* - getObservations() to retrieve significant mutations
|
|
8
|
+
*/
|
|
9
|
+
import type { Page } from 'puppeteer-core';
|
|
10
|
+
import type { ObservationGroups } from './observation.types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Manages persistent DOM observation for a page.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ObservationAccumulator {
|
|
15
|
+
/**
|
|
16
|
+
* Inject the persistent observer into the page.
|
|
17
|
+
* Safe to call multiple times - checks for existing injection.
|
|
18
|
+
*/
|
|
19
|
+
inject(page: Page): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Ensure observer is injected and valid (re-inject if needed after navigation).
|
|
22
|
+
*
|
|
23
|
+
* After navigation or page content changes, the observer might be stale
|
|
24
|
+
* (observing a detached body). We check if the observer's body reference
|
|
25
|
+
* matches the current document.body and only re-inject if stale.
|
|
26
|
+
*
|
|
27
|
+
* This preserves accumulated observations when the observer is still valid.
|
|
28
|
+
*/
|
|
29
|
+
ensureInjected(page: Page): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Get observations for an action.
|
|
32
|
+
* Returns both action-scoped and unreported accumulated observations.
|
|
33
|
+
*/
|
|
34
|
+
getObservations(page: Page, actionStartTime: number): Promise<ObservationGroups>;
|
|
35
|
+
/**
|
|
36
|
+
* Get accumulated observations without action context.
|
|
37
|
+
* Used by capture_snapshot to report accumulated changes.
|
|
38
|
+
*/
|
|
39
|
+
getAccumulatedObservations(page: Page): Promise<ObservationGroups>;
|
|
40
|
+
/**
|
|
41
|
+
* Convert raw mutation entry to DOMObservation.
|
|
42
|
+
*/
|
|
43
|
+
private rawToObservation;
|
|
44
|
+
/**
|
|
45
|
+
* Reset observation log (call after navigation).
|
|
46
|
+
*/
|
|
47
|
+
reset(page: Page): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if there are any unreported observations.
|
|
50
|
+
*/
|
|
51
|
+
hasUnreported(page: Page): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Filter observations by significance threshold.
|
|
54
|
+
*/
|
|
55
|
+
filterBySignificance(observations: ObservationGroups, threshold?: number): ObservationGroups;
|
|
56
|
+
}
|
|
57
|
+
export declare const observationAccumulator: ObservationAccumulator;
|
|
58
|
+
//# sourceMappingURL=observation-accumulator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-accumulator.d.ts","sourceRoot":"","sources":["../../../src/observation/observation-accumulator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IASvC;;;;;;;;OAQG;IACG,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/C;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsCtF;;;OAGG;IACG,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6BxE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtC;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjD;;OAEG;IACH,oBAAoB,CAClB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,GAAE,MAA+B,GACzC,iBAAiB;CAMrB;AAGD,eAAO,MAAM,sBAAsB,wBAA+B,CAAC"}
|