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,475 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Engine
|
|
3
|
+
*
|
|
4
|
+
* Compute incremental changes between snapshots.
|
|
5
|
+
* Returns added/removed/changed actionables and atoms.
|
|
6
|
+
*/
|
|
7
|
+
import { computeEid } from './element-identity.js';
|
|
8
|
+
import { isInteractiveKind } from './actionables-filter.js';
|
|
9
|
+
import { detectLayers } from './layer-detector.js';
|
|
10
|
+
import { extractAtoms } from './atoms-extractor.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Diff Computation
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Compute diff between previous and current snapshots.
|
|
16
|
+
*
|
|
17
|
+
* Includes:
|
|
18
|
+
* - Document changes (URL, title, navigation type)
|
|
19
|
+
* - Layer changes (stack changes)
|
|
20
|
+
* - Actionables changes (added, removed, changed)
|
|
21
|
+
* - Atoms changes (viewport, scroll, loading, forms, notifications)
|
|
22
|
+
*
|
|
23
|
+
* @param prev - Previous snapshot
|
|
24
|
+
* @param curr - Current snapshot
|
|
25
|
+
* @returns Diff response
|
|
26
|
+
*/
|
|
27
|
+
export function computeDiff(prev, curr) {
|
|
28
|
+
// Build EID maps for interactive elements
|
|
29
|
+
const prevMap = buildEidMap(prev);
|
|
30
|
+
const currMap = buildEidMap(curr);
|
|
31
|
+
// Find added/removed actionables
|
|
32
|
+
const added = findAdded(prevMap, currMap);
|
|
33
|
+
const removed = findRemoved(prevMap, currMap);
|
|
34
|
+
// Find changed actionables
|
|
35
|
+
const changed = findChanged(prevMap, currMap);
|
|
36
|
+
// Detect document change
|
|
37
|
+
const doc = detectDocumentChange(prev, curr);
|
|
38
|
+
// Detect layer change
|
|
39
|
+
const layer = detectLayerChange(prev, curr);
|
|
40
|
+
// Compute atomic diffs
|
|
41
|
+
const atoms = computeAtomicDiffs(prev, curr);
|
|
42
|
+
// Compute mutations (status-bearing readable elements)
|
|
43
|
+
const mutations = computeMutations(prev, curr);
|
|
44
|
+
// Determine if diff is empty (no meaningful changes)
|
|
45
|
+
const isEmpty = added.length === 0 &&
|
|
46
|
+
removed.length === 0 &&
|
|
47
|
+
changed.length === 0 &&
|
|
48
|
+
mutations.textChanged.length === 0 &&
|
|
49
|
+
mutations.statusAppeared.length === 0;
|
|
50
|
+
return {
|
|
51
|
+
mode: 'diff',
|
|
52
|
+
diff: {
|
|
53
|
+
doc,
|
|
54
|
+
layer,
|
|
55
|
+
actionables: {
|
|
56
|
+
added,
|
|
57
|
+
removed,
|
|
58
|
+
changed,
|
|
59
|
+
},
|
|
60
|
+
mutations,
|
|
61
|
+
isEmpty,
|
|
62
|
+
atoms,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// ============================================================================
|
|
67
|
+
// EID Map Building
|
|
68
|
+
// ============================================================================
|
|
69
|
+
/**
|
|
70
|
+
* Build map of EID -> node for visible interactive elements.
|
|
71
|
+
*
|
|
72
|
+
* @param snapshot - Snapshot to build map from
|
|
73
|
+
* @returns EID map
|
|
74
|
+
*/
|
|
75
|
+
function buildEidMap(snapshot) {
|
|
76
|
+
const map = new Map();
|
|
77
|
+
for (const node of snapshot.nodes) {
|
|
78
|
+
// Only include visible interactive elements
|
|
79
|
+
if (!isInteractiveKind(node.kind) || !node.state?.visible) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const eid = computeEid(node);
|
|
83
|
+
map.set(eid, node);
|
|
84
|
+
}
|
|
85
|
+
return map;
|
|
86
|
+
}
|
|
87
|
+
// ============================================================================
|
|
88
|
+
// Added/Removed Detection
|
|
89
|
+
// ============================================================================
|
|
90
|
+
/**
|
|
91
|
+
* Find added EIDs (present in current but not in previous).
|
|
92
|
+
*
|
|
93
|
+
* @param prevMap - Previous EID map
|
|
94
|
+
* @param currMap - Current EID map
|
|
95
|
+
* @returns Array of added EIDs
|
|
96
|
+
*/
|
|
97
|
+
function findAdded(prevMap, currMap) {
|
|
98
|
+
const added = [];
|
|
99
|
+
for (const eid of currMap.keys()) {
|
|
100
|
+
if (!prevMap.has(eid)) {
|
|
101
|
+
added.push(eid);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return added;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Find removed EIDs (present in previous but not in current).
|
|
108
|
+
*
|
|
109
|
+
* @param prevMap - Previous EID map
|
|
110
|
+
* @param currMap - Current EID map
|
|
111
|
+
* @returns Array of removed EIDs
|
|
112
|
+
*/
|
|
113
|
+
function findRemoved(prevMap, currMap) {
|
|
114
|
+
const removed = [];
|
|
115
|
+
for (const eid of prevMap.keys()) {
|
|
116
|
+
if (!currMap.has(eid)) {
|
|
117
|
+
removed.push(eid);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return removed;
|
|
121
|
+
}
|
|
122
|
+
// ============================================================================
|
|
123
|
+
// Changed Detection
|
|
124
|
+
// ============================================================================
|
|
125
|
+
/**
|
|
126
|
+
* Find changed actionables (present in both but with different state/attributes).
|
|
127
|
+
*
|
|
128
|
+
* @param prevMap - Previous EID map
|
|
129
|
+
* @param currMap - Current EID map
|
|
130
|
+
* @returns Array of changes
|
|
131
|
+
*/
|
|
132
|
+
function findChanged(prevMap, currMap) {
|
|
133
|
+
const changed = [];
|
|
134
|
+
for (const [eid, currNode] of currMap) {
|
|
135
|
+
const prevNode = prevMap.get(eid);
|
|
136
|
+
if (!prevNode) {
|
|
137
|
+
continue; // Already in 'added' list
|
|
138
|
+
}
|
|
139
|
+
// Compare state and attributes
|
|
140
|
+
const diffs = compareNodes(eid, prevNode, currNode);
|
|
141
|
+
changed.push(...diffs);
|
|
142
|
+
}
|
|
143
|
+
return changed;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Compare two nodes and return list of property changes.
|
|
147
|
+
*
|
|
148
|
+
* @param eid - Element ID
|
|
149
|
+
* @param prev - Previous node
|
|
150
|
+
* @param curr - Current node
|
|
151
|
+
* @returns Array of changes
|
|
152
|
+
*/
|
|
153
|
+
function compareNodes(eid, prev, curr) {
|
|
154
|
+
const changes = [];
|
|
155
|
+
// Compare state flags
|
|
156
|
+
const stateFields = [
|
|
157
|
+
'visible',
|
|
158
|
+
'enabled',
|
|
159
|
+
'checked',
|
|
160
|
+
'selected',
|
|
161
|
+
'expanded',
|
|
162
|
+
'focused',
|
|
163
|
+
'required',
|
|
164
|
+
'invalid',
|
|
165
|
+
'readonly',
|
|
166
|
+
];
|
|
167
|
+
for (const field of stateFields) {
|
|
168
|
+
const prevVal = prev.state?.[field];
|
|
169
|
+
const currVal = curr.state?.[field];
|
|
170
|
+
if (prevVal !== currVal) {
|
|
171
|
+
// Map to abbreviated keys
|
|
172
|
+
const abbrev = {
|
|
173
|
+
visible: 'vis',
|
|
174
|
+
enabled: 'ena',
|
|
175
|
+
checked: 'chk',
|
|
176
|
+
selected: 'sel',
|
|
177
|
+
expanded: 'exp',
|
|
178
|
+
focused: 'foc',
|
|
179
|
+
required: 'req',
|
|
180
|
+
invalid: 'inv',
|
|
181
|
+
readonly: 'rdo',
|
|
182
|
+
};
|
|
183
|
+
changes.push({
|
|
184
|
+
eid,
|
|
185
|
+
k: abbrev[field] || field,
|
|
186
|
+
from: prevVal,
|
|
187
|
+
to: currVal,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Compare value attribute (for inputs)
|
|
192
|
+
if (prev.attributes?.value !== curr.attributes?.value) {
|
|
193
|
+
changes.push({
|
|
194
|
+
eid,
|
|
195
|
+
k: 'val',
|
|
196
|
+
from: prev.attributes?.value,
|
|
197
|
+
to: curr.attributes?.value,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
// Compare label (text content)
|
|
201
|
+
if (prev.label !== curr.label) {
|
|
202
|
+
changes.push({
|
|
203
|
+
eid,
|
|
204
|
+
k: 'label',
|
|
205
|
+
from: prev.label,
|
|
206
|
+
to: curr.label,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
return changes;
|
|
210
|
+
}
|
|
211
|
+
// ============================================================================
|
|
212
|
+
// Document Change Detection
|
|
213
|
+
// ============================================================================
|
|
214
|
+
/**
|
|
215
|
+
* Detect if document changed (URL or title).
|
|
216
|
+
*
|
|
217
|
+
* @param prev - Previous snapshot
|
|
218
|
+
* @param curr - Current snapshot
|
|
219
|
+
* @returns Document change or undefined
|
|
220
|
+
*/
|
|
221
|
+
function detectDocumentChange(prev, curr) {
|
|
222
|
+
if (prev.url === curr.url && prev.title === curr.title) {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
// Determine navigation type
|
|
226
|
+
const navType = determineNavType(prev.url, curr.url);
|
|
227
|
+
return {
|
|
228
|
+
from: { url: prev.url, title: prev.title },
|
|
229
|
+
to: { url: curr.url, title: curr.title },
|
|
230
|
+
nav_type: navType,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Determine navigation type (soft vs hard).
|
|
235
|
+
* Soft: Same pathname, different hash/search
|
|
236
|
+
* Hard: Different pathname
|
|
237
|
+
*
|
|
238
|
+
* @param prevUrl - Previous URL
|
|
239
|
+
* @param currUrl - Current URL
|
|
240
|
+
* @returns Navigation type
|
|
241
|
+
*/
|
|
242
|
+
function determineNavType(prevUrl, currUrl) {
|
|
243
|
+
try {
|
|
244
|
+
const prev = new URL(prevUrl);
|
|
245
|
+
const curr = new URL(currUrl);
|
|
246
|
+
// Different pathname = hard navigation
|
|
247
|
+
if (prev.pathname !== curr.pathname) {
|
|
248
|
+
return 'hard';
|
|
249
|
+
}
|
|
250
|
+
// Same pathname = soft navigation
|
|
251
|
+
return 'soft';
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
// URL parsing failed, assume hard navigation
|
|
255
|
+
return 'hard';
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// ============================================================================
|
|
259
|
+
// Layer Change Detection
|
|
260
|
+
// ============================================================================
|
|
261
|
+
/**
|
|
262
|
+
* Detect if layer stack changed.
|
|
263
|
+
*
|
|
264
|
+
* @param prev - Previous snapshot
|
|
265
|
+
* @param curr - Current snapshot
|
|
266
|
+
* @returns Layer change or undefined
|
|
267
|
+
*/
|
|
268
|
+
function detectLayerChange(prev, curr) {
|
|
269
|
+
const prevLayers = detectLayers(prev);
|
|
270
|
+
const currLayers = detectLayers(curr);
|
|
271
|
+
// Compare stacks
|
|
272
|
+
const prevStack = prevLayers.stack.map((l) => l.type);
|
|
273
|
+
const currStack = currLayers.stack.map((l) => l.type);
|
|
274
|
+
if (arraysEqual(prevStack, currStack)) {
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
return {
|
|
278
|
+
stack_from: prevStack,
|
|
279
|
+
stack_to: currStack,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Check if two arrays are equal.
|
|
284
|
+
*/
|
|
285
|
+
function arraysEqual(a, b) {
|
|
286
|
+
if (a.length !== b.length) {
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
for (let i = 0; i < a.length; i++) {
|
|
290
|
+
if (a[i] !== b[i]) {
|
|
291
|
+
return false;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
// ============================================================================
|
|
297
|
+
// Atomic Diffs
|
|
298
|
+
// ============================================================================
|
|
299
|
+
/**
|
|
300
|
+
* Compute atomic state diffs (viewport, scroll, loading, forms, notifications).
|
|
301
|
+
*
|
|
302
|
+
* @param prev - Previous snapshot
|
|
303
|
+
* @param curr - Current snapshot
|
|
304
|
+
* @returns Array of atom changes
|
|
305
|
+
*/
|
|
306
|
+
function computeAtomicDiffs(prev, curr) {
|
|
307
|
+
const prevAtoms = extractAtoms(prev);
|
|
308
|
+
const currAtoms = extractAtoms(curr);
|
|
309
|
+
const changes = [];
|
|
310
|
+
// Compare viewport
|
|
311
|
+
if (prevAtoms.viewport.w !== currAtoms.viewport.w) {
|
|
312
|
+
changes.push({ k: 'viewport.w', from: prevAtoms.viewport.w, to: currAtoms.viewport.w });
|
|
313
|
+
}
|
|
314
|
+
if (prevAtoms.viewport.h !== currAtoms.viewport.h) {
|
|
315
|
+
changes.push({ k: 'viewport.h', from: prevAtoms.viewport.h, to: currAtoms.viewport.h });
|
|
316
|
+
}
|
|
317
|
+
// Compare scroll
|
|
318
|
+
if (prevAtoms.scroll.x !== currAtoms.scroll.x) {
|
|
319
|
+
changes.push({ k: 'scroll.x', from: prevAtoms.scroll.x, to: currAtoms.scroll.x });
|
|
320
|
+
}
|
|
321
|
+
if (prevAtoms.scroll.y !== currAtoms.scroll.y) {
|
|
322
|
+
changes.push({ k: 'scroll.y', from: prevAtoms.scroll.y, to: currAtoms.scroll.y });
|
|
323
|
+
}
|
|
324
|
+
// Compare loading
|
|
325
|
+
if (prevAtoms.loading?.spinners !== currAtoms.loading?.spinners) {
|
|
326
|
+
changes.push({
|
|
327
|
+
k: 'loading.spinners',
|
|
328
|
+
from: prevAtoms.loading?.spinners,
|
|
329
|
+
to: currAtoms.loading?.spinners,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
// Compare forms
|
|
333
|
+
if (prevAtoms.forms?.focused_field !== currAtoms.forms?.focused_field) {
|
|
334
|
+
changes.push({
|
|
335
|
+
k: 'forms.focused_field',
|
|
336
|
+
from: prevAtoms.forms?.focused_field,
|
|
337
|
+
to: currAtoms.forms?.focused_field,
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
if (prevAtoms.forms?.validation_errors !== currAtoms.forms?.validation_errors) {
|
|
341
|
+
changes.push({
|
|
342
|
+
k: 'forms.validation_errors',
|
|
343
|
+
from: prevAtoms.forms?.validation_errors,
|
|
344
|
+
to: currAtoms.forms?.validation_errors,
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
// Compare notifications
|
|
348
|
+
if (prevAtoms.notifications?.toasts !== currAtoms.notifications?.toasts) {
|
|
349
|
+
changes.push({
|
|
350
|
+
k: 'notifications.toasts',
|
|
351
|
+
from: prevAtoms.notifications?.toasts,
|
|
352
|
+
to: currAtoms.notifications?.toasts,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
return changes;
|
|
356
|
+
}
|
|
357
|
+
// ============================================================================
|
|
358
|
+
// Mutations Detection (Status-bearing Readable Elements)
|
|
359
|
+
// ============================================================================
|
|
360
|
+
/**
|
|
361
|
+
* EVALUATION FLAG: Track all readable element mutations, not just ARIA status roles.
|
|
362
|
+
*
|
|
363
|
+
* When true: Tracks ALL visible readable nodes (text, heading, paragraph, etc.)
|
|
364
|
+
* When false: Only tracks nodes with ARIA roles: status, alert, log, progressbar
|
|
365
|
+
*
|
|
366
|
+
* This flag is for evaluation to determine if broader mutation tracking is useful.
|
|
367
|
+
* Search for "TRACK_ALL_READABLE_MUTATIONS" to find this flag.
|
|
368
|
+
*
|
|
369
|
+
* TODO: Remove or make permanent after evaluation is complete.
|
|
370
|
+
*/
|
|
371
|
+
const TRACK_ALL_READABLE_MUTATIONS = false;
|
|
372
|
+
/**
|
|
373
|
+
* Maximum character length for mutation text content.
|
|
374
|
+
* Text exceeding this limit will be truncated with "..." suffix.
|
|
375
|
+
*/
|
|
376
|
+
const MUTATION_TEXT_MAX_LENGTH = 100;
|
|
377
|
+
/**
|
|
378
|
+
* ARIA roles that indicate state-bearing elements.
|
|
379
|
+
* Only used when TRACK_ALL_READABLE_MUTATIONS is false.
|
|
380
|
+
*/
|
|
381
|
+
const STATUS_ROLES = new Set(['status', 'alert', 'log', 'progressbar']);
|
|
382
|
+
/**
|
|
383
|
+
* Node kinds considered "readable" for mutation tracking.
|
|
384
|
+
* Used when TRACK_ALL_READABLE_MUTATIONS is true.
|
|
385
|
+
*/
|
|
386
|
+
const READABLE_KINDS = new Set([
|
|
387
|
+
'text',
|
|
388
|
+
'heading',
|
|
389
|
+
'paragraph',
|
|
390
|
+
'listitem',
|
|
391
|
+
'generic', // often used for dynamic content
|
|
392
|
+
]);
|
|
393
|
+
/**
|
|
394
|
+
* Check if a node should be tracked for mutations.
|
|
395
|
+
*
|
|
396
|
+
* When TRACK_ALL_READABLE_MUTATIONS is true: tracks any readable node kind
|
|
397
|
+
* When false: only tracks nodes with specific ARIA roles (status, alert, log, progressbar)
|
|
398
|
+
*/
|
|
399
|
+
function isTrackableNode(node) {
|
|
400
|
+
if (TRACK_ALL_READABLE_MUTATIONS) {
|
|
401
|
+
// Track any readable node kind
|
|
402
|
+
return READABLE_KINDS.has(node.kind);
|
|
403
|
+
}
|
|
404
|
+
// Only track nodes with status-bearing ARIA roles
|
|
405
|
+
const role = node.attributes?.role?.toLowerCase();
|
|
406
|
+
return role !== undefined && STATUS_ROLES.has(role);
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Truncate text to max length, adding "..." if truncated.
|
|
410
|
+
*/
|
|
411
|
+
function truncateText(text, maxLength = MUTATION_TEXT_MAX_LENGTH) {
|
|
412
|
+
const trimmed = text.trim();
|
|
413
|
+
if (trimmed.length <= maxLength) {
|
|
414
|
+
return trimmed;
|
|
415
|
+
}
|
|
416
|
+
return trimmed.substring(0, maxLength - 3) + '...';
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Generate a readable element ID (rd-* prefix).
|
|
420
|
+
*/
|
|
421
|
+
function computeReadableEid(node) {
|
|
422
|
+
const baseEid = computeEid(node);
|
|
423
|
+
return `rd-${baseEid.substring(0, 10)}`;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Build a map of trackable nodes keyed by a stable identifier.
|
|
427
|
+
* Uses backend_node_id as the key since it's stable within a session.
|
|
428
|
+
*/
|
|
429
|
+
function buildTrackableNodeMap(snapshot) {
|
|
430
|
+
const map = new Map();
|
|
431
|
+
for (const node of snapshot.nodes) {
|
|
432
|
+
if (isTrackableNode(node) && node.state?.visible) {
|
|
433
|
+
map.set(node.backend_node_id, node);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
return map;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Compute mutations in readable elements.
|
|
440
|
+
*
|
|
441
|
+
* Tracks:
|
|
442
|
+
* - Text changes in existing readable elements
|
|
443
|
+
* - New readable elements that appeared (with ARIA roles or all readable when flag is set)
|
|
444
|
+
*/
|
|
445
|
+
function computeMutations(prev, curr) {
|
|
446
|
+
const prevMap = buildTrackableNodeMap(prev);
|
|
447
|
+
const currMap = buildTrackableNodeMap(curr);
|
|
448
|
+
const textChanged = [];
|
|
449
|
+
const statusAppeared = [];
|
|
450
|
+
// Find text changes and new elements
|
|
451
|
+
for (const [backendNodeId, currNode] of currMap) {
|
|
452
|
+
const prevNode = prevMap.get(backendNodeId);
|
|
453
|
+
if (prevNode) {
|
|
454
|
+
// Node existed before - check for text change
|
|
455
|
+
if (prevNode.label !== currNode.label) {
|
|
456
|
+
textChanged.push({
|
|
457
|
+
eid: computeReadableEid(currNode),
|
|
458
|
+
from: truncateText(prevNode.label),
|
|
459
|
+
to: truncateText(currNode.label),
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
// New element appeared
|
|
465
|
+
const role = currNode.attributes?.role?.toLowerCase() ?? currNode.kind;
|
|
466
|
+
statusAppeared.push({
|
|
467
|
+
eid: computeReadableEid(currNode),
|
|
468
|
+
role,
|
|
469
|
+
text: truncateText(currNode.label),
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
return { textChanged, statusAppeared };
|
|
474
|
+
}
|
|
475
|
+
//# sourceMappingURL=diff-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-engine.js","sourceRoot":"","sources":["../../../src/state/diff-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element Identity
|
|
3
|
+
*
|
|
4
|
+
* Generate stable, semantic element IDs (eids) that survive DOM mutations.
|
|
5
|
+
* Uses semantic hashing instead of transient CDP backend_node_id.
|
|
6
|
+
*/
|
|
7
|
+
import type { ReadableNode } from '../snapshot/snapshot.types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Compute stable semantic element ID for a node.
|
|
10
|
+
*
|
|
11
|
+
* Uses hash of semantic components:
|
|
12
|
+
* - Role (or kind)
|
|
13
|
+
* - Accessible name (normalized label)
|
|
14
|
+
* - Href (for links)
|
|
15
|
+
* - Landmark path (region + group_path)
|
|
16
|
+
* - Layer context (modal vs main - prevents collision across layers)
|
|
17
|
+
* - Position hint (heading context from group_path - scroll-stable)
|
|
18
|
+
* - Shadow path (disambiguates elements in different shadow roots)
|
|
19
|
+
*
|
|
20
|
+
* @param node - Node to compute EID for
|
|
21
|
+
* @param layer - Optional layer context for disambiguation
|
|
22
|
+
* @returns 12-character hex hash
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeEid(node: ReadableNode, layer?: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Normalize accessible name for stable hashing.
|
|
27
|
+
* - Trim whitespace
|
|
28
|
+
* - Lowercase
|
|
29
|
+
* - Collapse multiple spaces
|
|
30
|
+
* - Cap length at 100 chars
|
|
31
|
+
*
|
|
32
|
+
* @param label - Raw label text
|
|
33
|
+
* @returns Normalized label
|
|
34
|
+
*/
|
|
35
|
+
export declare function normalizeAccessibleName(label: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Compute landmark path for a node.
|
|
38
|
+
* Format: "region/group1/group2"
|
|
39
|
+
*
|
|
40
|
+
* @param node - Node to compute path for
|
|
41
|
+
* @returns Landmark path string
|
|
42
|
+
*/
|
|
43
|
+
export declare function computeLandmarkPath(node: ReadableNode): string;
|
|
44
|
+
/**
|
|
45
|
+
* Compute position hint for stable EID disambiguation.
|
|
46
|
+
*
|
|
47
|
+
* Uses only scroll-stable semantic context:
|
|
48
|
+
* - Nearest heading from group_path (semantic grouping)
|
|
49
|
+
*
|
|
50
|
+
* Note: Viewport-dependent data (screen_zone, bbox quadrant) was removed
|
|
51
|
+
* because it caused EID instability when scrolling. The collision resolution
|
|
52
|
+
* mechanism (resolveEidCollision) handles any increased collision rate.
|
|
53
|
+
*
|
|
54
|
+
* @param node - Node to compute hint for
|
|
55
|
+
* @returns Position hint string
|
|
56
|
+
*/
|
|
57
|
+
export declare function computePositionHint(node: ReadableNode): string;
|
|
58
|
+
/**
|
|
59
|
+
* Hash string components to generate EID.
|
|
60
|
+
* Uses SHA-256 and returns first 12 hex chars.
|
|
61
|
+
*
|
|
62
|
+
* @param components - String components to hash
|
|
63
|
+
* @returns 12-character hex hash
|
|
64
|
+
*/
|
|
65
|
+
export declare function hashComponents(components: string[]): string;
|
|
66
|
+
/**
|
|
67
|
+
* Resolve EID collisions by appending suffix.
|
|
68
|
+
* If EID already exists in map, append "-2", "-3", etc.
|
|
69
|
+
*
|
|
70
|
+
* @param baseEid - Base EID before collision resolution
|
|
71
|
+
* @param existingEids - Set of already-used EIDs
|
|
72
|
+
* @returns Unique EID
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveEidCollision(baseEid: string, existingEids: Set<string>): string;
|
|
75
|
+
//# sourceMappingURL=element-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-identity.d.ts","sourceRoot":"","sources":["../../../src/state/element-identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAMlE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBrE;AAcD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAI9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAI9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAI3D;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAWtF"}
|