agent-web-interface 4.3.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/browser/browser-session-config.d.ts +33 -0
- package/dist/src/browser/browser-session-config.d.ts.map +1 -0
- package/dist/src/browser/browser-session-config.js +24 -0
- package/dist/src/browser/browser-session-config.js.map +1 -0
- package/dist/src/browser/connection-utils.d.ts +48 -0
- package/dist/src/browser/connection-utils.d.ts.map +1 -0
- package/dist/src/browser/connection-utils.js +129 -0
- package/dist/src/browser/connection-utils.js.map +1 -0
- package/dist/src/browser/ensure-browser.d.ts +12 -27
- package/dist/src/browser/ensure-browser.d.ts.map +1 -1
- package/dist/src/browser/ensure-browser.js +104 -37
- package/dist/src/browser/ensure-browser.js.map +1 -1
- package/dist/src/browser/index.d.ts +4 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +3 -1
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/browser/session-manager.d.ts +21 -89
- package/dist/src/browser/session-manager.d.ts.map +1 -1
- package/dist/src/browser/session-manager.js +122 -132
- package/dist/src/browser/session-manager.js.map +1 -1
- package/dist/src/browser/session-manager.types.d.ts +102 -0
- package/dist/src/browser/session-manager.types.d.ts.map +1 -0
- package/dist/src/browser/session-manager.types.js +11 -0
- package/dist/src/browser/session-manager.types.js.map +1 -0
- package/dist/src/cli/args.d.ts +12 -18
- package/dist/src/cli/args.d.ts.map +1 -1
- package/dist/src/cli/args.js +35 -40
- package/dist/src/cli/args.js.map +1 -1
- package/dist/src/form/constraint-extraction.d.ts +36 -0
- package/dist/src/form/constraint-extraction.d.ts.map +1 -0
- package/dist/src/form/constraint-extraction.js +117 -0
- package/dist/src/form/constraint-extraction.js.map +1 -0
- package/dist/src/form/field-extractor.d.ts.map +1 -1
- package/dist/src/form/field-extractor.js +16 -450
- package/dist/src/form/field-extractor.js.map +1 -1
- package/dist/src/form/field-state-extractor.d.ts +22 -0
- package/dist/src/form/field-state-extractor.d.ts.map +1 -0
- package/dist/src/form/field-state-extractor.js +55 -0
- package/dist/src/form/field-state-extractor.js.map +1 -0
- package/dist/src/form/form-actions.d.ts +45 -0
- package/dist/src/form/form-actions.d.ts.map +1 -0
- package/dist/src/form/form-actions.js +108 -0
- package/dist/src/form/form-actions.js.map +1 -0
- package/dist/src/form/form-detector.d.ts +0 -36
- package/dist/src/form/form-detector.d.ts.map +1 -1
- package/dist/src/form/form-detector.js +11 -376
- package/dist/src/form/form-detector.js.map +1 -1
- package/dist/src/form/form-state.d.ts.map +1 -1
- package/dist/src/form/form-state.js +16 -4
- package/dist/src/form/form-state.js.map +1 -1
- package/dist/src/form/input-clustering.d.ts +15 -0
- package/dist/src/form/input-clustering.d.ts.map +1 -0
- package/dist/src/form/input-clustering.js +61 -0
- package/dist/src/form/input-clustering.js.map +1 -0
- package/dist/src/form/intent-inference.d.ts +28 -0
- package/dist/src/form/intent-inference.d.ts.map +1 -0
- package/dist/src/form/intent-inference.js +137 -0
- package/dist/src/form/intent-inference.js.map +1 -0
- package/dist/src/form/purpose-inference.d.ts +50 -0
- package/dist/src/form/purpose-inference.d.ts.map +1 -0
- package/dist/src/form/purpose-inference.js +313 -0
- package/dist/src/form/purpose-inference.js.map +1 -0
- package/dist/src/form/submit-detection.d.ts +36 -0
- package/dist/src/form/submit-detection.d.ts.map +1 -0
- package/dist/src/form/submit-detection.js +101 -0
- package/dist/src/form/submit-detection.js.map +1 -0
- package/dist/src/form/types.d.ts +2 -2
- package/dist/src/gateway/http-gateway.d.ts +56 -0
- package/dist/src/gateway/http-gateway.d.ts.map +1 -0
- package/dist/src/gateway/http-gateway.js +229 -0
- package/dist/src/gateway/http-gateway.js.map +1 -0
- package/dist/src/gateway/json-rpc-errors.d.ts +6 -0
- package/dist/src/gateway/json-rpc-errors.d.ts.map +1 -0
- package/dist/src/gateway/json-rpc-errors.js +11 -0
- package/dist/src/gateway/json-rpc-errors.js.map +1 -0
- package/dist/src/gateway/session-router.d.ts +80 -0
- package/dist/src/gateway/session-router.d.ts.map +1 -0
- package/dist/src/gateway/session-router.js +177 -0
- package/dist/src/gateway/session-router.js.map +1 -0
- package/dist/src/http-entry.d.ts +20 -0
- package/dist/src/http-entry.d.ts.map +1 -0
- package/dist/src/http-entry.js +112 -0
- package/dist/src/http-entry.js.map +1 -0
- package/dist/src/index.d.ts +1 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -227
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/text-utils.d.ts +0 -24
- package/dist/src/lib/text-utils.d.ts.map +1 -1
- package/dist/src/lib/text-utils.js +2 -38
- package/dist/src/lib/text-utils.js.map +1 -1
- package/dist/src/observation/eid-linker.d.ts.map +1 -1
- package/dist/src/observation/eid-linker.js +1 -21
- package/dist/src/observation/eid-linker.js.map +1 -1
- package/dist/src/observation/observation-accumulator.d.ts +1 -1
- package/dist/src/observation/observation-accumulator.js +1 -1
- package/dist/src/observation/observer-script.d.ts +1 -1
- package/dist/src/observation/observer-script.d.ts.map +1 -1
- package/dist/src/observation/observer-script.js +129 -7
- package/dist/src/observation/observer-script.js.map +1 -1
- package/dist/src/query/disambiguation.d.ts +18 -0
- package/dist/src/query/disambiguation.d.ts.map +1 -0
- package/dist/src/query/disambiguation.js +123 -0
- package/dist/src/query/disambiguation.js.map +1 -0
- package/dist/src/query/fuzzy-match.d.ts +17 -0
- package/dist/src/query/fuzzy-match.d.ts.map +1 -0
- package/dist/src/query/fuzzy-match.js +34 -0
- package/dist/src/query/fuzzy-match.js.map +1 -0
- package/dist/src/query/index.d.ts +3 -0
- package/dist/src/query/index.d.ts.map +1 -1
- package/dist/src/query/index.js +6 -0
- package/dist/src/query/index.js.map +1 -1
- package/dist/src/query/query-engine.d.ts +0 -35
- package/dist/src/query/query-engine.d.ts.map +1 -1
- package/dist/src/query/query-engine.js +9 -309
- package/dist/src/query/query-engine.js.map +1 -1
- package/dist/src/query/scoring.d.ts +52 -0
- package/dist/src/query/scoring.d.ts.map +1 -0
- package/dist/src/query/scoring.js +162 -0
- package/dist/src/query/scoring.js.map +1 -0
- package/dist/src/server/index.d.ts +0 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +0 -1
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/mcp-server.d.ts +6 -2
- package/dist/src/server/mcp-server.d.ts.map +1 -1
- package/dist/src/server/mcp-server.js +3 -91
- package/dist/src/server/mcp-server.js.map +1 -1
- package/dist/src/server/server-config.d.ts +4 -20
- package/dist/src/server/server-config.d.ts.map +1 -1
- package/dist/src/server/server-config.js +6 -50
- package/dist/src/server/server-config.js.map +1 -1
- package/dist/src/server/tool-registrar.types.d.ts +25 -0
- package/dist/src/server/tool-registrar.types.d.ts.map +1 -0
- package/dist/src/server/tool-registrar.types.js +10 -0
- package/dist/src/server/tool-registrar.types.js.map +1 -0
- package/dist/src/server/tool-result-handler.d.ts +61 -0
- package/dist/src/server/tool-result-handler.d.ts.map +1 -0
- package/dist/src/server/tool-result-handler.js +137 -0
- package/dist/src/server/tool-result-handler.js.map +1 -0
- package/dist/src/session/session-controller.d.ts +123 -0
- package/dist/src/session/session-controller.d.ts.map +1 -0
- package/dist/src/session/session-controller.js +273 -0
- package/dist/src/session/session-controller.js.map +1 -0
- package/dist/src/shared/services/index.d.ts +0 -2
- package/dist/src/shared/services/index.d.ts.map +1 -1
- package/dist/src/shared/services/index.js +0 -2
- package/dist/src/shared/services/index.js.map +1 -1
- package/dist/src/shared/version.d.ts +10 -0
- package/dist/src/shared/version.d.ts.map +1 -0
- package/dist/src/shared/version.js +32 -0
- package/dist/src/shared/version.js.map +1 -0
- package/dist/src/snapshot/element-resolver.d.ts +27 -15
- package/dist/src/snapshot/element-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/element-resolver.js +196 -91
- package/dist/src/snapshot/element-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/attribute-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/attribute-extractor.js +4 -0
- package/dist/src/snapshot/extractors/attribute-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.d.ts +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/ax-extractor.js +4 -1
- package/dist/src/snapshot/extractors/ax-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/index.d.ts +1 -1
- package/dist/src/snapshot/extractors/index.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/index.js +1 -1
- package/dist/src/snapshot/extractors/index.js.map +1 -1
- package/dist/src/snapshot/extractors/layout-extractor.d.ts +9 -7
- package/dist/src/snapshot/extractors/layout-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/layout-extractor.js +34 -19
- package/dist/src/snapshot/extractors/layout-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/region-resolver.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/region-resolver.js +8 -0
- package/dist/src/snapshot/extractors/region-resolver.js.map +1 -1
- package/dist/src/snapshot/extractors/state-extractor.d.ts +2 -2
- package/dist/src/snapshot/extractors/state-extractor.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/state-extractor.js +22 -2
- package/dist/src/snapshot/extractors/state-extractor.js.map +1 -1
- package/dist/src/snapshot/extractors/types.d.ts +14 -0
- package/dist/src/snapshot/extractors/types.d.ts.map +1 -1
- package/dist/src/snapshot/extractors/types.js +16 -0
- package/dist/src/snapshot/extractors/types.js.map +1 -1
- package/dist/src/snapshot/frame-context.d.ts +68 -0
- package/dist/src/snapshot/frame-context.d.ts.map +1 -0
- package/dist/src/snapshot/frame-context.js +131 -0
- package/dist/src/snapshot/frame-context.js.map +1 -0
- package/dist/src/snapshot/heading-index.d.ts +28 -0
- package/dist/src/snapshot/heading-index.d.ts.map +1 -0
- package/dist/src/snapshot/heading-index.js +108 -0
- package/dist/src/snapshot/heading-index.js.map +1 -0
- package/dist/src/snapshot/index.d.ts +5 -3
- package/dist/src/snapshot/index.d.ts.map +1 -1
- package/dist/src/snapshot/index.js +3 -2
- package/dist/src/snapshot/index.js.map +1 -1
- package/dist/src/snapshot/kind-mapping.d.ts +30 -0
- package/dist/src/snapshot/kind-mapping.d.ts.map +1 -0
- package/dist/src/snapshot/kind-mapping.js +114 -0
- package/dist/src/snapshot/kind-mapping.js.map +1 -0
- package/dist/src/snapshot/node-filter.d.ts +31 -0
- package/dist/src/snapshot/node-filter.d.ts.map +1 -0
- package/dist/src/snapshot/node-filter.js +137 -0
- package/dist/src/snapshot/node-filter.js.map +1 -0
- package/dist/src/snapshot/node-synthesizer.d.ts +62 -0
- package/dist/src/snapshot/node-synthesizer.d.ts.map +1 -0
- package/dist/src/snapshot/node-synthesizer.js +185 -0
- package/dist/src/snapshot/node-synthesizer.js.map +1 -0
- package/dist/src/snapshot/snapshot-compiler.d.ts +2 -36
- package/dist/src/snapshot/snapshot-compiler.d.ts.map +1 -1
- package/dist/src/snapshot/snapshot-compiler.js +40 -549
- package/dist/src/snapshot/snapshot-compiler.js.map +1 -1
- package/dist/src/snapshot/snapshot.types.d.ts +17 -3
- package/dist/src/snapshot/snapshot.types.d.ts.map +1 -1
- package/dist/src/snapshot/snapshot.types.js +8 -0
- package/dist/src/snapshot/snapshot.types.js.map +1 -1
- package/dist/src/state/actionables-filter.d.ts +5 -0
- package/dist/src/state/actionables-filter.d.ts.map +1 -1
- package/dist/src/state/actionables-filter.js +28 -6
- package/dist/src/state/actionables-filter.js.map +1 -1
- package/dist/src/state/atoms-extractor.d.ts.map +1 -1
- package/dist/src/state/atoms-extractor.js +3 -23
- package/dist/src/state/atoms-extractor.js.map +1 -1
- package/dist/src/state/diff-engine.d.ts.map +1 -1
- package/dist/src/state/diff-engine.js +9 -36
- package/dist/src/state/diff-engine.js.map +1 -1
- package/dist/src/state/element-identity.d.ts +3 -6
- package/dist/src/state/element-identity.d.ts.map +1 -1
- package/dist/src/state/element-identity.js +10 -7
- package/dist/src/state/element-identity.js.map +1 -1
- package/dist/src/state/element-ref.types.d.ts +5 -27
- package/dist/src/state/element-ref.types.d.ts.map +1 -1
- package/dist/src/state/element-registry.d.ts.map +1 -1
- package/dist/src/state/element-registry.js +6 -4
- package/dist/src/state/element-registry.js.map +1 -1
- package/dist/src/state/hash-utils.d.ts +24 -0
- package/dist/src/state/hash-utils.d.ts.map +1 -0
- package/dist/src/state/hash-utils.js +41 -0
- package/dist/src/state/hash-utils.js.map +1 -0
- package/dist/src/state/layer-detector.d.ts.map +1 -1
- package/dist/src/state/layer-detector.js +15 -286
- package/dist/src/state/layer-detector.js.map +1 -1
- package/dist/src/state/layer-detectors/drawer-detector.d.ts +32 -0
- package/dist/src/state/layer-detectors/drawer-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/drawer-detector.js +96 -0
- package/dist/src/state/layer-detectors/drawer-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/index.d.ts +10 -0
- package/dist/src/state/layer-detectors/index.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/index.js +10 -0
- package/dist/src/state/layer-detectors/index.js.map +1 -0
- package/dist/src/state/layer-detectors/modal-detector.d.ts +30 -0
- package/dist/src/state/layer-detectors/modal-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/modal-detector.js +127 -0
- package/dist/src/state/layer-detectors/modal-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/popover-detector.d.ts +20 -0
- package/dist/src/state/layer-detectors/popover-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/popover-detector.js +76 -0
- package/dist/src/state/layer-detectors/popover-detector.js.map +1 -0
- package/dist/src/state/layer-detectors/toast-detector.d.ts +24 -0
- package/dist/src/state/layer-detectors/toast-detector.d.ts.map +1 -0
- package/dist/src/state/layer-detectors/toast-detector.js +48 -0
- package/dist/src/state/layer-detectors/toast-detector.js.map +1 -0
- package/dist/src/state/region-mapping.d.ts +13 -0
- package/dist/src/state/region-mapping.d.ts.map +1 -0
- package/dist/src/state/region-mapping.js +25 -0
- package/dist/src/state/region-mapping.js.map +1 -0
- package/dist/src/state/state-manager.d.ts.map +1 -1
- package/dist/src/state/state-manager.js +11 -193
- package/dist/src/state/state-manager.js.map +1 -1
- package/dist/src/state/state-renderer.d.ts.map +1 -1
- package/dist/src/state/state-renderer.js +17 -3
- package/dist/src/state/state-renderer.js.map +1 -1
- package/dist/src/state/types.d.ts +10 -5
- package/dist/src/state/types.d.ts.map +1 -1
- package/dist/src/state/url-sanitization.d.ts +22 -0
- package/dist/src/state/url-sanitization.d.ts.map +1 -0
- package/dist/src/state/url-sanitization.js +76 -0
- package/dist/src/state/url-sanitization.js.map +1 -0
- package/dist/src/state/value-masking.d.ts +36 -0
- package/dist/src/state/value-masking.d.ts.map +1 -0
- package/dist/src/state/value-masking.js +86 -0
- package/dist/src/state/value-masking.js.map +1 -0
- package/dist/src/tools/action-context.d.ts +55 -0
- package/dist/src/tools/action-context.d.ts.map +1 -0
- package/dist/src/tools/action-context.js +69 -0
- package/dist/src/tools/action-context.js.map +1 -0
- package/dist/src/tools/action-stabilization.d.ts +48 -0
- package/dist/src/tools/action-stabilization.d.ts.map +1 -0
- package/dist/src/tools/action-stabilization.js +93 -0
- package/dist/src/tools/action-stabilization.js.map +1 -0
- package/dist/src/tools/browser-tools.d.ts +9 -167
- package/dist/src/tools/browser-tools.d.ts.map +1 -1
- package/dist/src/tools/browser-tools.js +15 -651
- package/dist/src/tools/browser-tools.js.map +1 -1
- package/dist/src/tools/canvas-tools.d.ts +2 -1
- package/dist/src/tools/canvas-tools.d.ts.map +1 -1
- package/dist/src/tools/canvas-tools.js +5 -7
- package/dist/src/tools/canvas-tools.js.map +1 -1
- package/dist/src/tools/effect-tracker.d.ts +25 -0
- package/dist/src/tools/effect-tracker.d.ts.map +1 -0
- package/dist/src/tools/effect-tracker.js +69 -0
- package/dist/src/tools/effect-tracker.js.map +1 -0
- package/dist/src/tools/errors.d.ts +2 -34
- package/dist/src/tools/errors.d.ts.map +1 -1
- package/dist/src/tools/errors.js +1 -44
- package/dist/src/tools/errors.js.map +1 -1
- package/dist/src/tools/execute-action.d.ts +5 -34
- package/dist/src/tools/execute-action.d.ts.map +1 -1
- package/dist/src/tools/execute-action.js +37 -297
- package/dist/src/tools/execute-action.js.map +1 -1
- package/dist/src/tools/form-tools.d.ts +5 -10
- package/dist/src/tools/form-tools.d.ts.map +1 -1
- package/dist/src/tools/form-tools.js +42 -22
- package/dist/src/tools/form-tools.js.map +1 -1
- package/dist/src/tools/index.d.ts +6 -6
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +16 -17
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/interaction-tools.d.ts +47 -0
- package/dist/src/tools/interaction-tools.d.ts.map +1 -0
- package/dist/src/tools/interaction-tools.js +135 -0
- package/dist/src/tools/interaction-tools.js.map +1 -0
- package/dist/src/tools/navigation-detection.d.ts +31 -0
- package/dist/src/tools/navigation-detection.d.ts.map +1 -0
- package/dist/src/tools/navigation-detection.js +46 -0
- package/dist/src/tools/navigation-detection.js.map +1 -0
- package/dist/src/tools/navigation-tools.d.ts +51 -0
- package/dist/src/tools/navigation-tools.d.ts.map +1 -0
- package/dist/src/tools/navigation-tools.js +171 -0
- package/dist/src/tools/navigation-tools.js.map +1 -0
- package/dist/src/tools/observation-tools.d.ts +54 -0
- package/dist/src/tools/observation-tools.d.ts.map +1 -0
- package/dist/src/tools/observation-tools.js +243 -0
- package/dist/src/tools/observation-tools.js.map +1 -0
- package/dist/src/tools/readability-tools.d.ts +16 -0
- package/dist/src/tools/readability-tools.d.ts.map +1 -0
- package/dist/src/tools/readability-tools.js +45 -0
- package/dist/src/tools/readability-tools.js.map +1 -0
- package/dist/src/tools/response-builder.d.ts +20 -32
- package/dist/src/tools/response-builder.d.ts.map +1 -1
- package/dist/src/tools/response-builder.js +32 -48
- package/dist/src/tools/response-builder.js.map +1 -1
- package/dist/src/tools/stale-element-retry.d.ts +37 -0
- package/dist/src/tools/stale-element-retry.d.ts.map +1 -0
- package/dist/src/tools/stale-element-retry.js +103 -0
- package/dist/src/tools/stale-element-retry.js.map +1 -0
- package/dist/src/tools/tool-context.d.ts +4 -36
- package/dist/src/tools/tool-context.d.ts.map +1 -1
- package/dist/src/tools/tool-context.js +6 -75
- package/dist/src/tools/tool-context.js.map +1 -1
- package/dist/src/tools/tool-context.types.d.ts +141 -0
- package/dist/src/tools/tool-context.types.d.ts.map +1 -0
- package/dist/src/tools/tool-context.types.js +11 -0
- package/dist/src/tools/tool-context.types.js.map +1 -0
- package/dist/src/tools/tool-registration.d.ts +25 -0
- package/dist/src/tools/tool-registration.d.ts.map +1 -0
- package/dist/src/tools/tool-registration.js +180 -0
- package/dist/src/tools/tool-registration.js.map +1 -0
- package/dist/src/tools/tool-schemas.d.ts +176 -1950
- package/dist/src/tools/tool-schemas.d.ts.map +1 -1
- package/dist/src/tools/tool-schemas.js +80 -320
- package/dist/src/tools/tool-schemas.js.map +1 -1
- package/dist/src/tools/viewport-tools.d.ts +37 -0
- package/dist/src/tools/viewport-tools.d.ts.map +1 -0
- package/dist/src/tools/viewport-tools.js +101 -0
- package/dist/src/tools/viewport-tools.js.map +1 -0
- package/dist/src/worker/chrome-worker-process.d.ts +4 -0
- package/dist/src/worker/chrome-worker-process.d.ts.map +1 -1
- package/dist/src/worker/chrome-worker-process.js +1 -1
- package/dist/src/worker/chrome-worker-process.js.map +1 -1
- package/package.json +7 -3
- package/dist/src/factpack/action-selector.d.ts +0 -36
- package/dist/src/factpack/action-selector.d.ts.map +0 -1
- package/dist/src/factpack/action-selector.js +0 -367
- package/dist/src/factpack/action-selector.js.map +0 -1
- package/dist/src/factpack/dialog-detector.d.ts +0 -19
- package/dist/src/factpack/dialog-detector.d.ts.map +0 -1
- package/dist/src/factpack/dialog-detector.js +0 -354
- package/dist/src/factpack/dialog-detector.js.map +0 -1
- package/dist/src/factpack/form-detector.d.ts +0 -28
- package/dist/src/factpack/form-detector.d.ts.map +0 -1
- package/dist/src/factpack/form-detector.js +0 -555
- package/dist/src/factpack/form-detector.js.map +0 -1
- package/dist/src/factpack/index.d.ts +0 -32
- package/dist/src/factpack/index.d.ts.map +0 -1
- package/dist/src/factpack/index.js +0 -73
- package/dist/src/factpack/index.js.map +0 -1
- package/dist/src/factpack/page-classifier.d.ts +0 -22
- package/dist/src/factpack/page-classifier.d.ts.map +0 -1
- package/dist/src/factpack/page-classifier.js +0 -526
- package/dist/src/factpack/page-classifier.js.map +0 -1
- package/dist/src/factpack/types.d.ts +0 -307
- package/dist/src/factpack/types.d.ts.map +0 -1
- package/dist/src/factpack/types.js +0 -12
- package/dist/src/factpack/types.js.map +0 -1
- package/dist/src/lib/constants.d.ts +0 -27
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -63
- package/dist/src/lib/constants.js.map +0 -1
- package/dist/src/lib/index.d.ts +0 -12
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -17
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/lib/regions.d.ts +0 -29
- package/dist/src/lib/regions.d.ts.map +0 -1
- package/dist/src/lib/regions.js +0 -93
- package/dist/src/lib/regions.js.map +0 -1
- package/dist/src/lib/scoring.d.ts +0 -47
- package/dist/src/lib/scoring.d.ts.map +0 -1
- package/dist/src/lib/scoring.js +0 -79
- package/dist/src/lib/scoring.js.map +0 -1
- package/dist/src/lib/selectors.d.ts +0 -42
- package/dist/src/lib/selectors.d.ts.map +0 -1
- package/dist/src/lib/selectors.js +0 -138
- package/dist/src/lib/selectors.js.map +0 -1
- package/dist/src/renderer/budget-manager.d.ts +0 -46
- package/dist/src/renderer/budget-manager.d.ts.map +0 -1
- package/dist/src/renderer/budget-manager.js +0 -133
- package/dist/src/renderer/budget-manager.js.map +0 -1
- package/dist/src/renderer/constants.d.ts +0 -38
- package/dist/src/renderer/constants.d.ts.map +0 -1
- package/dist/src/renderer/constants.js +0 -29
- package/dist/src/renderer/constants.js.map +0 -1
- package/dist/src/renderer/index.d.ts +0 -12
- package/dist/src/renderer/index.d.ts.map +0 -1
- package/dist/src/renderer/index.js +0 -16
- package/dist/src/renderer/index.js.map +0 -1
- package/dist/src/renderer/section-renderers.d.ts +0 -42
- package/dist/src/renderer/section-renderers.d.ts.map +0 -1
- package/dist/src/renderer/section-renderers.js +0 -252
- package/dist/src/renderer/section-renderers.js.map +0 -1
- package/dist/src/renderer/token-counter.d.ts +0 -45
- package/dist/src/renderer/token-counter.d.ts.map +0 -1
- package/dist/src/renderer/token-counter.js +0 -65
- package/dist/src/renderer/token-counter.js.map +0 -1
- package/dist/src/renderer/types.d.ts +0 -71
- package/dist/src/renderer/types.d.ts.map +0 -1
- package/dist/src/renderer/types.js +0 -7
- package/dist/src/renderer/types.js.map +0 -1
- package/dist/src/renderer/xml-renderer.d.ts +0 -42
- package/dist/src/renderer/xml-renderer.d.ts.map +0 -1
- package/dist/src/renderer/xml-renderer.js +0 -103
- package/dist/src/renderer/xml-renderer.js.map +0 -1
- package/dist/src/server/session-store.d.ts +0 -163
- package/dist/src/server/session-store.d.ts.map +0 -1
- package/dist/src/server/session-store.js +0 -248
- package/dist/src/server/session-store.js.map +0 -1
- package/dist/src/session/session-worker-binding.d.ts +0 -57
- package/dist/src/session/session-worker-binding.d.ts.map +0 -1
- package/dist/src/session/session-worker-binding.js +0 -109
- package/dist/src/session/session-worker-binding.js.map +0 -1
- package/dist/src/shared/services/dom-transformer.service.d.ts +0 -71
- package/dist/src/shared/services/dom-transformer.service.d.ts.map +0 -1
- package/dist/src/shared/services/dom-transformer.service.js +0 -190
- package/dist/src/shared/services/dom-transformer.service.js.map +0 -1
- package/dist/src/shared/services/selector-builder.service.d.ts +0 -53
- package/dist/src/shared/services/selector-builder.service.d.ts.map +0 -1
- package/dist/src/shared/services/selector-builder.service.js +0 -240
- package/dist/src/shared/services/selector-builder.service.js.map +0 -1
- package/dist/src/state/constants.d.ts +0 -125
- package/dist/src/state/constants.d.ts.map +0 -1
- package/dist/src/state/constants.js +0 -131
- package/dist/src/state/constants.js.map +0 -1
|
@@ -5,33 +5,8 @@
|
|
|
5
5
|
* - State tools return `<state>...</state>` (via StateManager)
|
|
6
6
|
* - Data tools return `<result type="...">...</result>` (via builders here)
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
9
|
-
import type { StateResponse } from '../state/types.js';
|
|
8
|
+
import type { NodeState } from '../snapshot/snapshot.types.js';
|
|
10
9
|
import type { NodeDetails } from './tool-schemas.js';
|
|
11
|
-
/**
|
|
12
|
-
* Build an XML state response for a page snapshot.
|
|
13
|
-
*
|
|
14
|
-
* This is the standard way to generate a response for tools that:
|
|
15
|
-
* - Launch/connect browsers
|
|
16
|
-
* - Navigate to URLs
|
|
17
|
-
* - Capture snapshots directly
|
|
18
|
-
* - Perform mutations (click, type, etc.)
|
|
19
|
-
*
|
|
20
|
-
* @param pageId - The page identifier
|
|
21
|
-
* @param snapshot - The captured snapshot
|
|
22
|
-
* @returns XML state response string
|
|
23
|
-
*/
|
|
24
|
-
export declare function buildStateResponse(pageId: string, snapshot: BaseSnapshot): StateResponse;
|
|
25
|
-
/**
|
|
26
|
-
* Build an error response.
|
|
27
|
-
*
|
|
28
|
-
* This provides a consistent error format across all tools.
|
|
29
|
-
*
|
|
30
|
-
* @param pageId - The page identifier
|
|
31
|
-
* @param error - The error message or Error object
|
|
32
|
-
* @returns XML state response string with error
|
|
33
|
-
*/
|
|
34
|
-
export declare function buildErrorResponse(pageId: string, error: Error | string): StateResponse;
|
|
35
10
|
/**
|
|
36
11
|
* Page metadata for list_pages response.
|
|
37
12
|
*/
|
|
@@ -54,12 +29,6 @@ export declare function buildListPagesResponse(pages: PageInfo[]): string;
|
|
|
54
29
|
* @returns XML result string
|
|
55
30
|
*/
|
|
56
31
|
export declare function buildClosePageResponse(pageId: string): string;
|
|
57
|
-
/**
|
|
58
|
-
* Build XML response for close_session tool.
|
|
59
|
-
*
|
|
60
|
-
* @returns XML result string
|
|
61
|
-
*/
|
|
62
|
-
export declare function buildCloseSessionResponse(): string;
|
|
63
32
|
/**
|
|
64
33
|
* Match item from find_elements query.
|
|
65
34
|
*/
|
|
@@ -83,6 +52,25 @@ export interface FindElementsMatch {
|
|
|
83
52
|
* @returns XML result string
|
|
84
53
|
*/
|
|
85
54
|
export declare function buildFindElementsResponse(pageId: string, snapshotId: string, matches: FindElementsMatch[]): string;
|
|
55
|
+
/**
|
|
56
|
+
* Article metadata for read_page response.
|
|
57
|
+
*/
|
|
58
|
+
export interface ReadPageArticle {
|
|
59
|
+
title: string;
|
|
60
|
+
byline: string | null;
|
|
61
|
+
excerpt: string | null;
|
|
62
|
+
siteName: string | null;
|
|
63
|
+
lang: string | null;
|
|
64
|
+
textContent: string;
|
|
65
|
+
length: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build XML response for read_page tool.
|
|
69
|
+
*
|
|
70
|
+
* @param article - Extracted article metadata and content
|
|
71
|
+
* @returns XML result string
|
|
72
|
+
*/
|
|
73
|
+
export declare function buildReadPageResponse(article: ReadPageArticle): string;
|
|
86
74
|
/**
|
|
87
75
|
* Build XML response for get_element_details tool.
|
|
88
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-builder.d.ts","sourceRoot":"","sources":["../../../src/tools/response-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"response-builder.d.ts","sourceRoot":"","sources":["../../../src/tools/response-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAWhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,EAAE,GAC3B,MAAM,CAiDR;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAgBtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,MAAM,CAuER"}
|
|
@@ -5,42 +5,7 @@
|
|
|
5
5
|
* - State tools return `<state>...</state>` (via StateManager)
|
|
6
6
|
* - Data tools return `<result type="...">...</result>` (via builders here)
|
|
7
7
|
*/
|
|
8
|
-
import { getStateManager } from './execute-action.js';
|
|
9
8
|
import { escapeXml, xmlAttr } from '../lib/text-utils.js';
|
|
10
|
-
// ============================================================================
|
|
11
|
-
// State Response Builders (for mutation/navigation tools)
|
|
12
|
-
// ============================================================================
|
|
13
|
-
/**
|
|
14
|
-
* Build an XML state response for a page snapshot.
|
|
15
|
-
*
|
|
16
|
-
* This is the standard way to generate a response for tools that:
|
|
17
|
-
* - Launch/connect browsers
|
|
18
|
-
* - Navigate to URLs
|
|
19
|
-
* - Capture snapshots directly
|
|
20
|
-
* - Perform mutations (click, type, etc.)
|
|
21
|
-
*
|
|
22
|
-
* @param pageId - The page identifier
|
|
23
|
-
* @param snapshot - The captured snapshot
|
|
24
|
-
* @returns XML state response string
|
|
25
|
-
*/
|
|
26
|
-
export function buildStateResponse(pageId, snapshot) {
|
|
27
|
-
const stateManager = getStateManager(pageId);
|
|
28
|
-
return stateManager.generateResponse(snapshot);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Build an error response.
|
|
32
|
-
*
|
|
33
|
-
* This provides a consistent error format across all tools.
|
|
34
|
-
*
|
|
35
|
-
* @param pageId - The page identifier
|
|
36
|
-
* @param error - The error message or Error object
|
|
37
|
-
* @returns XML state response string with error
|
|
38
|
-
*/
|
|
39
|
-
export function buildErrorResponse(pageId, error) {
|
|
40
|
-
const stateManager = getStateManager(pageId);
|
|
41
|
-
const errorMessage = error instanceof Error ? error.message : error;
|
|
42
|
-
return stateManager.generateErrorResponse(errorMessage);
|
|
43
|
-
}
|
|
44
9
|
/**
|
|
45
10
|
* Build XML response for list_pages tool.
|
|
46
11
|
*
|
|
@@ -66,16 +31,6 @@ export function buildClosePageResponse(pageId) {
|
|
|
66
31
|
<closed page_id="${escapeXml(pageId)}" />
|
|
67
32
|
</result>`;
|
|
68
33
|
}
|
|
69
|
-
/**
|
|
70
|
-
* Build XML response for close_session tool.
|
|
71
|
-
*
|
|
72
|
-
* @returns XML result string
|
|
73
|
-
*/
|
|
74
|
-
export function buildCloseSessionResponse() {
|
|
75
|
-
return `<result type="close_session" status="success">
|
|
76
|
-
<closed />
|
|
77
|
-
</result>`;
|
|
78
|
-
}
|
|
79
34
|
/**
|
|
80
35
|
* Build XML response for find_elements tool.
|
|
81
36
|
*
|
|
@@ -86,7 +41,7 @@ export function buildCloseSessionResponse() {
|
|
|
86
41
|
*/
|
|
87
42
|
export function buildFindElementsResponse(pageId, snapshotId, matches) {
|
|
88
43
|
const lines = [];
|
|
89
|
-
lines.push(`<result type="
|
|
44
|
+
lines.push(`<result type="find" page_id="${escapeXml(pageId)}" snapshot_id="${escapeXml(snapshotId)}" count="${matches.length}">`);
|
|
90
45
|
for (const m of matches) {
|
|
91
46
|
const attrs = [
|
|
92
47
|
`eid="${escapeXml(m.eid)}"`,
|
|
@@ -105,11 +60,13 @@ export function buildFindElementsResponse(pageId, snapshotId, matches) {
|
|
|
105
60
|
if (m.state.enabled !== undefined)
|
|
106
61
|
attrs.push(`enabled="${m.state.enabled ? 'true' : 'false'}"`);
|
|
107
62
|
if (m.state.checked)
|
|
108
|
-
attrs.push(`checked="true"`);
|
|
63
|
+
attrs.push(`checked="${m.state.checked === 'mixed' ? 'mixed' : 'true'}"`);
|
|
109
64
|
if (m.state.expanded)
|
|
110
65
|
attrs.push(`expanded="true"`);
|
|
111
66
|
if (m.state.selected)
|
|
112
67
|
attrs.push(`selected="true"`);
|
|
68
|
+
if (m.state.pressed)
|
|
69
|
+
attrs.push(`pressed="true"`);
|
|
113
70
|
if (m.state.focused)
|
|
114
71
|
attrs.push(`focused="true"`);
|
|
115
72
|
}
|
|
@@ -129,6 +86,31 @@ export function buildFindElementsResponse(pageId, snapshotId, matches) {
|
|
|
129
86
|
lines.push(`</result>`);
|
|
130
87
|
return lines.join('\n');
|
|
131
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Build XML response for read_page tool.
|
|
91
|
+
*
|
|
92
|
+
* @param article - Extracted article metadata and content
|
|
93
|
+
* @returns XML result string
|
|
94
|
+
*/
|
|
95
|
+
export function buildReadPageResponse(article) {
|
|
96
|
+
const metaAttrs = [xmlAttr('title', article.title)];
|
|
97
|
+
if (article.byline)
|
|
98
|
+
metaAttrs.push(xmlAttr('byline', article.byline));
|
|
99
|
+
if (article.excerpt)
|
|
100
|
+
metaAttrs.push(xmlAttr('excerpt', article.excerpt));
|
|
101
|
+
if (article.siteName)
|
|
102
|
+
metaAttrs.push(xmlAttr('site_name', article.siteName));
|
|
103
|
+
if (article.lang)
|
|
104
|
+
metaAttrs.push(xmlAttr('lang', article.lang));
|
|
105
|
+
const lines = [];
|
|
106
|
+
lines.push('<result type="read_page">');
|
|
107
|
+
lines.push(` <metadata ${metaAttrs.join(' ')} />`);
|
|
108
|
+
lines.push(` <content length="${article.length}">`);
|
|
109
|
+
lines.push(escapeXml(article.textContent.trim()));
|
|
110
|
+
lines.push(' </content>');
|
|
111
|
+
lines.push('</result>');
|
|
112
|
+
return lines.join('\n');
|
|
113
|
+
}
|
|
132
114
|
/**
|
|
133
115
|
* Build XML response for get_element_details tool.
|
|
134
116
|
*
|
|
@@ -171,11 +153,13 @@ export function buildGetElementDetailsResponse(_pageId, _snapshotId, node) {
|
|
|
171
153
|
if (node.state.enabled === false)
|
|
172
154
|
attrs.push('enabled="false"');
|
|
173
155
|
if (node.state.checked)
|
|
174
|
-
attrs.push(
|
|
156
|
+
attrs.push(`checked="${node.state.checked === 'mixed' ? 'mixed' : 'true'}"`);
|
|
175
157
|
if (node.state.expanded)
|
|
176
158
|
attrs.push('expanded="true"');
|
|
177
159
|
if (node.state.selected)
|
|
178
160
|
attrs.push('selected="true"');
|
|
161
|
+
if (node.state.pressed)
|
|
162
|
+
attrs.push('pressed="true"');
|
|
179
163
|
if (node.state.focused)
|
|
180
164
|
attrs.push('focused="true"');
|
|
181
165
|
if (node.state.required)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-builder.js","sourceRoot":"","sources":["../../../src/tools/response-builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"response-builder.js","sourceRoot":"","sources":["../../../src/tools/response-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stale Element Retry
|
|
3
|
+
*
|
|
4
|
+
* Handles stale element detection and retry logic for element-based actions.
|
|
5
|
+
*
|
|
6
|
+
* @module tools/stale-element-retry
|
|
7
|
+
*/
|
|
8
|
+
import type { ReadableNode, BaseSnapshot } from '../snapshot/snapshot.types.js';
|
|
9
|
+
import type { PageHandle } from '../browser/page-registry.js';
|
|
10
|
+
import type { ClickOutcome } from '../state/element-ref.types.js';
|
|
11
|
+
import type { CaptureSnapshotFn } from './execute-action.js';
|
|
12
|
+
/**
|
|
13
|
+
* Check if an error is a stale element error.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isStaleElementError(err: unknown): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Result of handling a stale element retry.
|
|
18
|
+
*/
|
|
19
|
+
export interface StaleElementRetryResult {
|
|
20
|
+
success: boolean;
|
|
21
|
+
error?: string;
|
|
22
|
+
outcome: ClickOutcome;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Handle stale element retry logic.
|
|
26
|
+
*
|
|
27
|
+
* @param handle - Page handle
|
|
28
|
+
* @param node - Original target node
|
|
29
|
+
* @param action - Action to retry
|
|
30
|
+
* @param capture - Snapshot capture function
|
|
31
|
+
* @param snapshotStore - Optional snapshot store to update
|
|
32
|
+
* @returns Retry result with success/error/outcome
|
|
33
|
+
*/
|
|
34
|
+
export declare function handleStaleElementRetry(handle: PageHandle, node: ReadableNode, action: (backendNodeId: number) => Promise<void>, capture: CaptureSnapshotFn, snapshotStore?: {
|
|
35
|
+
store: (pageId: string, snapshot: BaseSnapshot) => void;
|
|
36
|
+
}): Promise<StaleElementRetryResult>;
|
|
37
|
+
//# sourceMappingURL=stale-element-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stale-element-retry.d.ts","sourceRoot":"","sources":["../../../src/tools/stale-element-retry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CASzD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACvB;AA8CD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAChD,OAAO,EAAE,iBAAiB,EAC1B,aAAa,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;CAAE,GAC1E,OAAO,CAAC,uBAAuB,CAAC,CA0ClC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stale Element Retry
|
|
3
|
+
*
|
|
4
|
+
* Handles stale element detection and retry logic for element-based actions.
|
|
5
|
+
*
|
|
6
|
+
* @module tools/stale-element-retry
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Check if an error is a stale element error.
|
|
10
|
+
*/
|
|
11
|
+
export function isStaleElementError(err) {
|
|
12
|
+
if (!(err instanceof Error))
|
|
13
|
+
return false;
|
|
14
|
+
const message = err.message.toLowerCase();
|
|
15
|
+
return (message.includes('no node found for given backend id') ||
|
|
16
|
+
message.includes('protocol error (dom.scrollintoviewifneeded)') ||
|
|
17
|
+
message.includes('node is detached from document') ||
|
|
18
|
+
message.includes('node has been deleted'));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Find the best matching node in a fresh snapshot using label+kind plus
|
|
22
|
+
* location-based disambiguation scoring.
|
|
23
|
+
*
|
|
24
|
+
* Candidates must match on label and kind. Among those, we score by how many
|
|
25
|
+
* `where` properties (region, heading_context, group_id) also match. Ties are
|
|
26
|
+
* broken by choosing the node whose backend_node_id is closest to the original,
|
|
27
|
+
* as a proxy for DOM proximity.
|
|
28
|
+
*/
|
|
29
|
+
function findBestMatch(original, freshNodes) {
|
|
30
|
+
const candidates = freshNodes.filter((n) => n.label === original.label && n.kind === original.kind);
|
|
31
|
+
if (candidates.length <= 1)
|
|
32
|
+
return candidates[0];
|
|
33
|
+
// Score each candidate by matching where-properties
|
|
34
|
+
const scored = candidates.map((candidate) => {
|
|
35
|
+
let score = 0;
|
|
36
|
+
if (candidate.where.region === original.where.region)
|
|
37
|
+
score++;
|
|
38
|
+
if (original.where.heading_context != null &&
|
|
39
|
+
candidate.where.heading_context === original.where.heading_context)
|
|
40
|
+
score++;
|
|
41
|
+
if (original.where.group_id != null && candidate.where.group_id === original.where.group_id)
|
|
42
|
+
score++;
|
|
43
|
+
return { candidate, score };
|
|
44
|
+
});
|
|
45
|
+
// Sort: highest score first, then closest backend_node_id as tiebreaker
|
|
46
|
+
scored.sort((a, b) => {
|
|
47
|
+
if (b.score !== a.score)
|
|
48
|
+
return b.score - a.score;
|
|
49
|
+
const distA = Math.abs(a.candidate.backend_node_id - original.backend_node_id);
|
|
50
|
+
const distB = Math.abs(b.candidate.backend_node_id - original.backend_node_id);
|
|
51
|
+
return distA - distB;
|
|
52
|
+
});
|
|
53
|
+
return scored[0].candidate;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Handle stale element retry logic.
|
|
57
|
+
*
|
|
58
|
+
* @param handle - Page handle
|
|
59
|
+
* @param node - Original target node
|
|
60
|
+
* @param action - Action to retry
|
|
61
|
+
* @param capture - Snapshot capture function
|
|
62
|
+
* @param snapshotStore - Optional snapshot store to update
|
|
63
|
+
* @returns Retry result with success/error/outcome
|
|
64
|
+
*/
|
|
65
|
+
export async function handleStaleElementRetry(handle, node, action, capture, snapshotStore) {
|
|
66
|
+
try {
|
|
67
|
+
// Capture fresh snapshot
|
|
68
|
+
const freshSnapshot = (await capture()).snapshot;
|
|
69
|
+
// Update snapshot store if provided
|
|
70
|
+
if (snapshotStore) {
|
|
71
|
+
snapshotStore.store(handle.page_id, freshSnapshot);
|
|
72
|
+
}
|
|
73
|
+
// Find element by label+kind, then disambiguate using location context
|
|
74
|
+
const freshNode = findBestMatch(node, freshSnapshot.nodes);
|
|
75
|
+
if (!freshNode) {
|
|
76
|
+
return {
|
|
77
|
+
success: false,
|
|
78
|
+
error: `Element no longer found after refresh: ${node.label}`,
|
|
79
|
+
outcome: {
|
|
80
|
+
status: 'element_not_found',
|
|
81
|
+
eid: '', // Will be filled by caller if available
|
|
82
|
+
last_known_label: node.label,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// Retry action with fresh backend_node_id
|
|
87
|
+
await action(freshNode.backend_node_id);
|
|
88
|
+
return {
|
|
89
|
+
success: true,
|
|
90
|
+
outcome: { status: 'stale_element', reason: 'dom_mutation', retried: true },
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch (retryErr) {
|
|
94
|
+
return {
|
|
95
|
+
success: false,
|
|
96
|
+
error: retryErr instanceof Error
|
|
97
|
+
? `Retry failed: ${retryErr.message}`
|
|
98
|
+
: `Retry failed: ${String(retryErr)}`,
|
|
99
|
+
outcome: { status: 'stale_element', reason: 'dom_mutation', retried: true },
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=stale-element-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stale-element-retry.js","sourceRoot":"","sources":["../../../src/tools/stale-element-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool Context
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Implementation helpers used by SessionController for page resolution
|
|
5
|
+
* and CDP session health. These accept a SessionManager parameter rather
|
|
6
|
+
* than using module-level singletons.
|
|
6
7
|
*/
|
|
7
8
|
import type { SessionManager } from '../browser/session-manager.js';
|
|
8
9
|
import type { PageHandle } from '../browser/page-registry.js';
|
|
9
|
-
import type {
|
|
10
|
-
import type { RuntimeHealth } from '../state/health.types.js';
|
|
11
|
-
import { SnapshotStore } from '../snapshot/index.js';
|
|
12
|
-
/**
|
|
13
|
-
* Initialize shared tool context with a session manager.
|
|
14
|
-
* Must be called once before using any tool handlers.
|
|
15
|
-
*/
|
|
16
|
-
export declare function initializeToolContext(manager: SessionManager): void;
|
|
17
|
-
/**
|
|
18
|
-
* Get the session manager, throwing if not initialized.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getSessionManager(): SessionManager;
|
|
21
|
-
/**
|
|
22
|
-
* Get the shared snapshot store instance.
|
|
23
|
-
*/
|
|
24
|
-
export declare function getSnapshotStore(): SnapshotStore;
|
|
10
|
+
import type { CdpSessionResult } from './tool-context.types.js';
|
|
25
11
|
/**
|
|
26
12
|
* Resolve page_id to a PageHandle, throwing if not found.
|
|
27
13
|
* Also touches the page to mark it as MRU.
|
|
28
14
|
*/
|
|
29
15
|
export declare function resolveExistingPage(session: SessionManager, page_id: string | undefined): PageHandle;
|
|
30
|
-
export interface CdpSessionResult {
|
|
31
|
-
handle: PageHandle;
|
|
32
|
-
recovered: boolean;
|
|
33
|
-
runtime_health: RuntimeHealth;
|
|
34
|
-
}
|
|
35
16
|
/**
|
|
36
17
|
* Ensure CDP session is healthy, attempting repair if needed.
|
|
37
18
|
* Call this before any CDP operation to auto-repair dead sessions.
|
|
38
19
|
*/
|
|
39
20
|
export declare function ensureCdpSession(session: SessionManager, handle: PageHandle): Promise<CdpSessionResult>;
|
|
40
|
-
/**
|
|
41
|
-
* Require snapshot for a page, throwing a consistent error if missing.
|
|
42
|
-
*/
|
|
43
|
-
export declare function requireSnapshot(pageId: string): BaseSnapshot;
|
|
44
|
-
/**
|
|
45
|
-
* Resolve element by eid for action tools.
|
|
46
|
-
* Looks up element in registry and finds corresponding node in snapshot.
|
|
47
|
-
* Includes proactive staleness detection before CDP interaction.
|
|
48
|
-
*
|
|
49
|
-
* @throws {ElementNotFoundError} If eid not found in registry
|
|
50
|
-
* @throws {StaleElementError} If eid reference is stale or element not in current snapshot
|
|
51
|
-
*/
|
|
52
|
-
export declare function resolveElementByEid(pageId: string, eid: string, snapshot: BaseSnapshot): ReadableNode;
|
|
53
21
|
//# sourceMappingURL=tool-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../../src/tools/tool-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../../src/tools/tool-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAMhE;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,UAAU,CASZ;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAoB3B"}
|
|
@@ -1,43 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool Context
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Implementation helpers used by SessionController for page resolution
|
|
5
|
+
* and CDP session health. These accept a SessionManager parameter rather
|
|
6
|
+
* than using module-level singletons.
|
|
6
7
|
*/
|
|
7
8
|
import { createHealthyRuntime, createRecoveredCdpRuntime } from '../state/health.types.js';
|
|
8
|
-
import { SnapshotStore } from '../snapshot/index.js';
|
|
9
|
-
import { getStateManager } from './execute-action.js';
|
|
10
|
-
import { ElementNotFoundError, StaleElementError, SnapshotRequiredError } from './errors.js';
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
// Session Manager Singleton
|
|
13
|
-
// ---------------------------------------------------------------------------
|
|
14
|
-
let sessionManager = null;
|
|
15
|
-
/**
|
|
16
|
-
* Initialize shared tool context with a session manager.
|
|
17
|
-
* Must be called once before using any tool handlers.
|
|
18
|
-
*/
|
|
19
|
-
export function initializeToolContext(manager) {
|
|
20
|
-
sessionManager = manager;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get the session manager, throwing if not initialized.
|
|
24
|
-
*/
|
|
25
|
-
export function getSessionManager() {
|
|
26
|
-
if (!sessionManager) {
|
|
27
|
-
throw new Error('Tools not initialized. Call initializeToolContext() first.');
|
|
28
|
-
}
|
|
29
|
-
return sessionManager;
|
|
30
|
-
}
|
|
31
|
-
// ---------------------------------------------------------------------------
|
|
32
|
-
// Snapshot Store Singleton
|
|
33
|
-
// ---------------------------------------------------------------------------
|
|
34
|
-
const snapshotStore = new SnapshotStore();
|
|
35
|
-
/**
|
|
36
|
-
* Get the shared snapshot store instance.
|
|
37
|
-
*/
|
|
38
|
-
export function getSnapshotStore() {
|
|
39
|
-
return snapshotStore;
|
|
40
|
-
}
|
|
41
9
|
// ---------------------------------------------------------------------------
|
|
42
10
|
// Page Resolution
|
|
43
11
|
// ---------------------------------------------------------------------------
|
|
@@ -53,6 +21,9 @@ export function resolveExistingPage(session, page_id) {
|
|
|
53
21
|
session.touchPage(handle.page_id);
|
|
54
22
|
return handle;
|
|
55
23
|
}
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// CDP Session Health
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
56
27
|
/**
|
|
57
28
|
* Ensure CDP session is healthy, attempting repair if needed.
|
|
58
29
|
* Call this before any CDP operation to auto-repair dead sessions.
|
|
@@ -76,44 +47,4 @@ export async function ensureCdpSession(session, handle) {
|
|
|
76
47
|
runtime_health: createRecoveredCdpRuntime('HEALTHY'),
|
|
77
48
|
};
|
|
78
49
|
}
|
|
79
|
-
// ---------------------------------------------------------------------------
|
|
80
|
-
// Snapshot Resolution
|
|
81
|
-
// ---------------------------------------------------------------------------
|
|
82
|
-
/**
|
|
83
|
-
* Require snapshot for a page, throwing a consistent error if missing.
|
|
84
|
-
*/
|
|
85
|
-
export function requireSnapshot(pageId) {
|
|
86
|
-
const snap = snapshotStore.getByPageId(pageId);
|
|
87
|
-
if (!snap) {
|
|
88
|
-
throw new SnapshotRequiredError(pageId);
|
|
89
|
-
}
|
|
90
|
-
return snap;
|
|
91
|
-
}
|
|
92
|
-
// ---------------------------------------------------------------------------
|
|
93
|
-
// Element Resolution
|
|
94
|
-
// ---------------------------------------------------------------------------
|
|
95
|
-
/**
|
|
96
|
-
* Resolve element by eid for action tools.
|
|
97
|
-
* Looks up element in registry and finds corresponding node in snapshot.
|
|
98
|
-
* Includes proactive staleness detection before CDP interaction.
|
|
99
|
-
*
|
|
100
|
-
* @throws {ElementNotFoundError} If eid not found in registry
|
|
101
|
-
* @throws {StaleElementError} If eid reference is stale or element not in current snapshot
|
|
102
|
-
*/
|
|
103
|
-
export function resolveElementByEid(pageId, eid, snapshot) {
|
|
104
|
-
const stateManager = getStateManager(pageId);
|
|
105
|
-
const registry = stateManager.getElementRegistry();
|
|
106
|
-
const elementRef = registry.getByEid(eid);
|
|
107
|
-
if (!elementRef) {
|
|
108
|
-
throw new ElementNotFoundError(eid);
|
|
109
|
-
}
|
|
110
|
-
if (registry.isStale(eid)) {
|
|
111
|
-
throw new StaleElementError(eid);
|
|
112
|
-
}
|
|
113
|
-
const node = snapshot.nodes.find((n) => n.backend_node_id === elementRef.ref.backend_node_id);
|
|
114
|
-
if (!node) {
|
|
115
|
-
throw new StaleElementError(eid);
|
|
116
|
-
}
|
|
117
|
-
return node;
|
|
118
|
-
}
|
|
119
50
|
//# sourceMappingURL=tool-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../../src/tools/tool-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../../src/tools/tool-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG3F,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,OAA2B;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC,CAAC,6CAA6C,CACvF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAuB,EACvB,MAAkB;IAElB,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACtD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,EAAE,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CACV,mCAAmC,MAAM,CAAC,OAAO,KAAK,OAAO,qBAAqB,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,mCAAmC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,yBAAyB,CAAC,SAAS,CAAC;KACrD,CAAC;AACJ,CAAC"}
|